¿Cómo determina un rastreador cuándo crear particiones? - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

¿Cómo determina un rastreador cuándo crear particiones?

Cuando un rastreador de AWS Glue analiza Amazon S3 y detecta varias carpetas en un bucket, determina la raíz de una tabla en la estructura de carpetas y qué carpetas son particiones de una tabla. El nombre de la tabla se basa en el prefijo de Amazon S3 o el nombre de carpeta. Proporcione una ruta de inclusión que apunte al nivel de carpeta que se rastreará. Cuando la mayoría de los esquemas en el nivel de carpeta son similares, el rastreador crea particiones de una tabla en vez de tablas independientes. Para influir en el rastreador con el fin de que cree tablas independientes, agregue la carpeta raíz de cada tabla como un almacén de datos independiente al definir el rastreador.

Por ejemplo, considere la siguiente estructura de carpetas de Amazon S3.


          Los rectángulos en varios niveles representan una jerarquía de carpetas en Amazon S3. El rectángulo superior tiene la etiqueta (Sales) Ventas. El rectángulo debajo de este está etiquetado year=2019 (año=2019). Dos rectángulos debajo que están etiquetados month=Jan (Mes=ene) y month=Feb (mes=feb). Cada uno de esos rectángulos tiene dos rectángulos debajo de ellos, etiquetados day=1 (día=1) y day=2 (día=2). Los cuatro rectángulos de “día” (parte inferior) tienen dos o cuatro archivos debajo de ellos. Todos los rectángulos y archivos están conectados con líneas.

Las rutas de acceso a las cuatro carpetas de nivel inferior son las siguientes:

S3://sales/year=2019/month=Jan/day=1 S3://sales/year=2019/month=Jan/day=2 S3://sales/year=2019/month=Feb/day=1 S3://sales/year=2019/month=Feb/day=2

Supongamos que el destino del rastreador está establecido en Sales y que todos los archivos en la carpeta day=n tienen el mismo formato (por ejemplo, JSON, no cifrado) y tienen los mismos esquemas o muy similares. El rastreador creará una sola tabla con cuatro particiones, con claves de partición year, month y day.

Por ejemplo, considere la siguiente estructura de Amazon S3:

s3://bucket01/folder1/table1/partition1/file.txt s3://bucket01/folder1/table1/partition2/file.txt s3://bucket01/folder1/table1/partition3/file.txt s3://bucket01/folder1/table2/partition4/file.txt s3://bucket01/folder1/table2/partition5/file.txt

Si los esquemas para los archivos en table1 y table2 son similares, y se define un almacén de datos individual en el rastreador con Include path (Ruta de inclusión) s3://bucket01/folder1/, el rastreador crea una sola tabla con dos columnas de claves de partición. La primera columna de clave de partición contiene table1 y table2, y la segunda columna de clave de partición contiene partition1 a partition3 para la partición de la table1, y partition4 y partition5 para la partición de la table2. Para crear dos tablas independientes, defina el rastreador con dos almacenes de datos. En este ejemplo, defina la primera ruta de inclusión como s3://bucket01/folder1/table1/ y la segunda como s3://bucket01/folder1/table2.

nota

En Amazon Athena, cada tabla corresponde a un prefijo de Amazon S3 con todos los objetos que contiene. Si los objetos tienen diferentes esquemas, Athena no reconoce objetos distintos en el mismo prefijo como tablas independientes. Esto puede suceder si un rastreador crea varias tablas a partir del mismo prefijo de Amazon S3. Esto podría dar lugar a consultas en Athena que no devuelvan resultados. Para que Athena reconozca y consulte las tablas correctamente, cree el rastreador con una Include path (Ruta de inclusión)diferente para cada esquema de tabla en la estructura de carpetas de Amazon S3. Para obtener más información, consulte las Mejores prácticas de uso de Athena con AWS Glue y este artículo del Centro de conocimientos de AWS.