Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Data Warehouse Service/ Prácticas recomendadas / Importación y exportación/ Importación de datos de tablas desde DLI a un clúster de DWS
Actualización más reciente 2026-09-29 GMT+08:00

Importación de datos de tablas desde DLI a un clúster de DWS

Este ejercicio demuestra cómo utilizar la función de tabla externa de DWS para importar datos desde DLI a DWS.

Para obtener más información sobre DLI, consulte ¿Qué es Data Lake Insight?

Este ejercicio dura aproximadamente 60 minutos e implica el uso de varios servicios en la nube, como Virtual Private Cloud (VPC) and Subnet, Data Lake Insight (DLI), Object Storage Service (OBS) y DWS. A continuación se presenta un resumen del ejercicio.

  1. Preparativos
  2. Paso 1: Preparación de los datos de origen de DLI
  3. Paso 2: Creación de un clúster de DWS
  4. Paso 3: Obtención de la información de autenticación requerida por el servidor externo de DWS.
  5. Paso 4: Importación de datos de tablas de DLI mediante una tabla externa

Preparativos

  • Ha creado un ID de Huawei y habilitado los servicios de Huawei Cloud. La cuenta no puede estar en mora o congelada.
  • Ha creado una VPC y una subred. Para obtener más información, consulte Creación de una VPC.
  • Ha obtenido la AK y la SK de su cuenta de Huawei. Para obtener más información, consulte Claves de acceso.

Paso 1: Preparación de los datos de origen de DLI

  1. Cree un grupo de recursos elásticos de DLI y una cola.

    1. Inicie sesión en la consola de DLI.
    2. En el panel de navegación de la izquierda, seleccione Resources > Resource Pool.
    3. Haga clic en Buy Resource Pool en la esquina superior derecha, establezca los siguientes parámetros y conserve los valores predeterminados para otros parámetros que no se describen en la tabla.
      Tabla 1 Parámetros de grupo de recursos elásticos de DLI

      Parámetro

      Valor

      Billing Mode

      Pay-per-use

      Region

      CN-Hong Kong

      Name

      dli_dws

      Specifications

      Standard

      CIDR Block

      172.16.0.0/18.

    4. Haga clic en Buy y haga clic en Submit.

      Una vez creado el grupo de recursos, siga con el siguiente paso.

    5. En la página de grupo de recursos elásticos, busque la fila que contiene el grupo de recursos creado, haga clic en Add Queue en la columna Operation y configure los siguientes parámetros. Conserve los valores predeterminados para otros parámetros que no se describen en la tabla.
      Tabla 2 Adición de una cola

      Parámetro

      Valor

      Name

      dli_dws

      Type

      For SQL

    6. Haga clic en Next y en OK. La cola se ha creado.

  2. Cargue los datos de origen en el bucket de OBS.

    1. Se ha creado un bucket de OBS con un nombre definido por el usuario, por ejemplo, dli-obs01 (si el nombre del bucket ya está en uso, utilice dli-obs02 en su lugar). La región es CN-Hong Kong.
    2. Descargue el archivo de muestra de datos.
    3. Cree una carpeta dli_order en el bucket de OBS y cargue el archivo de datos descargado en esa carpeta.

  3. Vuelva a la consola de gestión de DLI. En el panel de navegación, haga clic en SQL Editor. Seleccione dli_dws para Queue y default para Database. Ejecute el siguiente comando para crear una base de datos llamada dli_data:

    1
    CREATE DATABASE dli_data;default
    

  4. Cree una tabla.

    LOCATION especifica el directorio de OBS donde se almacena el archivo de datos, formateado como obs://OBS bucket name/folder name. En este ejemplo, el directorio es obs://dli-obs01/dli_order. Si el nombre de bucket o el nombre de la carpeta cambia, sustitúyalo en consecuencia.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE EXTERNAL TABLE dli_data.dli_order
         ( order_id      VARCHAR(12),
           order_channel VARCHAR(32),
           order_time    TIMESTAMP,
           cust_code     VARCHAR(6),
           pay_amount    DOUBLE,
           real_pay      DOUBLE ) 
    STORED AS parquet
    LOCATION 'obs://dli-obs01/dli_order';
    

  5. Ejecute la siguiente sentencia para consultar datos.

    1
    SELECT * FROM dli_data.dli_order;
    

Paso 2: Creación de un clúster de DWS

  1. Crear un clúster. Para garantizar la conectividad de red, configure la región del clúster de DWS como CN-Hong Kong.

