Starten der SQL Client CLI im Gatewaymodus
Wichtig
Azure HDInsight auf AKS wurde am 31. Januar 2025 eingestellt. Erfahren Sie mehr in dieser Ankündigung.
Sie müssen Ihre Workloads zu Microsoft Fabric oder ein gleichwertiges Azure-Produkt migrieren, um eine abrupte Beendigung Ihrer Workloads zu vermeiden.
Wichtig
Dieses Feature befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure Previews weitere rechtliche Bestimmungen enthalten, die für Azure-Features gelten, die in der Betaversion, in der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden. Informationen zu dieser spezifischen Vorschau finden Sie unter Azure HDInsight auf AKS-Vorschauinformationen. Für Fragen oder Funktionsvorschläge senden Sie bitte eine Anfrage im AskHDInsight mit den Details und folgen Sie uns, um weitere Updates in der Azure HDInsight Communityzu erhalten.
In diesem Lernprogramm erfahren Sie, wie Sie die SQL Client CLI im Gatewaymodus in Apache Flink Cluster 1.17.0 auf HDInsight auf AKS starten. Im Gatewaymodus sendet die CLI die SQL an das angegebene Remotegateway, um Anweisungen auszuführen.
./bin/sql-client.sh gateway --endpoint <gateway address>
Anmerkung
In Apache Flink Cluster auf HDInsight auf AKS erfolgt jede externe Verbindung über den 443-Port. Intern wird die Anforderung jedoch an den SQL-Gatewaydienst umgeleitet, der auf Port 8083 lauscht.
Überprüfen Sie den SQL-Gatewaydienst auf der AKS-Seite.
Was ist SQL Client in Flink?
Die Sql-API von Flink & ermöglicht das Arbeiten mit Abfragen, die in der SQL-Sprache geschrieben wurden, aber diese Abfragen müssen in ein Tabellenprogramm eingebettet werden, das entweder in Java oder Scala geschrieben wurde. Darüber hinaus müssen diese Programme mit einem Buildtool verpackt werden, bevor sie an einen Cluster übermittelt werden. Dieses Feature beschränkt die Verwendung von Flink auf Java/Scala-Programmierer.
Der SQL-Client bietet eine einfache Möglichkeit zum Schreiben, Debuggen und Übermitteln von Tabellenprogrammen an einen Flink-Cluster ohne eine einzige Zeile von Java- oder Scala-Code. Die SQL Client CLI ermöglicht das Abrufen und Visualisieren von Echtzeitergebnissen aus der ausgeführten verteilten Anwendung in der Befehlszeile.
Weitere Informationen finden Sie unter , wie Sie den Flink SQL CLI-Client in webssheingeben.
Was ist DAS SQL-Gateway in Flink?
Das SQL-Gateway ist ein Dienst, der es mehreren Clients aus der Remote ermöglicht, SQL in Parallelität auszuführen. Es bietet eine einfache Möglichkeit, den Flink-Auftrag zu übermitteln, die Metadaten nachzuschlagen und die Daten online zu analysieren.
Weitere Informationen finden Sie unter SQL Gateway.
SQL Client CLI im Gatewaymodus in Flink-cli starten
Starten Sie in Apache Flink Cluster auf HDInsight auf AKS die SQL Client CLI im Gatewaymodus, indem Sie Befehl ausführen:
./bin/sql-client.sh gateway --endpoint host:port
or
./bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Abrufen des Clusterendpunkts (Host oder FQDN) im Azure-Portal.
Testen
Vorbereitung
Flink CLI herunterladen
- Laden Sie Flink CLI von https://aka.ms/hdionaksflink117clilinux auf einem lokalen Windows-Computer herunter.
Installieren Sie das Windows-Subsystem für Linux, damit dies auf einem lokalen Windows-Computer funktioniert.
Öffnen Sie den Windows-Befehl, und führen Sie den Befehl aus (ersetzen Sie JAVA_HOME- und flink-cli-Pfad durch Ihren eigenen Pfad), um flink-cli herunterzuladen:
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
Festlegen von Endpunkt, Mandanten-ID und Port 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
Erstellen Sie eine Zulassungsliste für die lokale öffentliche Windows-IP mit Port 443, aktivieren Sie das VPN für HDInsight im Netzwerk-Sicherheitseingang vom AKS-Cluster-Subnetz.
Führen Sie die sql-client.sh im Gatewaymodus auf Flink-cli zu Flink SQL aus.
bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Beispiel
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
Bevor Sie eine Tabelle mit externer Quelle abfragen, bereiten Sie die zugehörigen JAR-Dateien vor. Die folgenden Beispiele zeigen, wie Kafka-Tabellen und MySQL-Tabellen in Flink SQL abgefragt werden können. Laden Sie das JAR herunter und legen Sie es in dem dem Flink-Cluster angehängten Azure Data Lake Storage Gen2-Speicher ab.
Jars in Azure Data Lake Storage gen2 im Azure-Portal:
Verwenden Sie die bereits erstellte Tabelle, und fügen Sie sie in den Hive-Metaspeicher für die Verwaltung ein, und führen Sie dann die Abfrage aus.
Anmerkung
In diesem Beispiel sind alle Jars standardmäßig auf dem Azure Data Lake Storage Gen2 in HDInsight auf AKS. Der Container und das Speicherkonto müssen nicht dieselben wie bei der Clustererstellung angegeben sein. Falls erforderlich, können Sie ein anderes Speicherkonto angeben und der verwalteten Identität des Clusters die Rolle des Besitzers von Speicher-BLOB-Daten für Azure Data Lake Storage Gen2 zuweisen.
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 |
Referenz
Apache Flink® Command-Line Interface (CLI) auf HDInsight auf AKS-Clustern