View a markdown version of this page

Metadaten in S3-Tabellen exportieren (Vorschau) - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Metadaten in S3-Tabellen exportieren (Vorschau)

Anmerkung

Der Export von Katalogmetadaten ist als Vorschaufunktion verfügbar. Diese Funktion kann sich vor der allgemeinen Verfügbarkeit ändern.

-Übersicht

Sie können Ihre AWS Glue Data Catalog Metadaten in verwaltete Katalogsystemtabellen exportieren, die in Amazon S3-Tabellen gespeichert sind. Wenn Sie den Export von S3-Tabellen aktivieren, werden Ihre technischen und geschäftlichen Metadaten in schreibgeschützten Apache Iceberg-Tabellen im Bucket für AWS verwaltete aws-catalog Tabellen gespeichert, sodass sie mithilfe von SQL mit AWS Analysediensten wie Amazon Redshift und Amazon EMR abfragbar sind.

Innerhalb des aws-catalog Tabellen-Buckets befinden sich die Systemtabellen in den folgenden Namespaces:

  • glue— enthält und. tables table_columns

  • catalog_metadata— enthält glossariesglossary_terms, associated_glossary_termsattachments, unditem_attachments.

Die folgenden Systemtabellen werden derzeit unterstützt:

Systemtabelle Enthält

tables

Technische und geschäftliche Metadaten für jede Tabelle im Datenkatalog, wie Name, Datenbank, Beschreibung, Speicherort und Format.

table_columns

Die Spalten jeder Katalogtabelle, einschließlich des Namens, des Datentyps, der Beschreibung der einzelnen Spalten und der Angabe, ob es sich um einen Partitionsschlüssel handelt.

glossaries

Die Geschäftsglossare in Ihrem Katalog, einschließlich des Namens, der Beschreibung und des Status der einzelnen Glossare.

glossary_terms

Die in Ihren Glossaren definierten Begriffe, einschließlich des Namens, der Beschreibungen, des übergeordneten Glossars und des Status der einzelnen Begriffe.

associated_glossary_terms

Die Verknüpfungen zwischen Glossarbegriffen und Assets, einschließlich der Asset-ID und der Glossarbegriffs-ID.

attachments

Custom-form Metadaten, die auf Asset-Ebene angehängt werden, einschließlich des Formulartyps und des Anhangsinhalts.

item_attachments

Custom-form Metadaten, die an Elemente innerhalb eines Assets angehängt sind, z. B. einzelne Spalten, einschließlich des iterierbaren Formularnamens, des Elementnamens, des Formulartyps und des Anhangsinhalts.

Das vollständige Schema jeder Tabelle auf Spaltenebene finden Sie unter. Referenz zu den Systemtabellen des Katalogs

So funktioniert der Export von Katalogmetadaten

Nachdem Sie den Export aktiviert haben, führt der Datenkatalog ein einmaliges Auffüllen Ihrer vorhandenen Katalogmetadaten durch und hält dann die Systemtabellen auf dem neuesten Stand, wenn Sie Änderungen vornehmen. Neu geschriebene oder aktualisierte Metadaten werden in der Regel innerhalb von etwa 5 Minuten in den Systemtabellen sichtbar.

Die Systemtabellen befinden sich in den catalog_metadata Namespaces glue und innerhalb des Tabellen-Buckets. aws-catalog Eine bestimmte Systemtabelle wird angezeigt, wenn Metadaten dieser Art zum ersten Mal in Ihrem Katalog vorhanden sind. Wenn Sie beispielsweise den Export aktivieren und Ihr Katalog nur Tabellen und Datenbanken enthält, werden nur die tabellenbezogenen Systemtabellen angezeigt. Die Glossar-Systemtabellen werden angezeigt, nachdem Sie Ihr erstes Glossar erstellt haben.

Aktivieren Sie den Export von Katalogmetadaten mit dem AWS CLI

Der Export von Katalogmetadaten ist eine Einstellung auf Kontoebene. Sie aktivieren oder deaktivieren ihn mit dem. AWS CLI

Voraussetzungen

