Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exporter les métadonnées vers S3 Tables (aperçu)
Note
L'exportation des métadonnées du catalogue est disponible en tant que fonctionnalité de prévisualisation. Cette fonctionnalité est sujette à modification avant sa disponibilité générale.
Présentation de
Vous pouvez exporter vos AWS Glue Data Catalog métadonnées dans des tables du système de catalogue géré stockées dans Amazon S3 Tables. Lorsque vous activez l'exportation de tables S3, vos métadonnées techniques et commerciales sont stockées dans des tables Apache Iceberg en lecture seule dans le compartiment de aws-catalog tables AWS géré, ce qui les rend interrogeables à l'aide de SQL avec des services d' AWS
analyse tels qu'Amazon Redshift et Amazon EMR.
Dans le compartiment de aws-catalog tables, les tables système se trouvent dans les espaces de noms suivants :
glue— contienttablesettable_columns.catalog_metadata— contientglossariesglossary_terms,associated_glossary_termsattachments, etitem_attachments.
Les tables système suivantes sont actuellement prises en charge :
| Table système | Contains |
|---|---|
|
Des métadonnées techniques et commerciales pour chaque table du catalogue de données, telles que son nom, sa base de données, sa description, son emplacement de stockage et son format. |
|
Les colonnes de chaque table du catalogue, y compris le nom de chaque colonne, son type de données, sa description et s'il s'agit d'une clé de partition. |
|
Les glossaires professionnels de votre catalogue, y compris le nom, la description et le statut de chaque glossaire. |
|
Les termes définis dans vos glossaires, y compris le nom, la description, le glossaire parent et le statut de chaque terme. |
|
Les associations entre les termes du glossaire et les actifs, y compris l'identifiant de l'actif et l'identifiant des termes du glossaire. |
|
Custom-form les métadonnées jointes au niveau de la ressource, y compris le type de formulaire et le contenu de la pièce jointe. |
|
Custom-form les métadonnées associées aux éléments d'un actif, telles que des colonnes individuelles, y compris le nom du formulaire itérable, le nom de l'élément, le type de formulaire et le contenu de la pièce jointe. |
Pour le schéma complet au niveau des colonnes de chaque table, consultez. Référence des tables du système de catalogue
Comment fonctionne l'exportation des métadonnées du catalogue
Une fois que vous avez activé l'exportation, le catalogue de données effectue un remplissage unique des métadonnées de votre catalogue existant, puis tient les tables système à jour au fur et à mesure que vous apportez des modifications. Les métadonnées récemment écrites ou mises à jour sont généralement visibles dans les tables système en 5 minutes environ.
Les tables système se trouvent dans les catalog_metadata espaces de noms glue et du compartiment de aws-catalog tables. Une table système donnée apparaît la première fois que des métadonnées de ce type apparaissent dans votre catalogue. Par exemple, si vous activez l'exportation et que votre catalogue ne contient que des tables et des bases de données, seules les tables système associées aux tables s'affichent. Les tables du système de glossaire apparaissent une fois que vous avez créé votre premier glossaire.
Activez l'exportation des métadonnées du catalogue à l'aide du AWS CLI
L'exportation des métadonnées du catalogue est un paramètre au niveau du compte. Vous pouvez l'activer ou le désactiver à l'aide du AWS CLI.
Conditions préalables
L'identité IAM que vous utilisez doit être autorisée à appeler les opérations de configuration d'exportation glue:PutDataCatalogExportConfiguration etglue:GetDataCatalogExportConfiguration, ainsi ques3tables:CreateTable. Pour plus d'informations sur les autorisations relatives aux tables S3, consultez la section Création de tables dans des compartiments de tables S3 dans le guide de l'utilisateur d'Amazon Simple Storage Service.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:PutDataCatalogExportConfiguration", "glue:GetDataCatalogExportConfiguration" ], "Resource": "*" } ] }
Toutes les données des tables S3, y compris les métadonnées du catalogue de données, sont cryptées par défaut. SSE-S3 Vous pouvez choisir de chiffrer l'exportation de votre catalogue à l'aide de AWS KMS clés (SSE-KMS). Si vous choisissez de chiffrer à l'aide de AWS KMS clés, vous devez ajouter des autorisations supplémentaires en suivant les étapes suivantes :
Accordez au principal du service d'exportation du catalogue de données et au service de maintenance S3 Tables les autorisations principales d'utiliser votre clé KMS (politique de clé).
Accordez au principal IAM qui exécute les autorisations d'exportation pour utiliser la clé KMS (politique d'identité).
Octroi au principal du service d'exportation du catalogue de données et aux autorisations principales du service de maintenance des tables S3 sur votre clé KMS
AWS Glue Pour autoriser l'exportation des métadonnées chiffrées du catalogue et permettre la maintenance automatique des tables, comme le compactage et la suppression des fichiers non référencés sur les tables exportées, vous devez autoriser les principaux de service suivants à accéder à votre clé KMS :
systemtables.catalog.amazonaws.com— exporte les métadonnées chiffrées du catalogue vers S3 Tables.maintenance.s3tables.amazonaws.com— effectue une maintenance automatique des tables sur les tables exportées.
AWS Glue écrit dans le compartiment de tables AWS géré nomméaws-catalog. La clé KMS utilisée pour chiffrer l'exportation des tables S3 n'a pas besoin d'être la même que celle utilisée pour chiffrer le catalogue de données au repos. AWS Glue prend uniquement en charge les clés KMS symétriques. Pour accorder l'accès à ces principaux de service, vous pouvez utiliser l'exemple de politique clé suivant. Dans cette politique, le principal de maintenance.s3tables.amazonaws.com service est autorisé à utiliser une clé KMS spécifique pour chiffrer et déchiffrer les tables du compartiment de tables. aws-catalog Pour plus d'informations sur le principal du service de maintenance S3 Tables, consultez la section Exigences d'autorisation pour le SSE-KMS chiffrement des tables S3 dans le guide de l'utilisateur d'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/*" } } } ] }
Autorisations IAM requises pour le principal pour l'exportation
Accordez les autorisations suivantes aux principaux responsables qui exécutent les exportations. La politique suivante accorde à l'IAM l'accès principal pour déchiffrer un code spécifique AWS Glue Data Catalog, en fonction du contexte de glue_catalog_id chiffrement (la valeur est la vôtre). 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" } } } ] }
Pour activer l'exportation des métadonnées du catalogue
-
Exécutez la commande suivante pour activer l'exportation :
aws glue put-data-catalog-export-configuration \ --export-setting ENABLED -
Confirmez la configuration en exécutant la commande suivante :
aws glue get-data-catalog-export-configurationExemple de réponse :
{ "ExportSetting": "ENABLED", "Status": "ENABLED", "S3TableBucketArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-catalog" }Le
Statuschamp passe de àENABLINGauENABLEDfur et à mesure que le remblai initial progresse.
Pour désactiver l'exportation des métadonnées du catalogue
Exécutez la commande suivante :
aws glue put-data-catalog-export-configuration \ --export-setting DISABLED
Référence des tables du système de catalogue
Toutes les tables système se trouvent dans les catalog_metadata espaces de noms glue ou du compartiment de aws-catalog tables. Chaque tableau comprend les colonnes système suivantes :
| Colonne | Type | Description |
|---|---|---|
|
timestamp |
Heure à laquelle l'enregistrement a été ingéré dans la table système (UTC). |
|
chaîne |
Identifiant de version du schéma pour la table. |
tables
Contient une ligne par table de catalogue.
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant unique de la table. |
| chaîne | Identifiant du catalogue. |
| chaîne | Nom du catalogue. |
| timestamp | Horodatage de la dernière mise à jour. |
| timestamp | Horodatage de création. |
| chaîne | Identifiant du principal qui a créé la table. |
| chaîne | Type du principal créateur. |
| chaîne | Description du tableau. |
| chaîne | Nom de la table. |
| chaîne | Espace de noms de la table. |
| chaîne | AWS Région. |
| carte<string, string> | Balises de ressources. |
| chaîne | Type d'actif. |
| chaîne | Identifiant du principal qui a mis à jour la table pour la dernière fois. |
| chaîne | Type du principal de mise à jour. |
| chaîne | Base de données contenant la table. |
| chaîne | Classe de format d'entrée. |
| chaîne | AWS Lake Formation état de l'enregistrement. |
| chaîne | Classe de format de sortie. |
| chaîne | Propriétaire de la table. |
| int | Période de conservation. |
| chaîne | Serialization/deserialization bibliothèque. |
| chaîne | Format de données. |
| chaîne | URI de localisation des données. |
| chaîne | Format de tableau (par exemple, Iceberg, Hudi). |
| chaîne | Type de tableau. |
table_colonnes
Contient une ligne par colonne dans une table de catalogue.
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant composite au format |
| chaîne | Identifiant de la table parent. |
| chaîne | Nom de la colonne. |
| chaîne | Description de la colonne. |
| chaîne | Type de données de colonne. |
| boolean | Indique si la colonne est une clé de partition. |
attachments
Contient des pièces jointes personnalisées au niveau de l'actif (une ligne par pièce jointe sur un actif).
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant de l'actif parent. |
| chaîne | Nom de la pièce jointe. |
| chaîne | Type de contenu du formulaire enregistré. |
| chaîne | Contenu de la pièce jointe sous forme JSON-encoded de chaîne. |
pièces_pièces jointes
Contient des pièces jointes sur des éléments d'un formulaire itérable, tels que des colonnes individuelles.
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant de l'actif parent. |
| chaîne | Nom du formulaire itérable (par exemple, colonnes). |
| chaîne | Nom de l'élément (par exemple, le nom de la colonne). |
| chaîne | Nom de la pièce jointe. |
| chaîne | Type de contenu du formulaire enregistré. |
| chaîne | Contenu de la pièce jointe sous forme JSON-encoded de chaîne. |
glossaires
Contient une ligne par glossaire.
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant unique du glossaire. |
| chaîne | Description du glossaire. |
| chaîne | Nom du glossaire. |
| chaîne | État ( |
glossaire_termes
Contient une ligne par terme du glossaire.
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant de terme unique. |
| chaîne | Identifiant du glossaire parent. |
| chaîne | Description détaillée du terme. |
| chaîne | Nom du terme. |
| chaîne | Brève description du terme. |
| chaîne | État ( |
termes_lexiques_associés
Contient une ligne par association entre un terme du glossaire et un actif.
| Colonne | Type | Description |
|---|---|---|
| chaîne | Identifiant de la ressource à laquelle le terme du glossaire est associé. |
| chaîne | Identifiant du terme du glossaire associé à l'actif. Se joint à la |
Interroger les tables du système du catalogue
Avant de pouvoir interroger les métadonnées du catalogue exportées vers des tables S3 à l'aide de services d' AWS analyse tels qu'Amazon EMR, vous devez activer l'intégration des analyses sur le compartiment de aws-catalog tables AWS géré et configurer AWS Lake Formation
les autorisations.
Conditions préalables
L'exportation des métadonnées du catalogue est activée et le statut est
ENABLED.Accès à ou à d'autres services d'analyse.
J'ai attendu 5 minutes après avoir activé l'exportation pour que les données soient disponibles.
Présentation de l’intégration
Pour obtenir des informations détaillées sur l'intégration des tables S3 aux services AWS d'analyse, notamment les prérequis, la configuration des rôles IAM et les procédures étape par étape, consultez la section Intégration des tables Amazon S3 aux services AWS d'analyse dans le guide de l'utilisateur d'Amazon Simple Storage Service.
Après avoir activé l'exportation des tables S3 et configuré l'intégration des analyses, vous pouvez interroger les métadonnées de votre catalogue de données à l'aide de services d' AWS analyse tels qu'Amazon Redshift et Amazon EMR. Cela vous permet d'effectuer des audits et des analyses de métadonnées à l'aide du langage SQL standard.
Exemples de requêtes
Répertorier toutes les tables du catalogue avec leur base de données et leur format
SELECT id, name, database_name, table_format FROM aws_catalog.glue.tables;
Rechercher des colonnes contenant des descriptions pour un tableau spécifique
SELECT column_name, type, description FROM aws_catalog.glue.table_columns WHERE asset_id = 'table-id';
Joindre les termes du glossaire à leur glossaire parent
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';
Rechercher des tableaux associés à un terme spécifique du glossaire
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';
Extraire un champ d'une pièce jointe à un formulaire personnalisé
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';