Freigeben über


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.

Screenshot, der zeigt, wie das SQL-Gateway überprüft wird.

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.

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.

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.

Screenshot mit Cluster-Endpunkt.

Testen

Vorbereitung

  1. 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.

  1. Ö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
    
  2. 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
    
  3. 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.

    Screenshot, der zeigt, wie öffentliche IP-Adresse zugelassen wird.

  4. 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
    
  5. 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:

    Screenshot mit Jar-Dateien im Azure-Portal.

  6. 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