Propiedades del rastreador - AWS Glue

Propiedades del rastreador

Al definir un rastreador mediante la consola de AWS Glue o la AWS Glue API, puede especificar la siguiente información:

Nombre del rastreador, configuración y descriptores opcionales

La configuración incluye etiquetas, configuración de seguridad y clasificadores personalizados. Puede definir los clasificadores personalizados antes de definir los rastreadores. Para obtener más información, consulte los siguientes enlaces:

Tipo de origen del rastreador

El rastreador puede acceder a los almacenes de datos directamente como origen de rastreo o puede utilizar tablas existentes del Catálogo de datos como origen. Si el rastreador utiliza tablas de catálogos existentes, este rastrea los almacenes de datos especificados por dichas tablas de catálogos. Para obtener más información, consulte Tipo de origen del rastreador .

Rastrear sólo carpetas nuevas para orígenes de datos S3

Si está activada, sólo se rastrearán las carpetas de Amazon S3 que se hayan agregado desde la última ejecución del rastreador. Para obtener más información, consulte Rastreos progresivos en AWS Glue .

Orígenes del rastreador: almacenes de datos o tablas de catálogo

Elija entre una de las siguientes opciones:

  • Uno o varios almacenes de datos

    Un rastreador puede rastrear varios almacenes de datos de diferentes tipos (Amazon S3, JDBC, etc.).

  • Lista de tablas del Catálogo de datos

    Las tablas de catálogos especifican los almacenes de datos que se van a rastrear. El rastreador puede rastrear solo tablas de catálogos en una única ejecución; no puede combinar otros tipos de fuentes.

Solo puede configurar un almacén de datos por vez. Después de proporcionar la información de conexión e incluir rutas de acceso y patrones de exclusión, tendrá la opción de agregar otro almacén de datos.

Para obtener más información, consulte Tipo de origen del rastreador .

Parámetros adicionales de origen de rastreadores

Cada tipo de origen requiere un conjunto diferente de parámetros adicionales. La siguiente lista no es exhaustiva:

Conexión

Seleccione o agregue una conexión de AWS Glue. Para obtener más información acerca de las conexiones, consulte Definición de conexiones en AWS Glue Data Catalog.

Habilitar el muestreo de datos (solo en almacenes de datos de Amazon DynamoDB, MongoDB y Amazon DocumentDB)

Seleccione si desea rastrear solo una muestra de datos. Si no lo selecciona, se rastreará toda la tabla. Escanear todos los registros puede tardar mucho tiempo cuando la tabla no es una tabla de alto rendimiento.

Habilitar el manifiesto de escritura (solo para almacenes de datos de Delta Lake)

Seleccione si desea detectar metadatos de tablas o cambios de esquemas en el registro de transacciones de Delta Lake; regenera el archivo de manifiesto. No debe elegir esta opción si ha configurado una actualización automática de manifiesto con SET TBLPROPERTIES de Delta Lake.

Velocidad de análisis (solo en almacenes de datos de DynamoDB)

Especifique el porcentaje de las unidades de capacidad de lectura configuradas que utilizará el rastreador de AWS Glue. Unidades de capacidad de lectura es un término definido por DynamoDB y es un valor numérico que actúa como limitador de velocidad del número de lecturas que se pueden realizar en esa tabla por segundo. Introduzca un valor comprendido entre 0,1 y 1,5. Si no se especifica, el valor predeterminado es de 0,5% para las tablas aprovisionadas y 1/4 de la capacidad máxima configurada para las tablas bajo demanda. Tenga en cuenta que solo se debe utilizar el modo de capacidad aprovisionada con rastreadores de AWS Glue.

nota

Para los almacenes de datos de DynamoDB, establezca el modo de capacidad aprovisionada para procesar las lecturas y escrituras en las tablas. El rastreador de AWS Glue no debe utilizarse con el modo de capacidad bajo demanda.

Tamaño de la muestra (opcional) (solo para almacenes de datos de Amazon S3)

Establece el número de archivos de cada carpeta que se van a rastrear al rastrear archivos de ejemplo en un conjunto de datos. Cuando esta característica está activada, en lugar de rastrear todos los archivos de este conjunto de datos, el rastreador selecciona aleatoriamente algunos archivos en cada carpeta para rastrear.

El rastreador de muestreo es el más adecuado para clientes que tienen conocimientos previos sobre sus formatos de datos y saben que los esquemas de sus carpetas no cambian. Activar esta característica reducirá significativamente el tiempo de ejecución del rastreador.

Un valor válido es un entero entre 1 y 249. Si no se especifica, se rastrean todos los archivos.

