Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esporta i metadati nelle tabelle S3 (anteprima)
Nota
L'esportazione dei metadati del catalogo è disponibile come funzionalità di anteprima. Questa funzionalità è soggetta a modifiche prima della disponibilità generale.
Panoramica di
Puoi esportare i AWS Glue Data Catalog metadati in tabelle del sistema di catalogo gestito archiviate in Amazon S3 Tables. Quando abiliti l'esportazione delle tabelle S3, i metadati tecnici e aziendali vengono archiviati in tabelle Apache Iceberg di sola lettura nel bucket di aws-catalog tabelle AWS gestite, rendendoli interrogabili tramite SQL con servizi di analisi come Amazon Redshift e Amazon EMR. AWS
All'interno del table bucket, le tabelle di sistema si trovano nei seguenti namespace: aws-catalog
glue— contiene e.tablestable_columnscatalog_metadata— contieneglossaries,glossary_termsassociated_glossary_terms,attachments, eitem_attachments.
Le seguenti tabelle di sistema sono attualmente supportate:
| Tabelle di sistema | Contiene |
|---|---|
|
Metadati tecnici e aziendali per ogni tabella del catalogo dati, ad esempio nome, database, descrizione, posizione di archiviazione e formato. |
|
Le colonne di ogni tabella del catalogo, inclusi il nome, il tipo di dati, la descrizione e se si tratta di una chiave di partizione. |
|
I glossari aziendali presenti nel catalogo, inclusi il nome, la descrizione e lo stato di ciascun glossario. |
|
I termini definiti nei tuoi glossari, inclusi il nome, le descrizioni, il glossario principale e lo stato di ciascun termine. |
|
Le associazioni tra termini e risorse del glossario, inclusi l'identificatore della risorsa e l'identificatore del termine del glossario. |
|
Custom-form metadati allegati a livello di risorsa, inclusi il tipo di modulo e il contenuto dell'allegato. |
|
Custom-form metadati allegati agli elementi di una risorsa, ad esempio singole colonne, tra cui il nome del modulo iterabile, il nome dell'elemento, il tipo di modulo e il contenuto degli allegati. |
Per lo schema completo a livello di colonna di ogni tabella, vedi. Riferimento alle tabelle del sistema di catalogo
Come funziona l'esportazione dei metadati del catalogo
Dopo aver abilitato l'esportazione, il Data Catalog esegue un backfill una tantum dei metadati del catalogo esistente e quindi mantiene aggiornate le tabelle di sistema man mano che apporti modifiche. I metadati appena scritti o aggiornati in genere diventano visibili nelle tabelle di sistema entro circa 5 minuti.
Le tabelle di sistema si trovano negli catalog_metadata spazi dei nomi glue e all'interno del bucket delle tabelle. aws-catalog Una determinata tabella di sistema viene visualizzata la prima volta che metadati di quel tipo esistono nel catalogo. Ad esempio, se si abilita l'esportazione e il catalogo contiene solo tabelle e database, vengono visualizzate solo le tabelle di sistema relative alle tabelle. Le tabelle del sistema di glossario vengono visualizzate dopo aver creato il primo glossario.
Abilita l'esportazione dei metadati del catalogo utilizzando AWS CLI
L'esportazione dei metadati del catalogo è un'impostazione a livello di account. Puoi abilitarla o disabilitarla con. AWS CLI
Prerequisiti
L'identità IAM utilizzata deve disporre dell'autorizzazione per chiamare le operazioni di configurazione di esportazione glue:PutDataCatalogExportConfiguration eglue:GetDataCatalogExportConfiguration, inoltres3tables:CreateTable. Per ulteriori informazioni sulle autorizzazioni di S3 Tables, consulta Creating tables in S3 table buckets nella Amazon Simple Storage Service User Guide.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:PutDataCatalogExportConfiguration", "glue:GetDataCatalogExportConfiguration" ], "Resource": "*" } ] }
Tutti i dati in S3 Tables, inclusi i metadati del Data Catalog, sono crittografati con crittografia predefinita. SSE-S3 Puoi scegliere di crittografare l'esportazione del catalogo con AWS KMS le chiavi (). SSE-KMS Se scegli di crittografare con AWS KMS chiavi, devi aggiungere autorizzazioni aggiuntive procedendo come segue:
Concedi al responsabile del servizio di esportazione del catalogo dati e al principale del servizio di manutenzione di S3 Tables le autorizzazioni principali per utilizzare la tua chiave KMS (politica chiave).
Concedi al responsabile IAM che esegue le autorizzazioni di esportazione per utilizzare la chiave KMS (policy di identità).
Concessione delle autorizzazioni principali del servizio di esportazione del catalogo dati e del servizio di manutenzione di S3 Tables alla chiave KMS
AWS Glue Per consentire l'esportazione di metadati crittografati del catalogo e per consentire la manutenzione automatica delle tabelle, ad esempio la compattazione e la rimozione dei file senza riferimenti sulle tabelle esportate, devi concedere l'accesso alla tua chiave KMS ai seguenti responsabili del servizio:
systemtables.catalog.amazonaws.com— esporta i metadati crittografati del catalogo in tabelle S3.maintenance.s3tables.amazonaws.com— esegue la manutenzione automatica delle tabelle sulle tabelle esportate.
AWS Glue scrive nel bucket di tabella AWS gestito denominato. aws-catalog La chiave KMS utilizzata per crittografare l'esportazione delle tabelle S3 non deve essere la stessa utilizzata per crittografare il Data Catalog inattivo. AWS Glue supporta solo chiavi KMS simmetriche. Per concedere l'accesso a questi responsabili del servizio, è possibile utilizzare la seguente politica chiave di esempio. In questa politica, al responsabile del maintenance.s3tables.amazonaws.com servizio viene concessa l'autorizzazione a utilizzare una chiave KMS specifica per crittografare e decrittografare le tabelle nel bucket delle tabelle. aws-catalog Per ulteriori informazioni sull'entità del servizio di manutenzione di S3 Tables, consulta Requisiti di autorizzazione per la SSE-KMS crittografia di S3 Tables nella Amazon Simple Storage Service User Guide.
{ "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/*" } } } ] }
Le autorizzazioni IAM sono richieste per il committente per l'esportazione
Concedi ai principali che eseguono le esportazioni le seguenti autorizzazioni. La seguente policy concede all'IAM l'accesso principale per decrittografare uno specifico AWS Glue Data Catalog contesto di glue_catalog_id crittografia (il valore è tuo). 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" } } } ] }
Per abilitare l'esportazione dei metadati del catalogo
-
Esegui il comando seguente per abilitare l'esportazione:
aws glue put-data-catalog-export-configuration \ --export-setting ENABLED -
Conferma la configurazione eseguendo il seguente comando:
aws glue get-data-catalog-export-configurationRisposta di esempio:
{ "ExportSetting": "ENABLED", "Status": "ENABLED", "S3TableBucketArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-catalog" }Il
Statuscampo passa daENABLINGaENABLEDman mano che il backfill iniziale procede.
Per disattivare l'esportazione dei metadati del catalogo
Esegui il comando seguente:
aws glue put-data-catalog-export-configuration \ --export-setting DISABLED
Riferimento alle tabelle del sistema di catalogo
Tutte le tabelle di sistema si trovano negli catalog_metadata spazi dei nomi glue o all'interno del bucket delle tabelle. aws-catalog Ogni tabella include le seguenti colonne di sistema:
| Colonna | Tipo | Description |
|---|---|---|
|
timestamp |
Ora in cui il record è stato inserito nella tabella di sistema (UTC). |
|
stringa |
Identificatore della versione dello schema per la tabella. |
tabelle
Contiene una riga per tabella di catalogo.
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore univoco per la tabella. |
| stringa | Identificatore del catalogo. |
| stringa | Nome del catalogo. |
| timestamp | Data e ora dell'ultimo aggiornamento. |
| timestamp | Timestamp di creazione. |
| stringa | Identificatore del committente che ha creato la tabella. |
| stringa | Tipo del committente creatore. |
| stringa | Descrizione della tabella |
| stringa | Nome tabella. |
| stringa | Namespace della tabella. |
| stringa | AWS Regione. |
| mappa<string, string> | Tag delle risorse. |
| stringa | Tipo di risorsa. |
| stringa | Identificatore del committente che ha aggiornato la tabella per ultimo. |
| stringa | Tipo dell'ordinante di aggiornamento. |
| stringa | Database contenente la tabella. |
| stringa | Classe di formato di input. |
| stringa | AWS Lake Formation stato della registrazione. |
| stringa | Classe di formato di output. |
| stringa | Proprietario della tabella. |
| int | Periodo di conservazione |
| stringa | Serialization/deserialization biblioteca. |
| stringa | Formato dei dati. |
| stringa | URI di localizzazione dei dati. |
| stringa | Formato della tabella (ad esempio, Iceberg, Hudi). |
| stringa | Tipo di tabella. |
table_columns
Contiene una riga per colonna in una tabella di catalogo.
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore composito nel formato |
| stringa | Identificatore della tabella principale. |
| stringa | Nome della colonna. |
| stringa | Descrizione della colonna. |
| stringa | Tipo di dati della colonna. |
| booleano | Se la colonna è una chiave di partizione. |
attachments
Contiene allegati personalizzati a livello di risorsa (una riga per allegato su una risorsa).
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore della risorsa principale. |
| stringa | Nome dell'allegato. |
| stringa | Tipo di modulo registrato del contenuto. |
| stringa | Contenuto dell'allegato come JSON-encoded stringa. |
item_attachments
Contiene allegati sugli elementi all'interno di un modulo iterabile, ad esempio singole colonne.
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore della risorsa principale. |
| stringa | Nome del modulo iterabile (ad esempio, colonne). |
| stringa | Nome dell'elemento (ad esempio, il nome della colonna). |
| stringa | Nome dell'allegato. |
| stringa | Tipo di modulo registrato del contenuto. |
| stringa | Contenuto dell'allegato sotto JSON-encoded forma di stringa. |
glossari
Contiene una riga per glossario.
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore univoco del glossario. |
| stringa | Descrizione del glossario. |
| stringa | Nome del glossario. |
| stringa | Stato ( |
glossary_terms
Contiene una riga per termine del glossario.
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore univoco del termine. |
| stringa | Identificatore del glossario principale. |
| stringa | Descrizione dettagliata del termine. |
| stringa | Nome del termine |
| stringa | Breve descrizione del termine. |
| stringa | Stato ( |
associated_glossary_terms
Contiene una riga per associazione tra un termine del glossario e una risorsa.
| Colonna | Tipo | Description |
|---|---|---|
| stringa | Identificatore della risorsa a cui è associato il termine del glossario. |
| stringa | Identificatore del termine del glossario associato alla risorsa. Si unisce alla tabella. |
Interrogazione delle tabelle del sistema di catalogo
Prima di poter interrogare i metadati del catalogo esportati in S3 Tables utilizzando servizi di AWS analisi come Amazon EMR, devi abilitare l'integrazione delle analisi nel bucket di tabelle AWS gestite aws-catalog e configurare le autorizzazioni. AWS Lake Formation
Prerequisiti
L'esportazione dei metadati del catalogo è abilitata e lo stato è.
ENABLEDAccesso o altri servizi di analisi.
Sono stati attesi 5 minuti dopo aver abilitato l'esportazione per rendere disponibili i dati.
Panoramica dell’integrazione
Per informazioni dettagliate sull'integrazione di S3 Tables con i servizi di AWS analisi, inclusi i prerequisiti, la configurazione del ruolo IAM e le procedure dettagliate, consulta Integrating Amazon S3 Tables with AWS analytics services nella Amazon Simple Storage Service User Guide.
Dopo aver abilitato l'esportazione di S3 Tables e configurato l'integrazione delle analisi, puoi interrogare i metadati del tuo Data Catalog utilizzando servizi di AWS analisi come Amazon Redshift e Amazon EMR. Ciò consente di eseguire controlli e analisi dei metadati utilizzando SQL standard.
Query di esempio
Elenca tutte le tabelle del catalogo con il relativo database e formato
SELECT id, name, database_name, table_format FROM aws_catalog.glue.tables;
Trova le colonne con le descrizioni di una tabella specifica
SELECT column_name, type, description FROM aws_catalog.glue.table_columns WHERE asset_id = 'table-id';
Aggiungi i termini del glossario al glossario principale
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';
Trova le tabelle associate a un termine specifico del glossario
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';
Estrai un campo da un allegato di modulo personalizzato
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';