Avviare l'interfaccia della riga di comando del client SQL in modalità gateway
Nota
Azure HDInsight su AKS verrà ritirato il 31 gennaio 2025. Prima del 31 gennaio 2025, sarà necessario eseguire la migrazione dei carichi di lavoro a Microsoft Fabric o a un prodotto Azure equivalente per evitare interruzioni improvvise dei carichi di lavoro. I cluster rimanenti nella sottoscrizione verranno arrestati e rimossi dall’host.
Solo il supporto di base sarà disponibile fino alla data di ritiro.
Importante
Questa funzionalità è attualmente disponibile solo in anteprima. Le Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure includono termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale. Per informazioni su questa anteprima specifica, vedere Informazioni sull'anteprima di Azure HDInsight nel servizio Azure Kubernetes. Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguire Microsoft per altri aggiornamenti nella Community di Azure HDInsight.
Questa esercitazione illustra come avviare l'interfaccia della riga di comando di SQL Client in modalità gateway nel cluster Apache Flink 1.17.0 in HDInsight su AKS. Nella modalità gateway l'interfaccia della riga di comando invia SQL al gateway remoto specificato per eseguire istruzioni.
./bin/sql-client.sh gateway --endpoint <gateway address>
Nota
In Apache Flink Cluster in HDInsight su AKS qualsiasi connessione esterna passerà dalla porta 443. Internamente, tuttavia, reindirizzerà la richiesta al servizio sql-gateway in ascolto sulla porta 8083.
Controllare il servizio gateway SQL sul lato servizio Azure Kubernetes:
Che cos'è SQL Client in Flink?
L'API Tabella e SQL di Flink consente di usare query scritte nel linguaggio SQL, ma queste query richiedono l'incorporamento all'interno di un programma tabella scritto in Java o Scala. Inoltre, questi programmi devono essere inseriti in un pacchetto con uno strumento di compilazione prima di essere inviati a un cluster. Questa funzionalità limita l'utilizzo di Flink ai programmatori Java/Scala.
SQL Client mira a fornire un modo semplice per scrivere, eseguire debug e inviare programmi di tabella a un cluster Flink senza una singola riga di codice Java o Scala. L'interfaccia della riga di comando di SQL Client consente di recuperare e visualizzare i risultati in tempo reale dall'applicazione distribuita in esecuzione nella riga di comando.
Per altre informazioni, vedere come immettere il client dell'interfaccia della riga di comando di Flink SQL in webssh.
Che cos'è il gateway SQL in Flink
Il gateway SQL è un servizio che consente a più client dall'istanza remota di eseguire SQL in concorrenza. Offre un modo semplice per inviare il processo Flink, cercare i metadati e analizzare i dati online.
Per altre informazioni, vedere Gateway SQL.
Avviare l'interfaccia della riga di comando di SQL Client in modalità gateway in Flink-cli
In Apache Flink Cluster in HDInsight su AKS avviare l'interfaccia della riga di comando del client SQL in modalità gateway eseguendo il comando:
./bin/sql-client.sh gateway --endpoint host:port
or
./bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Ottenere l'endpoint del cluster (host o FQDN) nel portale di Azure.
Test
Operazioni preliminari
Scaricare l'interfaccia della riga di comando di Flink
- Scaricare L'interfaccia della riga di comando Flink da https://aka.ms/hdionaksflink117clilinux nel computer Windows locale.
Installare il sottosistema Windows per Linux per eseguire questa operazione nel computer Windows locale.
Aprire il prompt dei comandi di Windows ed eseguire (sostituire il percorso JAVA_HOME e flink-cli con il proprio) per scaricare 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
Impostare endpoint, ID tenant e porta 443 in 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
Inserire nell'elenco elementi consentiti l'IP pubblico di Windows locale con la porta 443 e la VPN abilitata nella sicurezza di rete in entrata della subnet del cluster HDInsight su AKS.
Eseguire sql-client.sh in modalità gateway in Flink-cli in Flink SQL.
bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Esempio
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
Prima di eseguire query su qualsiasi tabella con un'origine esterna, preparare i file JAR correlati. Gli esempi seguenti eseguono query sulla tabella kafka, la tabella mysql in Flink SQL. Scaricare il file JAR e inserirlo nell'archiviazione di Azure Data Lake Storage Gen2 collegata al cluster Flink.
File JAR in Azure Data Lake Storage Gen2 nel portale di Azure:
Usare la tabella già creata e inserirla nel metastore Hive per la gestione, quindi eseguire la query.
Nota
In questo esempio, tutti i file JAR in HDInsight su AKS predefinito di Azure Data Lake Storage Gen2. Il contenitore e l'account di archiviazione non devono essere uguali a quanto specificato durante la creazione del cluster. Se necessario, è possibile specificare un altro account di archiviazione e concedere all'identità gestita dall'utente del cluster il ruolo di proprietario dei dati del BLOB di archiviazione sul lato 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 |
Riferimento
Interfaccia della riga di comando di Apache Flink® in cluster HDInsight su AKS