Die IAM-Identität, die Sie verwenden, muss die Berechtigung haben, die Exportkonfigurationsvorgänge aufzurufenglue:GetDataCatalogExportConfiguration, glue:PutDataCatalogExportConfiguration und, sowies3tables:CreateTable. Weitere Informationen zu den Berechtigungen für S3-Tabellen finden Sie unter Erstellen von Tabellen in S3-Tabellen-Buckets im Amazon Simple Storage Service-Benutzerhandbuch.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:PutDataCatalogExportConfiguration", "glue:GetDataCatalogExportConfiguration" ], "Resource": "*" } ] }

Alle Daten in S3-Tabellen, einschließlich der Metadaten des Datenkatalogs, werden standardmäßig SSE-S3 verschlüsselt. Sie können wählen, ob Sie Ihren Katalogexport mit AWS KMS Schlüsseln (SSE-KMS) verschlüsseln möchten. Wenn Sie sich für die Verschlüsselung mit AWS KMS Schlüsseln entscheiden, müssen Sie zusätzliche Berechtigungen hinzufügen, indem Sie die folgenden Schritte ausführen:

  1. Erteilen Sie dem Principal des Data Catalog Export Service Principal und dem Principal des S3 Tables Maintenance Service Principal Berechtigungen zur Verwendung Ihres KMS-Schlüssels (Schlüsselrichtlinie).

  2. Gewähren Sie dem IAM-Prinzipal, der die Exportberechtigungen ausführt, die Verwendung des KMS-Schlüssels (Identitätsrichtlinie).

Erteilen Sie dem Principal des Data Catalog Export Service Principal und dem S3 Tables Maintenance Service Principal Berechtigungen für Ihren KMS-Schlüssel

Um den Export verschlüsselter Katalogmetadaten und die automatische Tabellenverwaltung wie Komprimierung und Entfernen unreferenzierter Dateien in den exportierten Tabellen zu ermöglichen, müssen Sie den folgenden Dienstprinzipalen Zugriff auf Ihren KMS-Schlüssel gewähren: AWS Glue

  • systemtables.catalog.amazonaws.com— exportiert verschlüsselte Katalogmetadaten in S3-Tabellen.

  • maintenance.s3tables.amazonaws.com— führt eine automatische Tabellenpflege für die exportierten Tabellen durch.

AWS Glue schreibt in den AWS verwalteten Tabellen-Bucket mit dem Namenaws-catalog. Der KMS-Schlüssel, der für die Verschlüsselung des S3-Tabellenexports verwendet wird, muss nicht mit dem identisch sein, der zum Verschlüsseln des Datenkatalogs im Ruhezustand verwendet wird. AWS Glue unterstützt nur symmetrische KMS-Schlüssel. Um diesen Dienstprinzipalen Zugriff zu gewähren, können Sie das folgende Beispiel für eine Schlüsselrichtlinie verwenden. In dieser Richtlinie erhält der maintenance.s3tables.amazonaws.com Dienstprinzipal die Erlaubnis, einen bestimmten KMS-Schlüssel zum Verschlüsseln und Entschlüsseln von Tabellen im Tabellen-Bucket zu verwenden. aws-catalog Weitere Informationen zum Serviceprinzip für die Wartung von S3-Tabellen finden Sie im Amazon Simple Storage Service-Benutzerhandbuch unter Berechtigungsanforderungen für die SSE-KMS Verschlüsselung von S3-Tabellen.

{ "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/*" } } } ] }

Für den Export sind für den Prinzipal IAM-Berechtigungen erforderlich

Erteilen Sie den Prinzipalen, die Exporte ausführen, die folgenden Berechtigungen. Die folgende Richtlinie gewährt dem IAM-Prinzipal Zugriff zur Entschlüsselung eines bestimmten Bereichs AWS Glue Data Catalog, der auf den glue_catalog_id Verschlüsselungskontext zugeschnitten ist (der Wert ist Ihr). 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" } } } ] }

