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.
Co to jest klient SQL w języku Flink?
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.
Co to jest usługa SQL Gateway w języku Flink
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.
Uruchom SQL Client CLI w trybie gateway w Flink-cli
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.
Testowanie
Przygotowanie
Pobierz CLI Flink
- 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.
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
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
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.
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
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.
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