Incluir ruta
Para un almacén de datos de Amazon S3

Elija si desea especificar una ruta de su cuenta o de otra cuenta y busque una ruta de acceso de Amazon S3.

Para un almacén de datos de Delta Lake:

Especifique una o más rutas de Simple Storage Service (Amazon S3) a las tablas Delta como s3://bucket/prefijo/objeto.

En un almacén de datos JDBC

Ingrese <database>/<schema>/<table> o <database>/<table>, en función del producto de base de datos. Oracle Database y MySQL no permiten utilizar un esquema en la ruta. Puede sustituir el carácter de porcentaje (%) por <esquema> o <tabla>. Por ejemplo, en una base de datos Oracle con el identificador del sistema (SID) orcl, escriba orcl/% para importar todas las tablas a las que el usuario especificado en la conexión tiene acceso.

importante

Este campo distingue entre mayúsculas y minúsculas.

Para un almacén de datos de MongoDB o Amazon DocumentDB

Ingrese database/collection.

Para obtener más información, consulte Patrones de inclusión y exclusión .

Patrones de exclusión

Estos le permiten excluir determinados archivos o tablas desde del rastreo. Para obtener más información, consulte Patrones de inclusión y exclusión .

Rol de IAM

El rastreador asume este rol. Debe tener permisos a la política AWSGlueServiceRole administrada por AWS. En el caso de los orígenes de Amazon S3 y DynamoDB, también debe tener permisos para acceder al almacén de datos. Si el rastreador lee datos de Amazon S3 cifrados por AWS Key Management Service (AWS KMS), entonces el rol debe tener permiso para descifrar la clave AWS KMS.

Para un almacén de datos de Amazon S3, los permisos adicionales asociados al rol serían similares a los siguientes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket/object*" ] } ] }

Para un almacén de datos de Amazon DynamoDB, los permisos adicionales asociados al rol serían similares a los siguientes:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:region:account-id:table/table-name*" ] } ] }

Para obtener más información, consulte Paso 2: creación de un rol de IAM para AWS Glue y Administración de permisos de acceso para los recursos de AWS Glue.

Propiedad Schedule de rastreador

Puede ejecutar un rastreador bajo demanda o definir una programación para llevar a cabo una ejecución automática del rastreador. Para obtener más información, consulte Programación de un rastreador de AWS Glue .

Base de datos de destino en el Catálogo de datos para las tablas de catálogos creadas

Para obtener más información, consulte Bases de datos de AWS Glue .

Opciones de configuración de salida

Las opciones incluyen la forma en la que el rastreador debe gestionar los cambios detectados en un esquema, los objetos eliminados en el almacén de datos y mucho más. Para obtener más información, consulte Opciones de configuración de rastreadores .

Política de rerrastreo

Al rastrear un origen de datos de Amazon S3 después de completar el primer rastreo, elija si desea rastrear el conjunto de datos completo de nuevo o rastrear sólo las carpetas que se agregaron desde la última ejecución del rastreador. Para obtener más información, consulte Rastreos progresivos en AWS Glue .

Tipo de origen del rastreador

Un rastreador puede acceder a los almacenes de datos directamente como fuente de rastreo o puede utilizar tablas de catálogos existentes como fuente. Si el rastreador utiliza tablas de catálogos existentes, este rastrea los almacenes de datos especificados por dichas tablas de catálogos.

Una razón habitual para especificar una tabla de catálogo como origen es que creó la tabla de forma manual (dado que ya conocía la estructura del almacén de datos) y quiere un rastreador para mantener la tabla actualizada, incluido el agregado de nuevas particiones. Para obtener información de otras razones, consulte Actualización de tablas del Catálogo de datos creadas de forma manual mediante rastreadores.

Cuando especifique las tablas existentes como el tipo de origen de rastreador, se aplicarán las siguientes condiciones:

  • El nombre de la base de datos es opcional.

  • Solo se permiten las tablas de catálogos que especifiquen los almacenes de datos de Amazon S3 o Amazon DynamoDB.

  • No se crean nuevas tablas de catálogos cuando el rastreador se ejecuta. Las tablas existentes se actualizan según sea necesario, lo que incluye la adición de nuevas particiones.

  • Los objetos eliminados encontrados en los almacenes de datos se ignoran; no se eliminan tablas de catálogos. En su lugar, el rastreador escribe un mensaje de registro. (SchemaChangePolicy.DeleteBehavior=LOG)

  • La opción de la configuración del rastreador para crear un único esquema para cada ruta de Amazon S3 está activada de forma predeterminada y no se puede desactivar. (TableGroupingPolicy=CombineCompatibleSchemas) Para obtener más información, consulte Cómo crear un único esquema para cada ruta de inclusión de Amazon S3.

  • No se pueden combinar las tablas de catálogos como origen con cualquier otro tipo de origen (por ejemplo, Amazon S3 o Amazon DynamoDB).

