Megosztás a következőn keresztül:


SQL-ügyfél parancssori felületének indítása átjáró módban

Fontos

Ez a szolgáltatás jelenleg előzetes kiadásban elérhető. A Microsoft Azure Előzetes verzió kiegészítő használati feltételei további jogi feltételeket tartalmaznak, amelyek a bétaverzióban, előzetes verzióban vagy egyébként még nem általánosan elérhető Azure-funkciókra vonatkoznak. Erről az adott előzetes verzióról az Azure HDInsight az AKS előzetes verziójában tájékozódhat. Ha kérdése vagy funkciójavaslata van, küldjön egy kérést az AskHDInsightban a részletekkel együtt, és kövessen minket további frissítésekért az Azure HDInsight-közösségről.

Ez az oktatóanyag bemutatja, hogyan indíthatja el az SQL-ügyfél parancssori felületét átjáró módban az Apache Flink Cluster 1.17.0-s, HDInsighton futó AKS-ben. Átjáró módban a parancssori felület elküldi az SQL-t a megadott távoli átjárónak az utasítások végrehajtásához.

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

Feljegyzés

A HDInsighton futó Apache Flink-fürtben az AKS-en minden külső kapcsolat 443 porton keresztül fog haladni. Belsőleg azonban átirányítja a kérést a 8083-at figyelő SQL-Gateway szolgáltatáshoz.

Ellenőrizze az SQL Gateway szolgáltatást az AKS oldalán:

Képernyőkép az SQL Gateway ellenőrzéséről.

Az Flink Table &SQL API-ja lehetővé teszi az SQL-nyelven írt lekérdezések használatát, de ezeket a lekérdezéseket egy Java vagy Scala nyelven írt táblázatprogramba kell beágyazni. Ezenkívül ezeket a programokat egy buildelési eszközzel kell csomagolni, mielőtt elküldené őket egy fürtnek. Ez a funkció korlátozza az Flink használatát Java/Scala-programozók számára.

Az SQL-ügyfél célja, hogy egyszerű módot biztosítson táblaprogramok írására, hibakeresésére és elküldésére egy Flink-fürtre egyetlen Java- vagy Scala-kódsor nélkül. Az SQL Client CLI lehetővé teszi valós idejű eredmények lekérését és megjelenítését a parancssorban futó elosztott alkalmazásból.

További információ: Flink SQL CLI-ügyfél beírása a webssh-en.

Az SQL Gateway egy olyan szolgáltatás, amely lehetővé teszi, hogy több távoli ügyfél egyidejűleg hajtsa végre az SQL-t. Segítségével egyszerűen elküldheti a Flink-feladatot, megkeresheti a metaadatokat, és online elemezheti az adatokat.

További információ: SQL Gateway.

A HDInsighton futó Apache Flink-fürtben az AKS-en indítsa el az SQL-ügyfél parancssori felületét átjáró módban a parancs futtatásával:

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

Fürtvégpont (gazdagép vagy fqdn) lekérése az Azure Portalon.

Képernyőkép a fürtvégpontról.

Tesztelés

Előkészítés

  1. Töltse le a Flink CLI-t a helyi Windows-gépről https://aka.ms/hdionaksflink117clilinux .

Telepítse a Linuxos Windows-alrendszer, hogy ez működjön a helyi Windows-gépen.

  1. Nyissa meg a Windows parancsot, és futtassa (cserélje le a JAVA_HOME és a flink-cli elérési útját a sajátjára) a flink-cli letöltéséhez:

    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. Végpont, bérlőazonosító és 443-as port beállítása az flink-conf.yaml fájlban

    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. Helyi Windows nyilvános IP-cím engedélyezése a 443-as porton, és a VPN engedélyezve van a HDInsightban az AKS-fürt alhálózatának hálózati biztonsági bejövő kapcsolatán.

    Képernyőkép a nyilvános IP-cím engedélyezéséről.

  4. Futtassa a sql-client.sh átjáró módban a Flink-cli és az Flink SQL között.

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

    Példa

    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. Mielőtt bármilyen táblát külső forrásból kérdez le, készítse elő a kapcsolódó jarokat. Az alábbi példákban a kafka táblát, a mysql-táblát az Flink SQL-ben kérdezheti le. Töltse le a jart, és helyezze el a csatlakoztatott Azure Data Lake Storage Gen2-tárolóban lévő Flink-fürtben.

    Jars az Azure Data Lake Storage gen2-ben az Azure Portalon:

    Képernyőkép jar-fájlokról az Azure Portalon.

  6. Használja a már létrehozott táblát, és helyezze a Hive metaadattárba felügyelet céljából, majd futtassa a lekérdezést.

    Feljegyzés

    Ebben a példában az AKS-en lévő HDInsight összes jarja alapértelmezett Azure Data Lake Storage Gen2. A tárolónak és a tárfióknak nem kell megegyeznie a fürt létrehozása során megadottzal. Szükség esetén megadhat egy másik tárfiókot, és az Azure Data Lake Storage Gen2 oldalán a fürtfelhasználó által felügyelt identitást adhat a tárblobadat-tulajdonosi szerepkörnek.

    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 |
    
    

Referencia

Apache Flink® parancssori felület (CLI) a HDInsighton AKS-fürtökön