Compartir a través de


Inicio de la CLI de cliente SQL en modo de puerta de enlace

Importante

Azure HDInsight en AKS se retiró el 31 de enero de 2025. Descubra más con este anuncio.

Debe migrar las cargas de trabajo a microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo.

Importante

Esta característica está actualmente en versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en versión beta, en versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte información de la versión preliminar de Azure HDInsight en AKS. Para preguntas o sugerencias de características, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones sobre la Comunidad de Azure HDInsight.

En este tutorial se explica cómo iniciar la CLI de SQL Client en modo de puerta de enlace en Apache Flink Cluster 1.17.0 en HDInsight en AKS. En el modo de puerta de enlace, la CLI envía sql a la puerta de enlace remota especificada para ejecutar instrucciones.

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

Nota

En el clúster de Apache Flink en HDInsight en AKS, cualquier conexión externa pasará a través de 443 puertos. Pero internamente, volverá a enrutar la solicitud al servicio sql-gateway que escucha el puerto 8083.

Compruebe el servicio SQL Gateway en el entorno de AKS.

Captura de pantalla que muestra cómo comprobar la puerta de enlace de SQL.

Table & SQL API de Flink permite trabajar con consultas escritas en el lenguaje SQL, pero estas consultas necesitan insertarse en un programa de tabla escrito en Java o Scala. Además, estos programas deben empaquetarse con una herramienta de compilación antes de enviarse a un clúster. Esta característica limita el uso de Flink a programadores de Java/Scala.

El cliente SQL tiene como objetivo proporcionar una manera sencilla de escribir, depurar y enviar programas de tabla a un clúster de Flink sin una sola línea de código Java o Scala. La CLI del cliente SQL permite recuperar y visualizar los resultados en tiempo real de la aplicación distribuida en ejecución en la línea de comandos.

Para obtener más información, consulte cómo acceder al cliente de la CLI de SQL de Flink en webssh.

Sql Gateway es un servicio que permite que varios clientes del remoto ejecuten SQL en simultaneidad. Proporciona una manera fácil de enviar el trabajo de Flink, buscar los metadatos y analizar los datos en línea.

Para obtener más información, consulte SQL Gateway.

En el clúster de Apache Flink en HDInsight en AKS, inicie la CLI del cliente SQL en modo de puerta de enlace mediante la ejecución del comando :

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

Obtenga el punto de conexión del clúster (host o fqdn) en Azure Portal.

Captura de pantalla que muestra el punto de conexión del clúster.

Ensayo

Preparación

  1. Descargue la CLI de Flink desde https://aka.ms/hdionaksflink117clilinux en la máquina Windows local.

Instale subsistema de Windows para Linux para que esto funcione en la máquina Windows local.

  1. Abra el comando de Windows y ejecute (reemplace JAVA_HOME y la ruta de acceso flink-cli por su cuenta) para descargar 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. Establecimiento del punto de conexión, el identificador de inquilino y el puerto 443 en 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. Permitir la dirección IP pública local de Windows con el puerto 443 con VPN habilitado en HDInsight en las reglas de entrada de seguridad de la red de la subred del clúster de AKS.

    Captura de pantalla que muestra cómo permitir la dirección IP pública.

  4. Ejecute el sql-client.sh en modo de puerta de enlace en Flink-cli a Flink SQL.

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

    Ejemplo

    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. Antes de consultar cualquier tabla con origen externo, prepare los archivos JAR relacionados. Los ejemplos siguientes consultan la tabla de Kafka, la tabla de MySQL en el SQL de Flink. Descargue el archivo jar y colóquelo en el clúster de Flink conectado al almacenamiento de Azure Data Lake gen2.

    Jars en Azure Data Lake Storage gen2 en Azure Portal:

    Captura de pantalla en la que se muestran los archivos jar en Azure Portal.

  6. Use la tabla ya creada y colóquela en metastore de Hive para la administración y, a continuación, ejecute la consulta.

    Nota

    En este ejemplo, todos los archivos JAR en HDInsight en AKS usan por defecto Azure Data Lake Storage Gen2. El contenedor y la cuenta de almacenamiento no deben ser los mismos que se especifican durante la creación del clúster. Si es necesario, puede especificar otra cuenta de almacenamiento y conceder a la identidad administrada por el usuario del clúster el rol propietario de datos de blobs de almacenamiento en 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 |
    
    

Referencia

Apache Flink® Command-Line Interface (CLI) en HDInsight en clústeres de AKS