Dela via


Starta SQL Client CLI i gatewayläge

Viktig

Azure HDInsight på AKS drogs tillbaka den 31 januari 2025. Läs mer genom det här meddelandet.

Du måste migrera dina arbetsbelastningar till Microsoft Fabric- eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar.

Viktig

Den här funktionen är för närvarande i förhandsversion. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt icke-släppt i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. För frågor eller förslag på funktioner, skicka en begäran på AskHDInsight med detaljerna och följ oss för fler uppdateringar om Azure HDInsight Community.

Den här självstudien beskriver hur du startar SQL Client CLI i gatewayläge i Apache Flink Cluster 1.17.0 i HDInsight på AKS. I gatewayläget skickar CLI SQL till den angivna fjärrgatewayen för att köra -instruktioner.

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

Notera

I Apache Flink-kluster i HDInsight på AKS går alla externa anslutningar via 443-portar. Internt kommer begäran dock att omdirigeras till sql-gateway-tjänsten som lyssnar på port 8083.

Kontrollera sql gateway-tjänsten på AKS-sidan:

Skärmbild som visar hur du kontrollerar SQL-gatewayen.

Flinks TABELL-& SQL API gör det möjligt att arbeta med frågor som skrivits på SQL-språket, men dessa frågor behöver bäddas in i ett tabellprogram som skrivits i Java eller Scala. Dessutom måste dessa program paketeras med ett byggverktyg innan de skickas till ett kluster. Den här funktionen begränsar användningen av Flink till Java/Scala-programmerare.

SQL-klienten syftar till att ge ett enkelt sätt att skriva, felsöka och skicka tabellprogram till ett Flink-kluster utan en enda rad Java- eller Scala-kod. MED SQL Client CLI kan du hämta och visualisera realtidsresultat från det distribuerade programmet som körs på kommandoraden.

Mer information finns i hur du anger Flink SQL CLI-klienten på webssh.

SQL Gateway är en tjänst som gör det möjligt för flera klienter från fjärrplatsen att köra SQL i samtidighet. Det är ett enkelt sätt att skicka Flink-jobbet, leta upp metadata och analysera data online.

Mer information finns i SQL Gateway.

I Apache Flink-kluster i HDInsight på AKS startar du SQL Client CLI i gatewayläge genom att köra kommandot:

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

Hämta klusterslutpunkt (värd eller fqdn) på Azure-portalen.

Skärmbild som visar klusterslutpunkten.

Testning

Förberedelse

  1. Ladda ned Flink CLI från https://aka.ms/hdionaksflink117clilinux på den lokala Windows-datorn.

Installera Windows-undersystemet för Linux för att få det att fungera på den lokala Windows-datorn.

  1. Öppna Windows-kommandot och kör (ersätt sökvägen JAVA_HOME och flink-cli med din egen) för att ladda ned 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
    
  2. Ange slutpunkt, klient-ID och port 443 i 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. Tillåtlista lokal offentlig IP-adress för Windows med port 443 med VPN aktiverat i HDInsight på AKS-klusterundernätets inkommande nätverkssäkerhet.

    Skärmbild som visar hur du tillåter offentlig IP-adress.

  4. Kör sql-client.sh i gatewayläge på Flink-cli till Flink SQL.

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

    Exempel

    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. Förbered de relaterade jar-filerna innan du kör frågor mot en tabell med en extern källa. I följande exempel frågar du om kafka-tabellen och mysql-tabellen i Flink SQL. Ladda ned jar-filen och placera den i Flink-klustret som är kopplat till Azure Data Lake Storage gen2-lagring.

    Jars i Azure Data Lake Storage gen2 på Azure-portalen.

    Skärmbild som visar jar-filer i Azure-portalen.

  6. Använd tabellen som redan har skapats och placera den i Hive-metaarkivet för hantering och kör sedan frågan.

    Obs

    I det här exemplet finns alla jar-filer i HDInsight på AKS på det förinställda Azure Data Lake Storage Gen2. Containern och lagringskontot behöver inte vara samma som när klustret skapades. Om det behövs kan du ange ett annat lagringskonto och bevilja klusteranvändarens hanterade identitet rollen som lagringsblobdataägare på Azure Data Lake Storage Gen2-sidan.

    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 |
    
    

Hänvisning

Apache Flink® Command-Line Interface (CLI) på HDInsight i AKS-kluster