Cuando ejecuto un rastreador de AWS Glue, el rastreador crea varias tablas con esquemas que tienen un aspecto similar. Quiero saber cómo el rastreador detecta el esquema.
Resolución
Detección de esquemas en el rastreador
Durante la primera ejecución del rastreador, el rastreador lee los primeros 1000 registros o el primer megabyte de cada archivo para inferir el esquema. La cantidad de datos que el rastreador lee depende del formato del archivo y de la disponibilidad de un registro válido. Por ejemplo, si el archivo de entrada es un archivo JSON, el rastreador lee el primer MB del archivo para inferir el esquema.
Si el rastreador lee un registro válido dentro del primer MB del archivo, infiere el esquema. Si el rastreador no puede inferir el esquema después de 1 MB, continúa leyendo hasta 10 MB del archivo en incrementos de 1 MB.
En el caso de los archivos CSV, el rastreador lee los primeros 1000 registros o el primer MB de datos, lo que ocurra primero. En el caso de los archivos de Parquet, el rastreador infiere directamente el esquema del archivo. El rastreador compara los esquemas que ha inferido de todas las subcarpetas y archivos y, a continuación, crea una o más tablas.
Cuando un rastreador crea una tabla, el rastreador tiene en cuenta los siguientes factores:
- Los datos tienen el mismo formato, tipo de compresión y ruta incluida.
- Grado de similitud entre los esquemas en cuanto al umbral de partición y el número de esquemas diferentes.
Para que un rastreador considere esquemas similares, deben cumplirse las siguientes condiciones:
- El umbral de partición es superior a 0,7 (70 %).
- El número máximo de esquemas diferentes, también denominados "clústeres" en este contexto, no supera los cinco.
El rastreador infiere el esquema a nivel de carpeta y compara los esquemas en todas las carpetas. Si los esquemas comparados coinciden con un umbral de partición superior al 70 %, el rastreador indica los esquemas como particiones de una tabla. Si no coinciden, el rastreador crea una tabla para cada carpeta que da como resultado un mayor número de tablas.
Escenarios de ejemplo
Ejemplo 1
En el ejemplo siguiente, la carpeta DOC-EXAMPLE-FOLDER1 tiene 10 archivos, ocho archivos con el esquema SCH_A y dos archivos con SCH_B.
Los archivos son similares a los del ejemplo siguiente:
SHC_A:
{ "id": 1, "first_name": "John", "last_name": "Doe"}{ "id": 2, "first_name": "Li", "last_name": "Juan"}
SCH_B:
{"city":"Dublin","country":"Ireland"}{"city":
"Paris","country":"France"}
Cuando el rastreador rastrea la ruta s3://DOC-EXAMPLE-FOLDER1 de Amazon Simple Storage Service (Amazon S3), crea una tabla. La tabla comprende columnas del esquema SCH_A y SCH_B. Esto se debe a que el 80 % de los archivos de la ruta pertenecen al esquema SCH_A y el 20 % de los archivos pertenecen al esquema SCH_B. Por lo tanto, el esquema cumple el valor del umbral de partición. Además, el número de esquemas diferentes no supera el número de clústeres y el esquema no supera el límite de tamaño del clúster.
Ejemplo 2
En el ejemplo siguiente, la carpeta DOC-EXAMPLE-FOLDER2 tiene 10 archivos, siete archivos con el esquema SCH_A y tres archivos con el esquema SCH_B.
Cuando el rastreador rastrea la ruta s3://DOC-EXAMPLE-FOLDER2 de Amazon S3, crea una tabla para cada archivo. Esto se debe a que el 70 % de los archivos pertenecen al esquema SCH_A y el 30 % de los archivos pertenecen al esquema SCH_B. Por lo tanto, el esquema no cumple con el umbral de partición.
Nota: Para obtener información sobre las tablas, consulta los registros del rastreador en Amazon CloudWatch.
Opciones de rastreador
Al personalizar el comportamiento del rastreador, puedes elegir una de las siguientes opciones:
Información relacionada
Uso de rastreadores para rellenar el catálogo de datos
Personalización del comportamiento del rastreador
Definición y administración de clasificadores