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 / Análisis de datos/ Uso de DWS para consultar rutas de vehículos en puntos de control de tráfico en segundos
Actualización más reciente 2026-09-29 GMT+08:00

Uso de DWS para consultar rutas de vehículos en puntos de control de tráfico en segundos

Esta práctica muestra cómo analizar los vehículos que pasan por los puntos de control. En esta práctica, 890 millones de registros de datos de los puntos de control se cargan en una única tabla de base de datos en DWS para realizar consultas precisas y difusas, lo que demuestra la capacidad de DWS para realizar consultas de alto rendimiento de datos históricos.

Los datos de ejemplo se han cargado en la carpeta traffic-data de un bucket de OBS, y todas las cuentas Huawei Cloud han recibido el permiso de solo lectura para acceder al bucket de OBS.

Procedimiento general

Esta práctica dura unos 40 minutos. El proceso básico es el siguiente:

  1. Hacer preparaciones
  2. Paso 1: Creación de un clúster
  3. Paso 2: Importación de datos de muestra
  4. Paso 3: Realización del análisis del vehículo

Regiones admitidas

La Tabla 1 describe las regiones donde se han cargado los datos de OBS.

Tabla 1 Regiones y nombres de bucket de OBS

Región

Bucket de OBS

CN North-Beijing1

dws-demo-cn-north-1

CN North-Beijing2

dws-demo-cn-north-2

CN North-Beijing4

dws-demo-cn-north-4

CN North-Ulanqab1

dws-demo-cn-north-9

CN East-Shanghai1

dws-demo-cn-east-3

CN East-Shanghai2

dws-demo-cn-east-2

CN South-Guangzhou

dws-demo-cn-south-1

CN South-Guangzhou-InvitationOnly

dws-demo-cn-south-4

CN-Hong Kong

dws-demo-ap-southeast-1

AP-Singapore

dws-demo-ap-southeast-3

AP-Bangkok

dws-demo-ap-southeast-2

LA-Santiago

dws-demo-la-south-2

AF-Johannesburg

dws-demo-af-south-1

LA-Mexico City1

dws-demo-na-mexico-1

LA-Mexico City2

dws-demo-la-north-2

RU-Moscow2

dws-demo-ru-northwest-2

LA-Sao Paulo1

dws-demo-sa-brazil-1

Hacer preparaciones

  • Ha registrado una cuenta de DWS y ha verificado el estado de la cuenta antes de usar DWS. La cuenta no puede estar en mora o congelada.
  • Obtenga la AK/SK de la cuenta consultando Creación de una clave de acceso.

Paso 1: Creación de un clúster

Cree un clúster de DWS consultando Creación de un clúster. Seleccione CN-Hong Kong para Region. Seleccione Coupled storage and compute para Version. Esta práctica es para la puesta en marcha del servicio. Puede optar por no configurar una EIP ni un balanceador de carga.

CN-Hong Kong se utiliza como ejemplo. Puede seleccionar otra región según sea necesario. Asegúrese de que todas las operaciones se realicen en la misma región.

Paso 2: Importación de datos de muestra