Um den Export von Katalogmetadaten zu aktivieren

  1. Führen Sie den folgenden Befehl aus, um den Export zu aktivieren:

    aws glue put-data-catalog-export-configuration \ --export-setting ENABLED
  2. Bestätigen Sie die Konfiguration, indem Sie den folgenden Befehl ausführen:

    aws glue get-data-catalog-export-configuration

    Beispielantwort:

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

    Das Status Feld wechselt im Verlauf der anfänglichen Auffüllung von ENABLING zuENABLED.

Um den Export von Katalogmetadaten zu deaktivieren

Führen Sie den folgenden Befehl aus:

aws glue put-data-catalog-export-configuration \ --export-setting DISABLED

Referenz zu den Systemtabellen des Katalogs

Alle Systemtabellen befinden sich in den glue catalog_metadata ODER-Namespaces innerhalb des Tabellen-Buckets. aws-catalog Jede Tabelle enthält die folgenden Systemspalten:

Spalte Typ Description

ingestion_time

Zeitstempel

Uhrzeit, zu der der Datensatz in die Systemtabelle aufgenommen wurde (UTC).

schema_version

Zeichenfolge

Schema-Versions-ID für die Tabelle.

Tabellen

Enthält eine Zeile pro Katalogtabelle.

Spalte Typ Description

id

Zeichenfolge

Eindeutiger Bezeichner für die Tabelle.

catalog_id

Zeichenfolge

Katalog-ID.

catalog_name

Zeichenfolge

Name des Katalogs.

update_time

Zeitstempel

Zeitstempel der letzten Aktualisierung.

created_time

Zeitstempel

Zeitstempel der Erstellung.

created_by_id

Zeichenfolge

Bezeichner des Prinzipals, der die Tabelle erstellt hat.

created_by_type

Zeichenfolge

Typ des erstellenden Prinzipals.

description

Zeichenfolge

Beschreibung der Tabelle.

name

Zeichenfolge

Tabellenname.

namespace

Zeichenfolge

Namespace der Tabelle.

region_name

Zeichenfolge

AWS Region.

tags

Landkarte<string, string>

Ressourcen-Tags.

type

Zeichenfolge

Asset-Typ.

updated_by_id

Zeichenfolge

Bezeichner des Prinzipals, der die Tabelle zuletzt aktualisiert hat.

updated_by_type

Zeichenfolge

Typ des aktualisierenden Prinzipals.

database_name

Zeichenfolge

Datenbank, die die Tabelle enthält.

input_format

Zeichenfolge

Klasse für das Eingabeformat.

lake_formation_registration

Zeichenfolge

AWS Lake Formation Status der Registrierung.

output_format

Zeichenfolge

Klasse für das Ausgabeformat.

owner

Zeichenfolge

Tabellenbesitzer.

retention

int

Aufbewahrungsfrist.

serde_library

Zeichenfolge

Serialization/deserialization Bibliothek.

table_data_format

Zeichenfolge

Datenformat.

table_data_location

Zeichenfolge

URI für den Datenstandort.

table_format

Zeichenfolge

Tabellenformat (z. B. Iceberg, Hudi).

table_type

Zeichenfolge

Tabellentyp.

table_columns

Enthält eine Zeile pro Spalte in einer Katalogtabelle.

Spalte Typ Description

id

Zeichenfolge

Zusammengesetzter Bezeichner im FormatassetId#columnName.

asset_id

Zeichenfolge

Bezeichner der übergeordneten Tabelle.

column_name

Zeichenfolge

Spaltenname.

description

Zeichenfolge

Beschreibung der Spalte.

type

Zeichenfolge

Datentyp der Spalte.

is_partition_key

boolesch

Ob die Spalte ein Partitionsschlüssel ist.

attachments

Enthält benutzerdefinierte Formularanhänge auf Asset-Ebene (eine Zeile pro Anlage eines Assets).

Spalte Typ Description

asset_id

Zeichenfolge

Bezeichner des übergeordneten Assets.

attachment_name

Zeichenfolge

Name des Anhangs.

form_type_id

Zeichenfolge

Registrierter Formulartyp des Inhalts.

content_json

Zeichenfolge

Inhalt des Anhangs als JSON-encoded Zeichenfolge.

item_attachments

