Análisis de Vehículos Pasados en Puntos de Control de Tráfico
Esta práctica demuestra el análisis de los vehículos pasados en los puntos de control de tráfico. En esta práctica, 890 millones de piezas de datos de puntos de control de tráfico se cargan en una única tabla de base de datos en GaussDB(DWS) para realizar una consulta precisa y una consulta difusa. Es un ejemplo de consulta de alto rendimiento de datos históricos en GaussDB(DWS).
Los datos de muestra se han cargado a la carpeta de traffic-data en un bucket de OBS, y a todas las cuentas de Huawei Cloud se les ha concedido el permiso de solo lectura para acceder al depósito OBS.
Esta práctica dura unos 40 minutos. El proceso básico es el siguiente:
- Preparación
- Paso 1: Creación de un clúster
- Paso 2: Usar Data Studio para conectarse a un clúster
- Paso 3: Importación de datos de muestra
- Paso 4: Realizar el análisis del vehículo
Preparación
- Registre una Huawei Cloud cuenta y compruebe el estado de la cuenta antes de usar GaussDB(DWS). La cuenta no puede estar en mora o congelada.
- Usted ha obtenido el AK y el SK de la cuenta.
Paso 1: Creación de un clúster
- Inicie sesión en la consola de gestión de Huawei Cloud.
- Seleccione Service List > Analytics > GaussDB(DWS).
- En el panel de navegación de la izquierda, elija Clusters. En la página mostrada, haga clic en Create Cluster en la esquina superior derecha.
- Para obtener más información, consulte Creación de un clúster.
- Confirme la información, haga clic en Next, and then click Submit.
- Espera unos 6 minutos. Después de crear el clúster, haga clic en junto al nombre del clúster. En la página de información del clúster mostrada, registre el valor de Public Network Address, por ejemplo, dws-demov.dws.huaweicloud.com.
Paso 2: Usar Data Studio para conectarse a un clúster
- Asegúrese de que JDK 1.8.0 o posterior se ha instalado en el host de cliente. Seleccione PC > Properties > Advanced System Settings > Environment Variables y establezca JAVA_HOME (por ejemplo, C:\Program Files\Java\jdk1.8.0_191). Agregue ;%JAVA_HOME%\bin a la path de acceso de la variable.
- En la página Connections de la consola GaussDB(DWS), descargue el cliente GUI de Data Studio.
- Descomprima el paquete de software de Data Studio descargado, vaya al directorio descomprimido y haga doble clic en Data Studio.exe para iniciar el cliente.
- En el menú principal de Data Studio, seleccione File > New Connection. En el cuadro de diálogo que se muestra, configure la conexión basada en. Tabla 1.
Tabla 1 Configuración del software Data Studio Parámetro
Configuración
Tipo de base de datos
GaussDB(DWS)
Nombre de la conexión
dws-demo
Host
dws-demov.dws.huaweicloud.com
El valor de este parámetro debe ser el mismo que el valor de Public Network Address consultada en Paso 1: Creación de un clúster.
Puerto de host
8000
Nombre de la base de datos
gaussdb
Nombre de usuario
dbadmin
Contraseña
-
Habilitar SSL
Deshabilitar
- Haz clic en OK.
Paso 3: 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 ejemplo de los puntos de control de tráfico y realizar consultas de datos.
- Ejecute la siguiente instrucción para crear la base de datos de traffic:
1
create database traffic encoding 'utf8' template template0;
- Realice los siguientes pasos para cambiar a la nueva base de datos:
- En la ventana Object Browser del cliente de Data Studio, haga clic con el botón derecho en la conexión de base de datos y elija Refresh en el menú contextual. A continuación, se muestra la nueva base de datos.
- Haga clic con el botón derecho en el nombre del nuevo traffic de base de datos y elija Connect to DB en el menú contextual.
- Haga clic con el botón derecho en el nombre de la nueva base de datos de traffic y elija Open Terminal en el menú contextual. Se muestra la ventana de comandos SQL para conectarse a la base de datos especificada. Realice los siguientes pasos en la ventana.
- Ejecute las siguientes instrucciones para crear una tabla de base de datos para almacenar información del vehículo desde puntos de control de tráfico:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
create schema traffic_data; set current_schema= traffic_data; 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 OBS. Solo algunas regiones son compatibles. Los clústeres de GaussDB(DWS) no admiten el acceso entre regiones a los datos del bucket de OBS.
- En esta práctica, se utiliza como ejemplo CN-Hong Kong Escriba dws-demo-ap-southeast-1 y reemplace <Access_Key_Id> y <Secret_Access_Key> por el valor obtenido en Preparación.
- Si se muestra el mensaje "ERROR: schema "xxx" does not exist Position" al crear una tabla externa, el esquema no existe. Realice el paso anterior para crear un esquema.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
create schema tpchobs; set current_schema = 'tpchobs'; drop FOREIGN table if exists GCJL_OBS; CREATE FOREIGN TABLE GCJL_OBS ( like traffic_data.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' );
- Ejecute la siguiente instrucción para importar datos de la tabla externa a la tabla de base de datos:
1
insert into traffic_data.GCJL select * from tpchobs.GCJL_OBS;
Se necesita algún tiempo para importar datos.
Paso 4: Realizar el análisis del vehículo
- Realización de ANALYZE
Esta instrucción 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 instrucción para generar las estadísticas de la tabla:
1
Analyze;
- Consultar el volumen de datos de la tabla de datos
Ejecute la siguiente instrucción para consultar el número de registros de datos cargados:
1 2
set current_schema= traffic_data; Select count(*) from traffic_data.gcjl;
- Consulta precisa del vehículo
Ejecute las siguientes instrucciones para consultar la ruta de conducción de un vehículo por el número de matrícula y el segmento de tiempo. GaussDB(DWS) responde a la solicitud en segundos.
1 2 3 4 5 6
set current_schema= traffic_data; select hphm, kkbh, gcsj from traffic_data.gcjl where hphm = 'YD38641' and gcsj between '2016-01-06' and '2016-01-07' order by gcsj desc;
- Consulta de vehículo difuso
Ejecute las siguientes instrucciones para consultar la ruta de conducción de un vehículo por el número de matrícula y el segmento de tiempo. GaussDB(DWS) responde a la solicitud en segundos.
1 2 3 4 5 6 7
set current_schema= traffic_data; select hphm, kkbh, gcsj from traffic_data.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;