View a markdown version of this page

Esporta i metadati nelle tabelle S3 (anteprima) - AWS Aderenza

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. tables table_columns

  • catalog_metadata— contieneglossaries, glossary_termsassociated_glossary_terms,attachments, eitem_attachments.

Le seguenti tabelle di sistema sono attualmente supportate:

Tabelle di sistema Contiene

tables

Metadati tecnici e aziendali per ogni tabella del catalogo dati, ad esempio nome, database, descrizione, posizione di archiviazione e formato.

table_columns

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.

glossaries

I glossari aziendali presenti nel catalogo, inclusi il nome, la descrizione e lo stato di ciascun glossario.

glossary_terms

I termini definiti nei tuoi glossari, inclusi il nome, le descrizioni, il glossario principale e lo stato di ciascun termine.

associated_glossary_terms

Le associazioni tra termini e risorse del glossario, inclusi l'identificatore della risorsa e l'identificatore del termine del glossario.

attachments

Custom-form metadati allegati a livello di risorsa, inclusi il tipo di modulo e il contenuto dell'allegato.

item_attachments

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:

  1. 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).

  2. 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

  1. Esegui il comando seguente per abilitare l'esportazione:

    aws glue put-data-catalog-export-configuration \ --export-setting ENABLED
  2. Conferma la configurazione eseguendo il seguente comando:

    aws glue get-data-catalog-export-configuration

    Risposta di esempio:

    { "ExportSetting": "ENABLED", "Status": "ENABLED", "S3TableBucketArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-catalog" }

    Il Status campo passa da ENABLING a ENABLED man 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

ingestion_time

timestamp

Ora in cui il record è stato inserito nella tabella di sistema (UTC).

schema_version

stringa

Identificatore della versione dello schema per la tabella.

tabelle

Contiene una riga per tabella di catalogo.

Colonna Tipo Description

id

stringa

Identificatore univoco per la tabella.

catalog_id

stringa

Identificatore del catalogo.

catalog_name

stringa

Nome del catalogo.

update_time

timestamp

Data e ora dell'ultimo aggiornamento.

created_time

timestamp

Timestamp di creazione.

created_by_id

stringa

Identificatore del committente che ha creato la tabella.

created_by_type

stringa

Tipo del committente creatore.

description

stringa

Descrizione della tabella

name

stringa

Nome tabella.

namespace

stringa

Namespace della tabella.

region_name

stringa

AWS Regione.

tags

mappa<string, string>

Tag delle risorse.

type

stringa

Tipo di risorsa.

updated_by_id

stringa

Identificatore del committente che ha aggiornato la tabella per ultimo.

updated_by_type

stringa

Tipo dell'ordinante di aggiornamento.

database_name

stringa

Database contenente la tabella.

input_format

stringa

Classe di formato di input.

lake_formation_registration

stringa

AWS Lake Formation stato della registrazione.

output_format

stringa

Classe di formato di output.

owner

stringa

Proprietario della tabella.

retention

int

Periodo di conservazione

serde_library

stringa

Serialization/deserialization biblioteca.

table_data_format

stringa

Formato dei dati.

table_data_location

stringa

URI di localizzazione dei dati.

table_format

stringa

Formato della tabella (ad esempio, Iceberg, Hudi).

table_type

stringa

Tipo di tabella.

table_columns

Contiene una riga per colonna in una tabella di catalogo.

Colonna Tipo Description

id

stringa

Identificatore composito nel formatoassetId#columnName.

asset_id

stringa

Identificatore della tabella principale.

column_name

stringa

Nome della colonna.

description

stringa

Descrizione della colonna.

type

stringa

Tipo di dati della colonna.

is_partition_key

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

asset_id

stringa

Identificatore della risorsa principale.

attachment_name

stringa

Nome dell'allegato.

form_type_id

stringa

Tipo di modulo registrato del contenuto.

content_json

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

asset_id

stringa

Identificatore della risorsa principale.

iterable_form_name

stringa

Nome del modulo iterabile (ad esempio, colonne).

item_name

stringa

Nome dell'elemento (ad esempio, il nome della colonna).

attachment_name

stringa

Nome dell'allegato.

form_type_id

stringa

Tipo di modulo registrato del contenuto.

content_json

stringa

Contenuto dell'allegato sotto JSON-encoded forma di stringa.

glossari

Contiene una riga per glossario.

Colonna Tipo Description

id

stringa

Identificatore univoco del glossario.

description

stringa

Descrizione del glossario.

name

stringa

Nome del glossario.

status

stringa

Stato (ENABLEDoDISABLED).

glossary_terms

Contiene una riga per termine del glossario.

Colonna Tipo Description

id

stringa

Identificatore univoco del termine.

glossary_id

stringa

Identificatore del glossario principale.

long_description

stringa

Descrizione dettagliata del termine.

name

stringa

Nome del termine

short_description

stringa

Breve descrizione del termine.

status

stringa

Stato (ENABLEDoDISABLED).

associated_glossary_terms

Contiene una riga per associazione tra un termine del glossario e una risorsa.

Colonna Tipo Description

asset_id

stringa

Identificatore della risorsa a cui è associato il termine del glossario.

glossary_term_id

stringa

Identificatore del termine del glossario associato alla risorsa. Si unisce alla tabella. glossary_terms

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 è. ENABLED

  • Accesso 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';