Enthält Anlagen zu Elementen in einem iterierbaren Formular, z. B. einzelne Spalten.

Spalte Typ Description

asset_id

Zeichenfolge

Bezeichner des übergeordneten Assets.

iterable_form_name

Zeichenfolge

Name des iterierbaren Formulars (z. B. Spalten).

item_name

Zeichenfolge

Name des Elements (z. B. der Spaltenname).

attachment_name

Zeichenfolge

Name des Anhangs.

form_type_id

Zeichenfolge

Registrierter Formulartyp des Inhalts.

content_json

Zeichenfolge

Inhalt des Anhangs als JSON-encoded Zeichenfolge.

Glossare

Enthält eine Zeile pro Glossar.

Spalte Typ Description

id

Zeichenfolge

Eindeutige Glossar-ID.

description

Zeichenfolge

Beschreibung des Glossars.

name

Zeichenfolge

Name des Glossars.

status

Zeichenfolge

Status (ENABLEDoderDISABLED).

Glossar_Begriffe

Enthält eine Zeile pro Glossarbegriff.

Spalte Typ Description

id

Zeichenfolge

Eindeutige Begriffskennung.

glossary_id

Zeichenfolge

Bezeichner des übergeordneten Glossars.

long_description

Zeichenfolge

Detaillierte Beschreibung des Begriffs.

name

Zeichenfolge

Name des Begriffs.

short_description

Zeichenfolge

Kurze Beschreibung des Begriffs.

status

Zeichenfolge

Status (ENABLEDoderDISABLED).

dazugehörende_Glossarbegriffe

Enthält eine Zeile pro Verknüpfung zwischen einem Glossarbegriff und einem Asset.

Spalte Typ Description

asset_id

Zeichenfolge

Bezeichner des Assets, dem der Glossarbegriff zugeordnet ist.

glossary_term_id

Zeichenfolge

Bezeichner des Glossarbegriffs, der dem Asset zugeordnet ist. Verbindet sich mit der glossary_terms Tabelle.

Systemtabellen des Katalogs werden abgefragt

Bevor Sie mithilfe von AWS Analysediensten wie Amazon EMR in S3-Tabellen exportierte Katalogmetadaten abfragen können, müssen Sie die Analyseintegration im AWS verwalteten aws-catalog Tabellen-Bucket aktivieren und Berechtigungen konfigurieren AWS Lake Formation .

Voraussetzungen

  • Der Export von Katalogmetadaten ist aktiviert und der Status lautetENABLED.

  • Zugriff auf oder andere Analysedienste.

  • Nach der Aktivierung des Exports wurde 5 Minuten gewartet, bis die Daten verfügbar sind.

Übersicht über die Integration

Detaillierte Informationen zur Integration von S3-Tabellen mit AWS Analysediensten, einschließlich Voraussetzungen, IAM-Rollenkonfiguration und schrittweisen Anleitungen, finden Sie unter Integrieren von Amazon S3-Tabellen mit AWS Analysediensten im Amazon Simple Storage Service-Benutzerhandbuch.

Nachdem Sie den Export von S3-Tabellen aktiviert und die Analyseintegration eingerichtet haben, können Sie Ihre Datenkatalog-Metadaten mithilfe von AWS Analysediensten wie Amazon Redshift und Amazon EMR abfragen. Auf diese Weise können Sie Metadaten-Audits und Analysen mithilfe von Standard-SQL durchführen.

Beispielabfragen

Listet alle Katalogtabellen mit ihrer Datenbank und ihrem Format auf

SELECT id, name, database_name, table_format FROM aws_catalog.glue.tables;
Suchen Sie nach Spalten mit Beschreibungen für eine bestimmte Tabelle

SELECT column_name, type, description FROM aws_catalog.glue.table_columns WHERE asset_id = 'table-id';
Verbinde Glossarbegriffe mit ihrem übergeordneten Glossar

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';
Suchen Sie nach Tabellen, die einem bestimmten Glossarbegriff zugeordnet sind

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';
Extrahieren Sie ein Feld aus einer Anlage mit einem benutzerdefinierten Formular

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