Ingestión de datos desde lagos de datos
Si tiene previsto consultar regularmente los datos, cárguelos en NPSaaS primero para obtener las mejores ventajas de rendimiento.
Antes de empezar
In the examples, the publicly available datos del registro Viaje en taxi a Nueva York {: external} for yellow taxis in January 2022 is used. Para seguir este ejemplo, asegúrate de que los datos están en un bucket S3 accesible.
1. Cree un origen de datos externo.
Los orígenes de datos externos permiten a un administrador otorgar acceso a S3 sin proporcionar las claves directamente a un usuario.
a) Establezca ENABLE_EXTERNAL_DATASOURCE.
set ENABLE_EXTERNAL_DATASOURCE = 1;
b) Cree un origen de datos externo.
create EXTERNAL DATASOURCE 'DATA SOURCE' on 'REMOTE SOURCE'
using (
ACCESSKEYID 'ACCESS KEY ID' SECRETACCESSKEY 'SECRET ACCESS KEY' BUCKET 'BUCKET' REGION 'REGION'
);
Ejemplo:
create EXTERNAL DATASOURCE EXAMPLEDATALAKE on AWSS3
using (
ACCESSKEYID 'XXXX' SECRETACCESSKEY 'XXXX' BUCKET 'exampledatalakebucket' REGION 'US-EAST-1'
);
Para obtener más información, consulte Mandato CREATE EXTERNAL DATASOURCE.
2. Cree una tabla externa para los datos de un lago de datos.
Después de crear un origen de datos externo, puede crear una tabla externa que acceda a los datos de taxi amarillo a partir de enero de 2022.
Asegúrese de que tiene los privilegios necesarios tal como se describe en Privilegios para crear tablas externas.
create EXTERNAL table 'TABLE NAME' on 'DATA SOURCE'
using (
DATAOBJECT ('DATA OBJECT') FORMAT 'PARQUET'
);
El argumento DATAOBJECT
debe hacer referencia a un único archivo en el formato parquet
. Si desea consultar desde varios archivos parquet
, debe crear tablas externas adicionales.
Ejemplo:
create EXTERNAL table YELLOW_TAXI_JANUARY_2022 on EXAMPLEDATALAKE
using (
DATAOBJECT ('/yellow_tripdata_2022-01.parquet') FORMAT 'PARQUET'
);
3. Cargue los datos en NPSaaS.
Para cargar datos del lago de datos en una tabla NPSaaS, ejecute CREATE TABLE AS SELECT desde la tabla externa que desea cargar.
create table 'TABLE NAME LOADED' as
select
*
from
'TABLE';
Ejemplo:
create table YELLOW_TAXI_JANUARY_2022_LOADED as
select
*
from
YELLOW_TAXI_JANUARY_2022;
INSERT 0 2463931
4. Consultar los datos cargados.
Ahora, puede consultar los datos cargados utilizando el rendimiento mejorado de lectura/escritura, zonemaps, etc.
Los nombres de columna parquet distinguen entre mayúsculas y minúsculas. Debe utilizar comillas dobles ("") al consultar columnas específicas.
-
Para identificar el número de pasajeros, ejecute:
select sum("passenger_count") from YELLOW_TAXI_JANUARY_2022_LOADED;
Salida:
SUM ------- 3324167 (1 row)
No tiene que cargar tablas completas en NPSaaS. parquet es un formato de columna, por lo que el motor NPSaaS puede cargar un subconjunto de columnas sin tener que transferir toda la tabla a través de Internet. De esta forma, si trabaja con tablas grandes, puede reducir significativamente el tráfico de entrada y conseguir tiempos de carga más rápidos. El motor de consulta siempre utiliza sólo las columnas de una tabla parquet que son necesarias.