Spustit příkazové rozhraní klienta SQL v režimu brány
Důležitý
Azure HDInsight v AKS byl vyřazen 31. ledna 2025. Zjistěte více s tímto oznámením.
Abyste se vyhnuli náhlému ukončení úloh, musíte migrovat úlohy do Microsoft Fabric nebo ekvivalentního produktu Azure.
Důležitý
Tato funkce je aktuálně ve verzi Preview. doplňkové podmínky použití pro verze Preview Microsoft Azure obsahují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nebyly vydány v obecné dostupnosti. Informace o této konkrétní ukázce najdete v tématu Azure HDInsight ve službě AKS. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás pro další aktualizace v komunitě Azure HDInsight.
Tento kurz vás provede spuštěním rozhraní příkazového řádku klienta SQL v režimu brány v clusteru Apache Flink 1.17.0 ve službě HDInsight v AKS. V režimu brány rozhraní příkazového řádku odešle sql do zadané vzdálené brány, aby se spustily příkazy.
./bin/sql-client.sh gateway --endpoint <gateway address>
Poznámka
V clusteru Apache Flink ve službě HDInsight v AKS bude jakékoli externí připojení přes port 443. Interně ale požadavek přesměruje na službu sql-gateway, která naslouchá na portu 8083.
Zkontrolujte službu brány SQL na straně AKS:
Co je SQL Client v Flinku?
Flinkova tabulka & rozhraní SQL API umožňuje pracovat s dotazy, které jsou napsané v jazyce SQL, ale tyto dotazy potřebují vložit do tabulkového programu napsaného v Javě nebo Scala. Tyto programy je navíc potřeba před odesláním do clusteru zabalit pomocí nástroje pro sestavení. Tato funkce omezuje využití Flinku na programátory v Javě nebo Scalě.
Cílem klienta SQL je poskytnout snadný způsob psaní, ladění a odesílání tabulkových programů do clusteru Flink bez jediného řádku kódu Java nebo Scala. Rozhraní příkazového řádku klienta SQL umožňuje načíst a vizualizovat výsledky v reálném čase ze spuštěné distribuované aplikace na příkazovém řádku.
Další informace najdete v části jak přistupovat ke klientovi Flink SQL CLI pomocí webssh.
Co je SQL Gateway v Flinku
SQL Gateway je služba, která umožňuje více klientům ze vzdáleného prostředí spouštět SQL v souběžnosti. Poskytuje snadný způsob, jak odeslat úlohu Flink, vyhledat metadata a analyzovat data online.
Další informace najdete v tématu SQL Gateway.
Spusťte rozhraní příkazového řádku SQL klienta v režimu gateway ve Flink-cli
V clusteru Apache Flink ve službě HDInsight v AKS spusťte rozhraní příkazového řádku klienta SQL v režimu brány spuštěním příkazu:
./bin/sql-client.sh gateway --endpoint host:port
or
./bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Získejte koncový bod clusteru (host nebo plně kvalifikovaný název domény) na Azure Portal.
Testování
Příprava
Stažení Flink CLI
- Stáhněte rozhraní příkazového řádku Flink z https://aka.ms/hdionaksflink117clilinux na místním počítači s Windows.
Nainstalujte subsystém Windows pro Linux, aby to fungovalo na místním počítači s Windows.
Otevřete příkaz Windows a spusťte (nahraďte cestu k JAVA_HOME a flink-cli vlastními) a stáhněte 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
Nastavení koncového bodu, ID tenanta a portu 443 v 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
Přidejte veřejnou IP adresu místních Windows se zapnutým VPN a portem 443 na seznam povolených v příchozím zabezpečení sítě podsítě clusteru AKS ve službě HDInsight.
Spusťte sql-client.sh v režimu brány na Flink-cli pro Flink SQL.
bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
Příklad
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
Před dotazem na jakoukoli tabulku s externím zdrojem připravte příslušné soubory JAR. Následující příklady se dotazují na tabulku Kafka a tabulku MySQL ve Flink SQL. Stáhněte soubor JAR a vložte ho do clusteru Flink připojeného k úložišti Azure Data Lake Storage Gen2.
Jars v Azure Data Lake Storage Gen2 na webu Azure Portal:
Použijte tabulku, kterou jste už vytvořili, a vložte ji do metastoru Hive pro správu a pak spusťte dotaz.
Poznámka
V tomto příkladu jsou všechny soubory JAR ve službě HDInsight na AKS v Azure Data Lake Storage Gen2 jako výchozí úložiště. Kontejner a účet úložiště nemusí být stejné jako při vytváření clusteru. V případě potřeby můžete zadat jiný účet úložiště a udělit identitě spravované uživatelem clusteru roli vlastníka dat objektu blob úložiště na straně 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 |
Odkaz
Rozhraní Apache Flink® Command-Line (CLI) pro HDInsight na clusterech AKS