Delen via


SQL Client CLI starten in de gatewaymodus

Belangrijk

Azure HDInsight op AKS is op 31 januari 2025 buiten gebruik gesteld. Meer informatie met deze aankondiging.

U moet uw workloads migreren naar Microsoft Fabric- of een gelijkwaardig Azure-product om plotselinge beëindiging van uw workloads te voorkomen.

Belangrijk

Deze functie is momenteel beschikbaar als preview-versie. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews meer juridische voorwaarden bevatten die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet in algemene beschikbaarheid zijn vrijgegeven. Voor meer informatie over deze specifieke preview, zie Azure HDInsight op AKS preview-informatie. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight- met de details en volgt u ons voor meer updates over Azure HDInsight Community-.

In deze handleiding leert u hoe u de SQL Client CLI start in de gatewaymodus in Apache Flink Cluster 1.17.0 op HDInsight op AKS. In de gatewaymodus verzendt de CLI de SQL naar de opgegeven externe gateway om instructies uit te voeren.

./bin/sql-client.sh gateway --endpoint <gateway address>

Notitie

In Apache Flink Cluster in HDInsight op AKS gaat elke externe verbinding via 443-poort. Maar intern wordt de aanvraag omgeleid naar sql-gateway-service die luistert naar poort 8083.

Controleer de SQL Gateway-service aan de AKS-zijde:

Schermopname die laat zien hoe je de SQL-gateway controleert.

De Table & SQL-API van Flink maakt het mogelijk om te werken met query's die zijn geschreven in de SQL-taal, maar deze query's moeten worden ingesloten in een tabelprogramma dat is geschreven in Java of Scala. Bovendien moeten deze programma's worden verpakt met een buildhulpprogramma voordat ze worden verzonden naar een cluster. Deze functie beperkt het gebruik van Flink tot Java/Scala-programmeurs.

De SQL Client is erop gericht om een eenvoudige manier te bieden om tabelprogramma's te schrijven, fouten op te sporen en in te dienen bij een Flink-cluster zonder één regel Java- of Scala-code. Met de SQL Client CLI kunt u realtime resultaten ophalen en visualiseren van de draaiende gedistribueerde toepassing op de commandoregel.

Zie hoe u de Flink SQL CLI-client op websshkunt invoeren voor meer informatie.

De SQL Gateway is een service waarmee meerdere clients van de externe client SQL kunnen uitvoeren in gelijktijdigheid. Het biedt een eenvoudige manier om de Flink Job in te dienen, de metagegevens op te zoeken en de gegevens online te analyseren.

Zie SQL Gatewayvoor meer informatie.

Start in de Apache Flink-cluster op HDInsight op AKS de SQL Client CLI in gatewaymodus door de opdracht uit te voeren:

./bin/sql-client.sh gateway --endpoint host:port
 
or
 
./bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway

Clustereindpunt (host of fqdn) ophalen in Azure Portal.

schermopname van het clustereindpunt.

Testen

Voorbereiding

  1. Download Flink CLI van https://aka.ms/hdionaksflink117clilinux op de lokale Windows-computer.

Installeer het Windows-subsysteem voor Linux om dit te laten werken op een lokale Windows-computer.

  1. Open de Windows-opdracht en voer deze uit (vervang JAVA_HOME en flink-cli-pad door uw eigen pad) om flink-cli te downloaden:

    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. Eindpunt, tenant-id en poort 443 instellen 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. Voeg de lokale openbare IP-adres van Windows met poort 443 toe aan de toegestane lijst met ingeschakelde VPN binnen HDInsight op AKS-cluster subnet's netwerkbeveiliging inkomend.

    Schermopname van het toestaan van een openbaar IP-adres.

  4. Voer de sql-client.sh uit in de gatewaymodus op Flink-cli naar Flink SQL.

    bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
    

    Voorbeeld

    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. Voordat u een query uitvoert op een tabel met een externe bron, moet u de bijbehorende JAR-bestanden voorbereiden. Hieronder volgen voorbeelden van query's op de kafka-tabel en de mysql-tabel in Flink SQL. Download het jar-bestand en plaats het in het Flink-cluster dat is gekoppeld aan Azure Data Lake Storage Gen2-opslag.

    Jars in Azure Data Lake Storage Gen2 in Azure Portal:

    Schermopname van JAR-bestanden in Azure Portal.

  6. Gebruik de tabel die al is gemaakt en plaats deze in hive-metastore voor beheer en voer vervolgens de query uit.

    Notitie

    In dit voorbeeld gebruiken alle JAR's in HDInsight op AKS standaard Azure Data Lake Storage Gen2. Het container- en opslagaccount hoeven niet hetzelfde te zijn als opgegeven tijdens het maken van het cluster. Indien nodig kunt u een ander opslagaccount selecteren en de beheerde identiteit van de clustergebruiker de rol van "Storage Blob Data Owner" toekennen op 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 |
    
    

Referentie

Apache Flink® Command-Line Interface (CLI) op HDInsight op AKS-clusters