Sdílet prostřednictvím


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:

Snímek obrazovky ukazující, jak zkontrolovat bránu SQL

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.

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.

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.

Snímek obrazovky znázorňující koncový bod clusteru

Testování

Příprava

  1. 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.

  1. 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
    
  2. 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
    
  3. 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.

    snímek obrazovky znázorňující, jak povolit veřejnou IP adresu

  4. 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
    
  5. 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:

    Snímek obrazovky zobrazující soubory JAR na webu Azure Portal

  6. 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