Paso 3: Obtención de la información de autenticación requerida por el servidor externo de DWS

  1. Obtenga el punto de conexión del bucket de OBS.

    1. Inicie sesión en la consola de OBS.
    2. Haga clic en el nombre del bucket, seleccione Overview a la izquierda y registre el punto de conexión.

  2. Obtenga el punto de conexión de DLI de Puntos de conexión.

    En este ejemplo, el punto de conexión es dli.ap-southeast-1.myhuaweicloud.com.

    En este ejemplo (EU-Dublin), el punto de conexión es dli.eu-west-101.myhuaweicloud.com.

  3. Obtenga el ID del proyecto para la región específica de la cuenta utilizada para crear DLI.

    1. Mueva el cursor al nombre de la cuenta en la esquina superior derecha y haga clic en My Credentials.
    2. Seleccione API Credentials a la izquierda.
    3. En la lista, busque la región donde se despliega la instancia de DLI, por ejemplo, CN-Hong Kong, y registre el ID del proyecto correspondiente al nombre de la región.

  4. Obtenga la AK y la SK de su cuenta. Para obtener más información, consulte Requisitos previos.

Paso 4: Importación de datos de tablas de DLI mediante una tabla externa

  1. Inicie sesión en la base de datos de DWS como administrador del sistema dbadmin. De forma predeterminada, puede iniciar sesión en la base de datos de GaussDB.
  2. Ejecute las siguientes sentencias SQL para crear un servidor externo: El punto de conexión de OBS se obtiene de 1, la AK y la SK se obtienen de Preparativos y el punto de conexión de DLI se obtiene de 2.

    Si las instancias de DWS y DLI se crean con la misma cuenta, ingrese la AK y la SK dos veces.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE SERVER dli_server FOREIGN DATA WRAPPER DFS_FDW OPTIONS 
    (ADDRESS'OBS endpoint',
    ACCESS_KEY'AK value'
    SECRET_ACCESS_KEY'SK value'
           TYPE 'DLI',
    DLI_ADDRESS'DLI endpoint',
    DLI_ACCESS_KEY'AK value',
    DLI_SECRET_ACCESS_KEY 'SK value'
         );
    

  3. Ejecute la siguiente sentencia SQL para crear un esquema de destino:

    1
    CREATE SCHEMA dws_data;
    

  4. Ejecute las siguientes sentencias SQL para crear una tabla externa: Reemplace Project ID con el valor real obtenido en 3.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    CREATE FOREIGN TABLE dws_data.dli_pq_order (
      order_id VARCHAR(14) PRIMARY KEY NOT ENFORCED,
      order_channel VARCHAR(32),
      order_time TIMESTAMP,
      cust_code VARCHAR(6),
      pay_amount DOUBLE PRECISION,
      real_pay DOUBLE PRECISION
    )
    SERVER dli_server
    OPTIONS (
      FORMAT 'parquet',
      ENCODING 'utf8',
    DLI_PROJECT_ID'Project ID'
      DLI_DATABASE_NAME 'dli_data',
      DLI_TABLE_NAME 'dli_order')
    DISTRIBUTE BY roundrobin;
    

  5. Ejecute la siguiente sentencia SQL para consultar los datos de la tabla DLI a través de la tabla externa.

    Se accede con éxito a los datos de la tabla DLI.
    1
    SELECT * FROM dws_data.dli_pq_order;
    

  6. Ejecute las siguientes sentencias SQL para crear una tabla local para importar datos de la tabla DLI:

    1
    2
    3
    4
    5
    6
    CREATE TABLE dws_data.dws_monthly_order
         ( order_month       CHAR(8),
           cust_code         VARCHAR(6),
           order_count       INT,
           total_pay_amount  DOUBLE PRECISION,
           total_real_pay    DOUBLE PRECISION );
    

  7. Ejecute las siguientes sentencias SQL para consultar los detalles de los pedidos mensuales de 2023 e importe el resultado a la tabla DWS:

    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO dws_data.dws_monthly_order
         ( order_month, cust_code, order_count     
         , total_pay_amount, total_real_pay )
    SELECT TO_CHAR(order_time, 'MON-YYYY'), cust_code, COUNT(*)
         , SUM(pay_amount), SUM(real_pay)
      FROM dws_data.dli_pq_order
     WHERE DATE_PART('Year', order_time) = 2023
    GROUP BY TO_CHAR(order_time, 'MON-YYYY'), cust_code;
    

  8. Ejecute la siguiente sentencia SQL para consultar los datos de la tabla.

    Los datos de la tabla DLI se importan correctamente a la base de datos DWS.

    1
    SELECT * FROM dws_data.dws_monthly_order;