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
Cuando ejecutas un rastreador de AWS Glue, el rastreador completa los siguientes pasos:
- El rastreador clasifica los datos.
- El rastreador agrupa los datos en tablas o particiones.
- El rastreador escribe metadatos en el catálogo de datos de AWS Glue.
Para entender qué hace el rastreador y cómo detecta el esquema, revisa la siguiente información.
Definición de un rastreador
Al definir un rastreador de AWS Glue, puedes elegir uno o más clasificadores personalizados que evalúen el formato de los datos para inferir un esquema. Cuando se ejecuta el rastreador, utiliza el primer clasificador de la lista para reconocer correctamente el almacén de datos y crear un esquema para la tabla. Antes de definir el rastreador, debes definir los clasificadores personalizados. Cuando se ejecuta el rastreador, utiliza el clasificador personalizado que definas para encontrar una coincidencia en el almacén de datos. La coincidencia con cada clasificador genera una certeza. Si el clasificador devuelve certainty=1.0 durante el procesamiento, el rastreador está 100 por ciento seguro de que el clasificador puede crear el esquema correcto. En este caso, el rastreador no invoca ningún otro clasificador y, a continuación, crea una tabla con el clasificador que coincide con el clasificador personalizado.
Para obtener más información, consulta Definición y administración de clasificadores.
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 deducir el esquema. La cantidad de datos leídos 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 deducir el esquema. Si el rastreador lee un registro válido dentro del primer MB del archivo, deduce el esquema. Si el rastreador no puede deducir 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 deduce directamente el esquema del archivo. El rastreador compara los esquemas inferidos de todas las subcarpetas y archivos y, a continuación, crea una o más tablas. Cuando un rastreador crea una tabla, tiene en cuenta los siguientes factores:
- Compatibilidad de datos para comprobar si los datos tienen el mismo formato, tipo de compresión y ruta incluida.
- Similitud de esquemas para comprobar qué tan similares son los esquemas en términos del 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 5.
El rastreador deduce 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 %, los esquemas se indican como particiones de una tabla. Si no coinciden, el rastreador crea una tabla para cada carpeta y da como resultado un número mayor de tablas.
Escenarios de ejemplo
Ejemplo 1
En el ejemplo siguiente, la carpeta DOC-EXAMPLE-FOLDER1 tiene 10 archivos, 8 archivos con el esquema SCH_A y 2 archivos con SCH_B.
Supongamos que los archivos son similares a los siguientes ejemplos:
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"}`When the crawler crawls the Amazon Simple Storage Service (Amazon S3) path **s3://DOC-EXAMPLE-FOLDER1**, the crawler creates one table. The table comprises columns of both schema **SCH\_A** and **SCH\_B**. This is because 80% of the files in the path belong to the **SCH\_A** schema, and 20% of the files belong to the **SCH\_B** schema. Therefore, the schema meets the partition threshold value. Also, the number of different schemas doesn't exceed the number of clusters, and the schema doesn't exceed the cluster size limit.
Ejemplo 2
En el ejemplo siguiente, la carpeta DOC-EXAMPLE-FOLDER2 tiene 10 archivos, 7 archivos con el esquema SCH_A y 3 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. Esto significa que el esquema no cumple con el umbral de partición.
Nota: Puedes consultar los registros del rastreador en Amazon CloudWatch para obtener información sobre las tablas creadas.
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