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:
Regiones admitidas
La Tabla 1 describe las regiones donde se han cargado los datos 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
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.
- 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.
- En la ventana SQL del editor SQL, ejecute la siguiente sentencia para crear la base de datos traffic:
1CREATE DATABASE traffic encoding 'utf8' template template0;
- En la página del editor de SQL, cambie a la nueva base de datos traffic en la parte superior.

- 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);
- 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' );
- Importe datos de una tabla externa a una tabla de base de datos.
1INSERT INTO GCJL SELECT * FROM GCJL_OBS;
Se necesita algún tiempo para importar datos.
Paso 3: Realización del análisis del vehículo
- 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:
1ANALYZE;
- Consulta del volumen de datos de la tabla de datos
Ejecute la siguiente sentencia para consultar el número de registros de datos cargados:
1SELECT count(*) FROM gcjl;
- 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;
- 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;