Iniciar a CLI do SQL Client no modo de gateway
Importante
O Azure HDInsight no AKS foi desativado em 31 de janeiro de 2025. Saiba mais com este anúncio.
Você precisa migrar suas cargas de trabalho para Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.
Importante
Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure incluem mais termos legais que se aplicam às funcionalidades da Azure em versão beta, em «pré-visualização» ou que ainda não foram disponibilizadas para disponibilidade geral. Para obter informações sobre essa visualização específica, consulte Azure HDInsight no AKS informações de visualização. Para perguntas ou sugestões de funcionalidades, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para mais novidades na Comunidade do Azure HDInsight .
Este tutorial orienta sobre como iniciar a CLI do Cliente SQL em modo gateway em Apache Flink Cluster 1.17.0 em HDInsight em AKS. No modo de gateway, a CLI envia o SQL para o gateway remoto especificado para executar instruções.
./bin/sql-client.sh gateway --endpoint <gateway address>
Observação
No Apache Flink Cluster no HDInsight no AKS, qualquer conexão externa passará pela porta 443. Mas, internamente, ele redirecionará a solicitação para o serviço sql-gateway ouvindo a porta 8083.
Verifique o serviço de gateway SQL no lado do AKS.
O que é SQL Client no Flink?
A API de Tabela & SQL do Flink torna possível trabalhar com consultas escritas na linguagem SQL, mas essas consultas precisam ser incorporadas em um programa de tabela escrito em Java ou Scala. Além disso, esses programas precisam ser empacotados com uma ferramenta de compilação antes de serem enviados a um cluster. Este recurso limita o uso do Flink para programadores Java/Scala.
O SQL Client tem como objetivo fornecer uma maneira fácil de escrever, depurar e enviar programas de tabela para um cluster Flink sem uma única linha de código Java ou Scala. A CLI do SQL Client permite recuperar e visualizar resultados em tempo real do aplicativo distribuído em execução na linha de comando.
Para obter mais informações, consulte como inserir o cliente Flink SQL CLI no webssh.
O que é o SQL Gateway no Flink
O Gateway SQL é um serviço que permite que vários clientes remotos executem SQL em simultaneidade. Ele fornece uma maneira fácil de enviar o trabalho Flink, procurar os metadados e analisar os dados on-line.
Para obter mais informações, consulte SQL Gateway.
Inicie a interface de linha de comando do cliente SQL no modo de gateway no Flink-cli.
No cluster do Apache Flink no HDInsight em AKS, inicie a CLI do Cliente SQL no modo de gateway executando o comando:
./bin/sql-client.sh gateway --endpoint host:port
or
./bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Obtenha o endereço do cluster (fqdn ou host) no portal do Azure.
Testes
Preparação
Baixar Flink CLI
- Baixe Flink CLI do https://aka.ms/hdionaksflink117clilinux na máquina Windows local.
Instale o Subsistema Windows para Linux para fazer isso funcionar na máquina Windows local.
Abra o comando do Windows e execute (substitua o caminho JAVA_HOME e flink-cli pelo seu próprio) para baixar o flink-cli:
Windows Subsystem for Linux --distribution Ubuntu export JAVA_HOME=/mnt/c/Work/99_tools/zulu11.56.19-ca-jdk11.0.15-linux_x64 cd <folder> wget https://hdiconfigactions.blob.core.windows.net/hiloflink17blob/flink-cli.tgz tar -xvf flink-cli.tgz
Definir endereço de aplicação, ID de Locatário e porta 443 em flink-conf.yaml
user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli$ cd conf user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli/conf$ ls -l total 8 -rwxrwxrwx 1 user user 2451 Feb 26 20:33 flink-conf.yaml -rwxrwxrwx 1 user user 2946 Feb 23 14:13 log4j-cli.properties user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli/conf$ cat flink-conf.yaml rest.address: <flink cluster endpoint on Azure portal> azure.tenant.id: <tenant ID> rest.port: 443
Lista de permissões de IP público local do Windows na porta 443 com VPN ativada no HDInsight dentro das regras de segurança de entrada da sub-rede do cluster AKS.
Execute o sql-client.sh no modo gateway em Flink-cli para Flink SQL.
bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Exemplo
user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli$ bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway ▒▓██▓██▒ ▓████▒▒█▓▒▓███▓▒ ▓███▓░░ ▒▒▒▓██▒ ▒ ░██▒ ▒▒▓▓█▓▓▒░ ▒████ ██▒ ░▒▓███▒ ▒█▒█▒ ░▓█ ███ ▓░▒██ ▓█ ▒▒▒▒▒▓██▓░▒░▓▓█ █░ █ ▒▒░ ███▓▓█ ▒█▒▒▒ ████░ ▒▓█▓ ██▒▒▒ ▓███▒ ░▒█▓▓██ ▓█▒ ▓█▒▓██▓ ░█░ ▓░▒▓████▒ ██ ▒█ █▓░▒█▒░▒█▒ ███▓░██▓ ▓█ █ █▓ ▒▓█▓▓█▒ ░██▓ ░█░ █ █▒ ▒█████▓▒ ██▓░▒ ███░ ░ █░ ▓ ░█ █████▒░░ ░█░▓ ▓░ ██▓█ ▒▒▓▒ ▓███████▓░ ▒█▒ ▒▓ ▓██▓ ▒██▓ ▓█ █▓█ ░▒█████▓▓▒░ ██▒▒ █ ▒ ▓█▒ ▓█▓ ▓█ ██▓ ░▓▓▓▓▓▓▓▒ ▒██▓ ░█▒ ▓█ █ ▓███▓▒░ ░▓▓▓███▓ ░▒░ ▓█ ██▓ ██▒ ░▒▓▓███▓▓▓▓▓██████▓▒ ▓███ █ ▓███▒ ███ ░▓▓▒░░ ░▓████▓░ ░▒▓▒ █▓ █▓▒▒▓▓██ ░▒▒░░░▒▒▒▒▓██▓░ █▓ ██ ▓░▒█ ▓▓▓▓▒░░ ▒█▓ ▒▓▓██▓ ▓▒ ▒▒▓ ▓█▓ ▓▒█ █▓░ ░▒▓▓██▒ ░▓█▒ ▒▒▒░▒▒▓█████▒ ██░ ▓█▒█▒ ▒▓▓▒ ▓█ █░ ░░░░ ░█▒ ▓█ ▒█▓ ░ █░ ▒█ █▓ █▓ ██ █░ ▓▓ ▒█▓▓▓▒█░ █▓ ░▓██░ ▓▒ ▓█▓▒░░░▒▓█░ ▒█ ██ ▓█▓░ ▒ ░▒█▒██▒ ▓▓ ▓█▒ ▒█▓▒░ ▒▒ █▒█▓▒▒░░▒██ ░██▒ ▒▓▓▒ ▓██▓▒█▒ ░▓▓▓▓▒█▓ ░▓██▒ ▓░ ▒█▓█ ░░▒▒▒ ▒▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▓▓ ▓░▒█░ ______ _ _ _ _____ ____ _ _____ _ _ _ BETA | ____| (_) | | / ____|/ __ \| | / ____| (_) | | | |__ | |_ _ __ | | __ | (___ | | | | | | | | |_ ___ _ __ | |_ | __| | | | '_ \| |/ / \___ \| | | | | | | | | |/ _ \ '_ \| __| | | | | | | | | < ____) | |__| | |____ | |____| | | __/ | | | |_ |_| |_|_|_| |_|_|\_\ |_____/ \___\_\______| \_____|_|_|\___|_| |_|\__| Welcome! Enter 'HELP;' to list all available commands. 'QUIT;' to exit. Command history file path: /home/user/.flink-sql-history
Antes de consultar qualquer tabela com uma fonte externa, prepare os ficheiros JAR relacionados. Os exemplos a seguir consultam a tabela Kafka e a tabela MySQL em Flink SQL. Baixe o jar e coloque-o no cluster Flink ligado ao armazenamento Azure Data Lake Storage gen2.
Arquivos JAR no Azure Data Lake Storage gen2 no Portal do Azure:
Use a tabela já criada e coloque-a no metastore do Hive para gerenciamento e, em seguida, execute a consulta.
Observação
Neste exemplo, todos os jars no HDInsight em AKS usam como armazenamento predefinido o Azure Data Lake Storage Gen2. A conta de contêiner e armazenamento não precisa ser a mesma especificada durante a criação do cluster. Se necessário, você pode especificar outra conta de armazenamento e conceder identidade gerenciada ao usuário do cluster a função de proprietário de dados do blob de armazenamento no lado do Azure Data Lake Storage Gen2.
CREATE CATALOG myhive WITH ( 'type' = 'hive' ); USE CATALOG myhive; // ADD jar into environment ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-jdbc-3.1.0-1.17.jar'; ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/mysql-connector-j-8.0.33.jar'; ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/kafka-clients-3.2.0.jar'; ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-kafka-1.17.0.jar'; Flink SQL> show jars; ----------------------------------------------------------------------------------------------+ | jars | +----------------------------------------------------------------------------------------------+ | abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-kafka-1.17.0.jar | | abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-jdbc-3.1.0-1.17.jar | | abfs://<container>@<storage name>.dfs.core.windows.net/jar/kafka-clients-3.2.0.jar | | abfs://<container>@<storage name>.dfs.core.windows.net/jar/mysql-connector-j-8.0.33.jar | +----------------------------------------------------------------------------------------------+ 4 rows in set Flink SQL> SET 'sql-client.execution.result-mode' = 'tableau'; [INFO] Execute statement succeed. Flink SQL> show tables; +----------------------+ | table name | +----------------------+ | flightsintervaldata1 | | kafka_user_orders | | kafkatable | | mysql_user_orders | | orders | +----------------------+ 5 rows in set // mysql cdc table Flink SQL> select * from mysql_user_orders; +----+-------------+----------------------------+-------------+--------------------------------+--------------+-------------+--------------+ | op | order_id | order_date | customer_id | customer_name | price | product_id | order_status | +----+-------------+----------------------------+-------------+--------------------------------+--------------+-------------+--------------+ | +I | 10001 | 2023-07-16 10:08:22.000000 | 1 | Jark | 50.00000 | 102 | FALSE | | +I | 10002 | 2023-07-16 10:11:09.000000 | 2 | Sally | 15.00000 | 105 | FALSE | | +I | 10003 | 2023-07-16 10:11:09.000000 | 3 | Sally | 25.00000 |
Referência
Apache Flink® Command-Line Interface (CLI) no HDInsight em clusters de AKS