Patrones de inclusión y exclusión

Al evaluar lo que se va a incluir o excluir en un rastreo, un rastreador comienza por evaluar la ruta de inclusión necesaria. Para Amazon S3, MongoDB, Amazon DocumentDB (compatible con MongoDB) y almacenes de datos relacionales, debe especificar una ruta de inclusión.

Para los almacenes de datos de Amazon S3, la sintaxis de ruta de inclusión es bucket-name/folder-name/file-name.ext. Para rastrear todos los objetos de un bucket, debe especificar solo el nombre de bucket en la ruta de inclusión. EL patrón de exclusión es relativo a la ruta de inclusión

Para MongoDB y Amazon DocumentDB (compatible con MongoDB), la sintaxis es database/collection.

Para los almacenes de datos de JDBC, la sintaxis es database-name/schema-name/table-name o database-name/table-name. La sintaxis depende de si el motor de base de datos admite esquemas en una base de datos. Por ejemplo, en el caso de motores de base de datos como MySQL u Oracle, no especifique schema-name en la ruta de inclusión. Puede sustituir el signo de porcentaje (%) de un esquema o una tabla en la ruta de inclusión para representar todos los esquemas o todas las tablas de una base de datos. No se puede sustituir el signo de porcentaje (%) de base de datos en la ruta de inclusión. Una ruta de exclusión es relativa a la ruta de inclusión. Por ejemplo, para excluir una tabla en su almacén de datos de JDBC, escriba el nombre de la tabla en la ruta de exclusión.

Un rastreador se conecta a un almacén de datos de JDBC mediante una conexión de AWS Glue que contiene una cadena de conexión de URI de JDBC. El rastreador solo tiene acceso a los objetos en el motor de base de datos mediante el nombre de usuario y la contraseña de JDBC de la conexión de AWS Glue. El rastreador solo puede crear tablas a las que puede obtener acceso a través de la conexión de JDBC. Una vez que el rastreador obtiene acceso al motor de base de datos con el URI de JDBC, la ruta de inclusión se utiliza para determinar qué tablas de datos del motor de base de datos se crean en el Catálogo de datos. Por ejemplo, con MySQL, si especifica una ruta de inclusión de MyDatabase/%, todas las tablas en MyDatabase se crean en el Catálogo de datos. Al obtener acceso a Amazon Redshift, si especifica una ruta de inclusión de MyDatabase/%, todas las tablas en todos los esquemas de la base de datos MyDatabase se crean en el Catálogo de datos. Si especifica una ruta de inclusión de todas MyDatabase/MySchema/%, se crean todas las tablas de la base de datos MyDatabase y el esquema MySchema.

Después de especificar una ruta de inclusión, puede excluir objetos del rastreo que, de otro modo, su ruta de inclusión incluiría especificando uno o varios patrones de exclusión glob tipo Unix. Estos patrones se aplican a la ruta de inclusión para determinar qué objetos están excluidos. Estos patrones también se almacenan como una propiedad de las tablas creadas por el rastreador. AWS Glue Las extensiones PySpark, como create_dynamic_frame.from_catalog, leen las propiedades de la tabla y excluyen los objetos definidos por el patrón de exclusión.

AWS Glue admite los siguientes tipos de patrones glob en el patrón de exclusión.

