Publicado el :
ETL CREACION_INTERNA

Gestión de datos particionados - Ejemplo 1

Este código también está disponible en: Deutsch English Français
En espera de validación
El programa comienza por eliminar una tabla existente llamada 'dpart' de la biblioteca 'mydblib' para asegurar un entorno limpio. Luego, crea una nueva tabla 'dpart' en 'mydblib' usando un DATA STEP con datos integrados a través de la instrucción DATALINES. La tabla se especifica como particionada por la columna 'dates' con un formato de archivo 'sequencefile'. Finalmente, se utiliza una PROC SQL para consultar la tabla particionada, filtrando los registros para una fecha específica, demostrando así el acceso a los datos particionados.
Análisis de datos

Type : CREACION_INTERNA


Los datos utilizados para crear la tabla 'dpart' se integran directamente en el script SAS a través de la instrucción DATALINES. No hay dependencia de archivos externos o tablas SAS preexistentes, a excepción del destino 'mydblib' que es una biblioteca externa potencialmente vinculada a Hadoop.

1 Bloque de código
PROC DELETE
Explicación :
Este bloque de código utiliza PROC DELETE para eliminar la tabla 'dpart' de la biblioteca 'mydblib'. Esto permite limpiar el entorno antes de recrear la tabla, evitando errores debido a la existencia previa de la tabla. Se supone que 'mydblib' es una biblioteca SAS/ACCESS conectada a una fuente de datos externa.
¡Copiado!
1PROC DELETE DATA=mydblib.dpart; RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Este DATA STEP es responsable de la creación de la tabla 'dpart' y de su carga con los datos especificados. La opción `post_table_opts` es crucial aquí: se pasa a la base de datos externa (como Hadoop) para indicar que la tabla debe crearse con particionamiento por la columna 'dates' y almacenarse en formato 'sequencefile'. Las instrucciones `input`, `informat`, `format` definen la estructura de las columnas y sus formatos, mientras que `datalines` proporciona los valores de los registros.
¡Copiado!
1 DATA mydblib.dpart (post_table_opts ="partitioned by (dates date)
2 stored as sequencefile") ;
3 INPUT FLIGHT $3. +5 DATES date7. +2 ORIG $3. +3 DEST $3. +3
4 DELAYCAT $15. +2 DESTYPE $15. +8 DELAY;
5 informat DATES date7.;
6 FORMAT DATES date9.;
7 DATALINES;
8114 01MAR98 LGA LAX 1-10 Minutes Domestic 8
9202 01MAR98 LGA ORD No Delay Domestic -5
10219 01MAR98 LGA LON 11+ Minutes International 18
11114 02MAR98 LGA LAX No Delay Domestic 0
12202 02MAR98 LGA ORD 1-10 Minutes Domestic 5
13219 02MAR98 LGA LON 11+ Minutes International 18
14622 02MAR98 LGA FRA No Delay International 0
15114 03MAR98 LGA LAX No Delay Domestic -1
16202 03MAR98 LGA ORD No Delay Domestic -1
17219 03MAR98 LGA LON 1-10 Minutes International 4
18302 03MAR98 LGA WAS 1-10 Minutes Domestic 5
19;
3 Bloque de código
PROC SQL
Explicación :
Este bloque utiliza PROC SQL para consultar la tabla 'dpart' que acaba de crearse. La cláusula `WHERE dates = '01mar98'd` demuestra cómo filtrar los datos utilizando la columna particionada 'dates'. La 'd' después de la fecha indica una constante de fecha SAS. El objetivo es mostrar que solo se recuperan los datos correspondientes a esta partición, resultando en '3 filas' como se indica en el título.
¡Copiado!
1title 'SHOULD SEE ONLY 3 ROWS';
2PROC SQL;
3 select flight from mydblib.dpart where dates = '01mar98'd;
4QUIT;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : S A S S A M P L E L I B R A R Y