Udostępnij za pośrednictwem


Rozpocznij działanie klienta SQL w trybie gateway CLI

Ważny

Usługa Azure HDInsight w usłudze AKS została wycofana 31 stycznia 2025 r. Dowiedz się więcej w tym ogłoszeniu.

Aby uniknąć nagłego kończenia obciążeń, należy przeprowadzić migrację obciążeń do usługi Microsoft Fabric lub równoważnego produktu platformy Azure.

Ważny

Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Dodatkowe Warunki Użytkowania dla Wersji Zapoznawczych Microsoft Azure zawierają więcej warunków prawnych, które dotyczą funkcji Azure w wersji beta, wersjach zapoznawczych lub inaczej jeszcze nieudostępnionych w wersji ogólnodostępnej. Aby uzyskać informacje na temat tej konkretnej wersji zapoznawczej, zobacz informacje o wersji zapoznawczej Azure HDInsight na AKS. W przypadku pytań lub sugestii dotyczących funkcji, prosimy o przesłanie zgłoszenia na AskHDInsight z odpowiednimi szczegółami oraz śledzenie nas, aby uzyskać więcej aktualizacji na temat społeczności Azure HDInsight.

W tym samouczku pokazano, jak uruchomić CLI klienta SQL w trybie gateway w klastrze Apache Flink 1.17.0 na HDInsight na AKS. W trybie bramy interfejs wiersza polecenia (CLI) przesyła SQL do określonej zdalnej bramy w celu wykonania instrukcji.

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

Notatka

W klastrze Apache Flink na HDInsight w AKS każde połączenie zewnętrzne będzie przechodzić przez port 443. Jednakże wewnętrznie przekierowuje żądanie do usługi sql-gateway nasłuchującej na porcie 8083.

Sprawdź bramę SQL po stronie AKS.

Zrzut ekranu przedstawiający sposób sprawdzania bramy SQL.

Interfejs API SQL tabeli & Flink umożliwia pracę z zapytaniami napisanymi w języku SQL, ale te zapytania wymagają osadzenia w programie tabel napisanym w języku Java lub Scala. Ponadto te programy należy spakować za pomocą narzędzia kompilacji przed przekazaniem ich do klastra. Ta funkcja ogranicza użycie funkcji Flink do programistów Java/Scala.

Klient SQL ma na celu zapewnienie łatwego sposobu pisania, debugowania i przesyłania programów tabel do klastra Flink bez jednego wiersza kodu Java lub Scala. Interfejs wiersza polecenia klienta SQL umożliwia pobieranie i wizualizowanie wyników w czasie rzeczywistym z uruchomionej aplikacji rozproszonej w wierszu polecenia.

Aby uzyskać więcej informacji, zobacz , jak uruchomić klienta Flink SQL CLI w webssh.

Brama SQL to usługa, która umożliwia wielu zdalnym klientom jednoczesne wykonywanie kodu SQL. Zapewnia łatwy sposób przesyłania zadania Flink, wyszukiwania metadanych i analizowania danych online.

Aby uzyskać więcej informacji, zobacz SQL Gateway.

W klastrze Apache Flink na HDInsight na AKS uruchom CLI klienta SQL w trybie bramy, wykonując polecenie:

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

Pobierz punkt końcowy klastra (host lub pełną nazwę domeny) w portalu Azure.

Zrzut ekranu przedstawiający punkt końcowy klastra.

Testowanie

Przygotowanie

  1. Pobierz narzędzie wiersza polecenia Flink z https://aka.ms/hdionaksflink117clilinux na lokalnym komputerze z systemem Windows.

Zainstaluj podsystem Windows dla systemu Linux, aby wykonać tę pracę na lokalnym komputerze z systemem Windows.

  1. Otwórz polecenie systemu Windows i uruchom polecenie (zastąp ścieżkę JAVA_HOME i flink-cli własnymi), aby pobrać plik 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. Ustaw punkt końcowy, ID dzierżawy i port 443 w pliku 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. Dodaj do listy dozwolonych publiczne lokalne adresy IP systemu Windows korzystające z portu 443 i włączonej sieci VPN do usługi HDInsight w ustawieniach zabezpieczeń sieciowych dla ruchu przychodzącego w podsieci klastra AKS.

    Zrzut ekranu przedstawiający sposób zezwalania na publiczny adres IP.

  4. Uruchom sql-client.sh w trybie gateway na Flink-cli do Flink SQL.

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

    Przykład

    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. Przed wykonaniem zapytania względem dowolnej tabeli ze źródłem zewnętrznym przygotuj powiązane pliki jar. Następujące przykłady przedstawiają wykonywanie zapytań dla tabeli Kafka oraz tabeli MySQL w Flink SQL. Pobierz plik jar i umieść go w klastrze Flink podłączonym do magazynu Azure Data Lake Storage gen2.

    Jary w usłudze Azure Data Lake Storage Gen2 w portalu Azure.

    Zrzut ekranu przedstawiający pliki jar w witrynie Azure Portal.

  6. Użyj już utworzonej tabeli i umieść ją w magazynie metadanych Programu Hive na potrzeby zarządzania, a następnie uruchom zapytanie.

    Notatka

    W tym przykładzie wszystkie opakowania jar w HDInsight na AKS domyślnie używają Azure Data Lake Storage Gen2. Kontener i konto magazynu nie muszą być takie same jak określone podczas tworzenia klastra. W razie potrzeby możesz określić inne konto magazynu i przyznać tożsamości zarządzanej przez użytkownika klastra rolę właściciela danych obiektu blob magazynu po stronie usługi 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 |
    
    

Odniesienie

Interfejs wiersza poleceń (CLI) Apache Flink® Command-Line w usłudze HDInsight na klastrach AKS