Después de conectarse al clúster mediante la herramienta cliente SQL, realice las siguientes operaciones en la herramienta cliente SQL para importar los datos de muestra de los puntos de control de tráfico y realizar consultas de datos.

  1. En la puesta en marcha del servicio, se recomienda utilizar el SQL Editor para conectarse al clúster. Para obtener más información, consulte Uso del SQL Editor para conectarse a un clúster.

    También puede utilizar otros métodos (como la herramienta de línea de comandos gsql) para conectarse al clúster. Para obtener más información, consulte Conexión a un clúster de DWS.

  2. En la ventana SQL del editor SQL, ejecute la siguiente sentencia para crear la base de datos traffic:

    1
    CREATE DATABASE traffic encoding 'utf8' template template0; 
    

  3. En la página del editor de SQL, cambie a la nueva base de datos traffic en la parte superior.

  4. En la nueva base de datos, ejecute la siguiente sentencia para crear una tabla:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    DROP TABLE if exists GCJL;
    CREATE TABLE GCJL
    (
            kkbh   VARCHAR(20), 
            hphm   VARCHAR(20),
            gcsj   DATE ,
            cplx   VARCHAR(8),
            cllx   VARCHAR(8),
            csys   VARCHAR(8)
    )
    with (orientation = column, COMPRESSION=MIDDLE)
    distribute by hash(hphm);
    

  5. Cree una tabla externa, que se utiliza para identificar y asociar los datos de origen en OBS.

    • <obs_bucket_name> indica el nombre del bucket de OBS correspondiente a la región donde se encuentra DWS. Para obtener más información sobre las regiones admitidas, consulte Regiones admitidas. El bucket de OBS y los datos de ejemplo se han preestablecido en el sistema y no es necesario crearlos. En este manual, se utiliza la región CN-Hong Kong y se establece <obs_bucket_name> en dws-demo-ap-southeast-1. No se puede acceder a los datos de bucket de OBS entre regiones. Por ejemplo, si el clúster se encuentra en CN-Hong Kong, no puede establecer <obs_bucket_name> en el nombre de bucket de otra región.
    • Reemplace <Access_Key_Id> y <Secret_Access_Key> con los valores reales obtenidos en Hacer preparaciones.
    • El uso de AK y SK codificadas de forma rígida (hard-coded) o en texto plano representa un riesgo de seguridad. Por seguridad, encripte su AK/SK y guárdelas en el archivo de configuración o en las variables de entorno.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    DROP FOREIGN table if exists GCJL_OBS;
    CREATE FOREIGN TABLE GCJL_OBS
    (
            like GCJL
    )
    SERVER gsmpp_server 
    OPTIONS (
            encoding 'utf8',
            location 'obs://<obs_bucket_name>/traffic-data/gcxx',
            format 'text',
            delimiter ',',
            access_key '<Access_Key_Id>',
            secret_access_key '<Secret_Access_Key>',
            chunksize '64',
            IGNORE_EXTRA_DATA 'on'
    );
    

  6. Importe datos de una tabla externa a una tabla de base de datos.

    1
    INSERT INTO GCJL SELECT * FROM GCJL_OBS;
    

    Se necesita algún tiempo para importar datos.

Paso 3: Realización del análisis del vehículo

  1. Ejecución de ANALYZE.

    Esta sentencia recopila estadísticas relacionadas con tablas ordinarias en bases de datos. Las estadísticas se guardan en el catálogo del sistema PG_STATISTIC. Cuando ejecuta el planificador, las estadísticas le ayudan a desarrollar un plan de ejecución de consultas eficiente.

    Ejecute la siguiente sentencia para generar las estadísticas de la tabla:

    1
    ANALYZE;
    
  1. Consulta del volumen de datos de la tabla de datos

    Ejecute la siguiente sentencia para consultar el número de registros de datos cargados:

    1
    SELECT count(*) FROM gcjl;
    
  1. Consulta precisa de vehículos

    Ejecute las siguientes sentencias para consultar la ruta de conducción de un vehículo por número de placa y segmento de tiempo. DWS responde a la solicitud en segundos.

    1
    2
    3
    4
    5
    SELECT hphm, kkbh, gcsj
    FROM gcjl
    where hphm =  'YD38641'
    and gcsj between '2016-01-06' and '2016-01-07'
    order by gcsj desc;
    
  1. Consulta aproximada de vehículos

    Ejecute las siguientes sentencias para consultar la ruta de conducción de un vehículo por número de placa y segmento de tiempo. DWS responde a la solicitud en segundos.

    1
    2
    3
    4
    5
    6
    SELECT hphm, kkbh, gcsj 
    FROM gcjl
    where hphm like  'YA23F%'
    and kkbh in('508', '1125', '2120') 
    and gcsj between '2016-01-01' and '2016-01-07'  
    order by hphm,gcsj desc;