Exportación de metadatos a Tablas de S3 (versión preliminar)
nota
La exportación de metadatos del catálogo está disponible como característica en versión preliminar. Esta característica está sujeta a cambios antes de su disponibilidad general.
Descripción general
Puede exportar sus metadatos de AWS Glue Data Catalog a tablas del sistema de catálogo administrado almacenadas en Tablas de Amazon S3. Cuando activa la exportación de Tablas de S3, los metadatos técnicos y empresariales se almacenan en tablas de Apache Iceberg de solo lectura en el bucket de tablas aws-catalog administrado de AWS, lo que permite consultarlas mediante SQL con los servicios de análisis de AWS como Amazon Redshift y Amazon EMR.
Dentro del bucket de tablas aws-catalog, las tablas del sistema se encuentran en los siguientes espacios de nombres:
glue: contienetablesytable_columns.catalog_metadata: contieneglossaries,glossary_terms,associated_glossary_terms,attachmentsyitem_attachments.
Actualmente, se admiten las siguientes tablas del sistema:
| Tabla del sistema | Contiene |
|---|---|
|
Metadatos técnicos y empresariales de cada tabla del Catálogo de datos, como su nombre, base de datos, descripción, ubicación de almacenamiento y formato. |
|
Las columnas de cada tabla del catálogo, incluidos el nombre de cada columna, el tipo de datos, la descripción y si se trata de una clave de partición. |
|
Los glosarios empresariales de su catálogo, incluidos el nombre, la descripción y el estado de cada glosario. |
|
Los términos definidos en sus glosarios, incluidos el nombre, las descripciones, el glosario principal y el estado de cada término. |
|
Las asociaciones entre los términos del glosario y los activos, incluidos el identificador de activo y el identificador de término del glosario. |
|
Los metadatos de formulario personalizado se adjuntan a nivel de activo, incluidos el tipo de formulario y el contenido del archivo adjunto. |
|
Metadatos de formulario personalizado adjuntos a los elementos de un activo, como columnas individuales, incluidos el nombre del formulario iterable, el nombre del elemento, el tipo de formulario y el contenido del adjunto. |
Para ver el esquema completo de las columnas de cada tabla, consulte Referencia de las tablas del sistema del catálogo.
Funcionamiento de la exportación de metadatos del catálogo
Una vez activada la exportación, el Catálogo de datos realiza un relleno único de los metadatos del catálogo existente y, a continuación, mantiene las tablas del sistema actualizadas a medida que se realizan cambios. Los metadatos recién escritos o actualizados suelen estar visibles en las tablas del sistema en unos 5 minutos.
Las tablas del sistema se encuentran en los espacios de nombres glue y catalog_metadata del bucket de tablas aws-catalog. Una tabla del sistema determinada aparece la primera vez que hay metadatos de ese tipo en el catálogo. Por ejemplo, si activa la exportación y el catálogo solo contiene tablas y bases de datos, solo verá las tablas del sistema relacionadas con las tablas. Las tablas del sistema de glosarios aparecen después de crear el primer glosario.
Activación de la exportación de metadatos del catálogo mediante la AWS CLI
La exportación de metadatos del catálogo es una configuración específica de la cuenta. Puede activarla o desactivarla con la AWS CLI.
Requisitos previos
La identidad de IAM que utilice debe tener permiso para llamar a las operaciones de configuración de exportación glue:PutDataCatalogExportConfiguration y glue:GetDataCatalogExportConfiguration, además de s3tables:CreateTable. Para obtener más información sobre los permisos de Tablas de S3, consulte Creación de tablas en buckets de tablas de S3 en la Guía del usuario de Amazon Simple Storage Service.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:PutDataCatalogExportConfiguration", "glue:GetDataCatalogExportConfiguration" ], "Resource": "*" } ] }
Todos los datos de Tablas de S3, incluidos los metadatos del Catálogo de datos, se cifran con el cifrado SSE-S3 de forma predeterminada. Puede optar por cifrar la exportación del catálogo con claves de AWS KMS (SSE-KMS). Si elige cifrar la exportación con claves de AWS KMS, debe seguir estos pasos para agregar permisos adicionales:
Conceda a la entidad principal del servicio de exportación del Catálogo de datos y a la entidad principal del servicio de mantenimiento de Tablas de S3 permisos para usar su clave de KMS (política de claves).
Conceda a la entidad principal de IAM que ejecuta la exportación los permisos para usar la clave de KMS (política de identidad).
Concesión de permisos para usar su clave de KMS (política de claves) a la entidad principal del servicio de exportación del Catálogo de datos y a la entidad principal del servicio de mantenimiento de Tablas de S3
Para permitir que AWS Glue exporte metadatos de catálogo cifrados y para permitir el mantenimiento automático de las tablas, como la compactación y la eliminación de archivos no referenciados en las tablas exportadas, debe conceder acceso a la clave de KMS a las siguientes entidades principales del servicio:
systemtables.catalog.amazonaws.com: exporta los metadatos del catálogo cifrados a Tablas de S3.maintenance.s3tables.amazonaws.com: realiza el mantenimiento automático de las tablas exportadas.
AWS Glue escribe en el bucket de tablas administrado de AWS denominado aws-catalog. No es necesario que la clave de KMS utilizada para cifrar la exportación de Tablas de S3 sea la misma que se utilizó para cifrar el Catálogo de datos en reposo. AWS Glue solo admite claves de KMS simétricas. Para conceder acceso a estas entidades principales de servicio, puede utilizar la siguiente política de claves de ejemplo. En esta política, a la entidad principal del servicio maintenance.s3tables.amazonaws.com se le concede permiso para usar una clave de KMS específica para cifrar y descifrar las tablas del bucket de tablas aws-catalog. Para obtener más información sobre la entidad principal de servicio de mantenimiento de Tablas de S3, consulte Requisitos de permiso para el cifrado SSE-KMS de Tablas de S3 en la Guía del usuario de Amazon Simple Storage Service.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSystemTablesDescribeKey", "Effect": "Allow", "Principal": { "Service": "systemtables.catalog.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }, { "Sid": "AllowSystemTablesEncryptDecrypt", "Effect": "Allow", "Principal": { "Service": "systemtables.catalog.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3tables:us-east-1:123456789012:bucket/aws-catalog/table/*", "kms:ViaService": "s3.us-east-1.amazonaws.com" } } }, { "Sid": "AllowS3TablesMaintenanceEncryptDecrypt", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3tables:us-east-1:123456789012:bucket/aws-catalog/*" } } } ] }
Permisos de IAM necesarios para que la entidad principal pueda exportar
Conceda a las entidades principales que ejecutan las exportaciones los siguientes permisos. La siguiente política concede a la entidad principal de IAM el acceso para descifrar un AWS Glue Data Catalog específico, en función del contexto de cifrado de glue_catalog_id (el valor es su catalogId).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribeKey", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }, { "Sid": "AllowExportOfGlueDataCatalogByCatalogId", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012", "kms:EncryptionContext:glue_catalog_id": "123456789012" } } } ] }
Activación de la exportación de metadatos del catálogo
-
Ejecute el siguiente comando para activar la exportación:
aws glue put-data-catalog-export-configuration \ --export-setting ENABLED -
Confirme la configuración ejecutando el siguiente comando:
aws glue get-data-catalog-export-configurationRespuesta de ejemplo:
{ "ExportSetting": "ENABLED", "Status": "ENABLED", "S3TableBucketArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-catalog" }El campo
Statuspasa deENABLINGaENABLEDa medida que avanza el relleno inicial.
Desactivación de la exportación de metadatos del catálogo
Use el siguiente comando:
aws glue put-data-catalog-export-configuration \ --export-setting DISABLED
Referencia de las tablas del sistema del catálogo
Todas las tablas del sistema se encuentran en los espacios de nombres glue o catalog_metadata del bucket de tablas aws-catalog. Cada tabla incluye las siguientes columnas del sistema:
| Columna | Tipo | Descripción |
|---|---|---|
|
marca de tiempo |
Hora a la que se ingirió el registro en la tabla del sistema (UTC). |
|
cadena |
Identificador de versión del esquema de la tabla. |
tablas
Contiene una fila por tabla de catálogo.
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador único de la tabla. |
| cadena | Identificador del catálogo. |
| cadena | Nombre del catálogo. |
| marca de tiempo | Marca temporal de la última actualización. |
| marca de tiempo | Marca temporal de la creación. |
| cadena | Identificador de la entidad principal que creó la tabla. |
| cadena | Tipo de la entidad principal creadora. |
| cadena | Descripción de la tabla. |
| cadena | Nombre de la tabla. |
| cadena | Espacio de nombres de la tabla. |
| cadena | Región de AWS. |
| mapa<cadena, cadena> | Etiquetas de recursos. |
| cadena | Tipo de activo. |
| cadena | Identificador de la entidad principal que actualizó la tabla por última vez. |
| cadena | Tipo de la entidad principal que hizo la actualización. |
| cadena | Base de datos que contiene la tabla. |
| cadena | Clase de formato de entrada. |
| cadena | Estado de registro en AWS Lake Formation. |
| cadena | Clase de formato de salida. |
| cadena | Propietario de la tabla. |
| int | Periodo de retención. |
| cadena | Biblioteca de serialización/deserialización. |
| cadena | Formato de los datos. |
| cadena | URI de la ubicación de los datos. |
| cadena | Formato de tabla (por ejemplo, Iceberg, Hudi). |
| cadena | Tipo de tabla. |
table_columns
Contiene una fila por columna en una tabla de catálogo.
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador compuesto en el formato |
| cadena | Identificador de la tabla principal. |
| cadena | Nombre de la columna. |
| cadena | Descripción de la columna. |
| cadena | Tipo de datos de la columna. |
| booleano | Si la columna es una clave de partición. |
attachments
Contiene archivos adjuntos en formato personalizado a nivel de activo (una fila por archivo adjunto de un activo).
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador del activo principal. |
| cadena | Nombre del archivo adjunto. |
| cadena | Tipo de formulario registrado del contenido. |
| cadena | Contenido del archivo adjunto como cadena codificada en JSON. |
item_attachments
Contiene archivos adjuntos en elementos de un formulario iterable, como columnas individuales.
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador del activo principal. |
| cadena | Nombre del formulario iterable (por ejemplo, columnas). |
| cadena | Nombre del elemento (por ejemplo, el nombre de la columna). |
| cadena | Nombre del archivo adjunto. |
| cadena | Tipo de formulario registrado del contenido. |
| cadena | Contenido del archivo adjunto como cadena codificada en JSON. |
glossaries
Contiene una fila por glosario.
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador único del glosario. |
| cadena | Descripción del glosario. |
| cadena | Nombre del glosario. |
| cadena | Estado ( |
glossary_terms
Contiene una fila por término del glosario.
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador único del término. |
| cadena | Identificador del glosario principal. |
| cadena | Descripción detallada del término. |
| cadena | Nombre del término. |
| cadena | Descripción breve del término. |
| cadena | Estado ( |
terminos_del_glosario_asociado
Contiene una fila por asociación entre un término del glosario y un activo.
| Columna | Tipo | Descripción |
|---|---|---|
| cadena | Identificador del activo al que está asociado el término del glosario. |
| cadena | Identificador del término del glosario que está asociado al activo. Se une a la tabla |
Consulta de tablas del sistema de catálogo
Antes de poder consultar los metadatos del catálogo exportados a Tablas de S3 Tables mediante los servicios de análisis de AWS como Amazon EMR, debe activar la integración de análisis en el bucket de tablas administrado de AWS aws-catalog y configurar los permisos de AWS Lake Formation.
Requisitos previos
La exportación de metadatos del catálogo está activada y el estado es
ENABLED.Acceso a otros servicios de análisis.
Esperó 5 minutos después de activar la exportación para que los datos estuvieran disponibles.
Información general de la integración
Para obtener información detallada sobre la integración de Tablas de S3 Tables con los servicios de análisis de AWS, incluidos los requisitos previos, la configuración de roles de IAM y los procedimientos paso a paso, consulte Integración de Tablas de Amazon S3 con servicios de análisis de AWS en la Guía del usuario de Amazon Simple Storage Service.
Tras activar la exportación de Tablas de S3 y configurar la integración de análisis, puede consultar los metadatos del Catálogo de datos mediante servicios de análisis de AWS como Amazon Redshift y Amazon EMR. Esto le permite realizar auditorías y análisis de metadatos mediante SQL estándar.
Consultas de ejemplo
Enumeración de todas las tablas del catálogo con su base de datos y formato
SELECT id, name, database_name, table_format FROM aws_catalog.glue.tables;
Búsqueda de columnas con descripciones para una tabla específica
SELECT column_name, type, description FROM aws_catalog.glue.table_columns WHERE asset_id = 'table-id';
Unión de los términos del glosario a su glosario principal
SELECT g.name AS glossary_name, t.name AS term_name, t.short_description FROM aws_catalog.catalog_metadata.glossary_terms t JOIN aws_catalog.catalog_metadata.glossaries g ON t.glossary_id = g.id WHERE g.status = 'ENABLED';
Búsqueda de tablas asociadas a un término específico del glosario
SELECT t.name, t.database_name, gt.name AS term_name FROM aws_catalog.glue.tables t JOIN aws_catalog.catalog_metadata.associated_glossary_terms agt ON agt.asset_id = t.id JOIN aws_catalog.catalog_metadata.glossary_terms gt ON gt.id = agt.glossary_term_id WHERE gt.name = 'term-name';
Extracción de un campo de un archivo adjunto de un formulario personalizado
SELECT asset_id, attachment_name, json_extract_scalar(content_json, '$.owner') AS data_owner FROM aws_catalog.catalog_metadata.attachments WHERE form_type_id = 'your-form-type-id';