Patrón de exclusión Descripción
*.csv Coincide con una ruta de Amazon S3 que representa un nombre de objeto de la carpeta actual que termina en .csv
*.* Coincide con todos los nombres de objeto que contienen un punto
*.{csv,avro} Coincide con los nombres de objeto que terminan con .csv o .avro
foo.? Coincide con los nombres de objeto que comienzan por foo. a los que sigue una extensión de un solo carácter
myfolder/* Coincide con los objetos en un nivel de subcarpeta desde myfolder, como /myfolder/mysource
myfolder/*/* Coincide con los objetos en dos niveles de subcarpetas desde myfolder, como /myfolder/mysource/data
myfolder/** Coincide con los objetos en todas las subcarpetas de myfolder, como /myfolder/mysource/mydata y /myfolder/mysource/data
myfolder** Coincide con la subcarpeta myfolder así como con los archivos debajo de myfolder, como /myfolder y /myfolder/mydata.txt
Market* Coincide con las tablas en una base de datos de JDBC con nombres que comienzan por Market, como Market_us y Market_fr

AWS Glue interpreta los patrones de exclusión glob de la siguiente manera:

  • El carácter de barra inclinada (/) es el delimitador para separar claves de Amazon S3 en una jerarquía de carpetas.

  • El carácter asterisco (*) coincide con cero o varios caracteres de un componente de nombre sin superar límites de carpeta.

  • Dos asteriscos (**) coinciden con cero o varios caracteres que superan límites de carpeta o esquema.

  • El signo de interrogación (?) coincide exactamente con un carácter de un componente de nombre.

  • El carácter de barra inversa (\) se usa para escapar caracteres que de otro modo se pueden interpretar como caracteres especiales. La expresión \\ coincide con una sola barra inversa y \{ coincide con una llave de apertura.

  • Los corchetes [ ] crean una expresión de corchetes que coincide con un solo carácter de un componente de nombre fuera de un conjunto de caracteres. Por ejemplo, [abc] coincide con a, b o c. El guion (-) se puede usar para especificar un rango, por lo que [a-z] especifica un rango que coincide de la a a la z (inclusive). Estas formas se pueden mezclar, por lo que [abce-g] coincide con a, b, c, e, f o g. Si el carácter después del corchete ([) es un signo de exclamación (!), la expresión de corchetes se niega. Por ejemplo, [!a-c] coincide con cualquier carácter salvo con a, b o c.

    Dentro de una expresión de corchete, los caracteres *, ? y \ coinciden con ellos mismos. El guion (-) coincide consigo mismo si es el primer carácter dentro de los corchetes o si es el primer carácter después de ! durante la negación.

  • Las llaves ({ }) incluyen un grupo de subpatrones, donde el grupo coincide si cualquier subpatrón del grupo coincide. Una coma (,) se usa para separar los subpatrones. Los grupos no pueden estar anidados.

  • Los puntos al inicio de los nombres de archivo se tratan como caracteres normales en las operaciones de coincidencia. Por ejemplo, el patrón de exclusión * coincide con el nombre de archivo .hidden.

ejemplo Amazon S3 excluye patrones

Cada patrón de exclusión se evalúa con respecto a la ruta de inclusión. Por ejemplo, suponga que tiene la estructura de directorios de Amazon S3 siguiente:

/mybucket/myfolder/ departments/ finance.json market-us.json market-emea.json market-ap.json employees/ hr.json john.csv jane.csv juan.txt

Dada la ruta de inclusión s3://mybucket/myfolder/, estos son algunos resultados de ejemplo para los patrones de exclusión:

Patrón de exclusión Resultados
departments/** Excluye todas las carpetas y archivos situados debajo de departments e incluye la carpeta employees y sus archivos
departments/market* Excluye market-us.json, market-emea.json y market-ap.json
**.csv Excluye todos los objetos situados debajo de myfolder con un nombre terminado con .csv
employees/*.csv Excluye todos los archivos .csv de la carpeta employees

ejemplo Excluir un subconjunto de particiones de Amazon S3

Supongamos que sus datos se particionan por día de modo que cada uno de los días de un año esté en una partición de Amazon S3 independiente. En enero de 2015, hay 31 particiones. Ahora, para rastrear datos durante solo la primera semana de enero, debe excluir todas las particiones excepto del día 1 al 7:

2015/01/{[!0],0[8-9]}**, 2015/0[2-9]/**, 2015/1[0-2]/**

Veamos las partes de este patrón de glob. La primera parte, 2015/01/{[!0],0[8-9]}**, excluye todos los días que no comienzan por "0", además de los días 08 y 09 del mes 01 del año 2015. Tenga en cuenta que "**" se usa como sufijo del patrón de número de día y supera límites de carpeta hasta alcanzar carpetas de nivel más bajo. Si "*" se usa, los niveles de carpeta más bajos no se excluyen.

La segunda parte, 2015/0[2-9]/**, excluye días de los meses comprendidos entre el 02 y el 09 del año 2015.

La tercera parte, 2015/1[0-2]/**, excluye días de los meses 10, 11 y 12 del año 2015.

ejemplo Patrones de exclusión de JDBC

Supongamos que rastrea una base de datos de JDBC con la siguiente estructura de esquema:

MyDatabase/MySchema/ HR_us HR_fr Employees_Table Finance Market_US_Table Market_EMEA_Table Market_AP_Table

Dada la ruta de inclusión MyDatabase/MySchema/%, estos son algunos resultados de ejemplo para los patrones de exclusión:

Patrón de exclusión Resultados
HR* Excluye las tablas con nombres que comienzan por HR
Market_* Excluye las tablas con nombres que comienzan por Market_
**_Table Excluye todas las tablas con nombres que finalizan con _Table