Mit AWS-verwalteten Tabellen-Buckets arbeiten - Amazon Simple Storage Service

Mit AWS-verwalteten Tabellen-Buckets arbeiten

AWS-verwaltete Tabellen-Buckets sind spezielle Amazon S3-Tabellen-Buckets, die zum Speichern von AWS-verwalteten Tabellen wie dem S3-Metadaten-Journal und Live-Inventartabellen entwickelt wurden. Im Gegensatz zu kundenverwalteten Tabellen-Buckets, die Sie direkt erstellen und verwalten, werden AWS-verwaltete Tabellen-Buckets automatisch von AWS bereitgestellt, wenn Sie Funktionen konfigurieren, die AWS-verwaltete Tabellen erfordern. Wenn verwaltete Tabellen erstellt werden, gehören sie zu einem vordefinierten Namespace, der auf dem Namen des Quell-Buckets basiert. Dieser vordefinierte Namespace kann nicht geändert werden.

Jeder AWS-Konto hat einen AWS-verwalteten Tabellen-Bucket pro Region, entsprechend der Benennungskonvention aws-s3. Dieser Bucket dient als zentraler Speicherort für alle verwalteten Tabellen, die den Ressourcen Ihres Kontos in dieser Region zugeordnet sind.

In der folgenden Tabelle werden AWS-verwaltete Tabellen-Buckets mit von Kunden verwalteten Tabellen-Buckets verglichen.

Funktion AWS-verwaltete Tabellen-Buckets Vom Kunden verwaltete Tabellen-Buckets
Erstellung Automatisch erstellt von AWS-Services Sie erstellen diese manuell
Benennung Verwenden Sie eine standardmäßige Benennungskonvention (aws-s3) Sie definieren Ihre eigenen Namen
Tabellenerstellung Nur AWS-Services kann Tabellen erstellen Sie können Tabellen erstellen
Namespace-Steuerung Sie können keine Namespaces erstellen oder löschen (alle Tabellen gehören zu einem festen Namespace) Sie können Namespaces erstellen und löschen
Zugriff Schreibgeschützter Zugriff Vollzugriff
Verschlüsselung Sie können die Standardeinstellungen für die Verschlüsselung (SSE-S3) nur ändern, wenn Sie die Ausgangstabelle mit einem vom Kunden verwalteten Schlüssel AWS Key Management Service (AWS KMS) verschlüsselt haben Sie können die Standardverschlüsselung auf Bucket-Ebene festlegen und sie jederzeit ändern
Wartung Verwaltet von AWS-Services Sie können die automatische Wartung auf Bucket-Ebene anpassen

Berechtigungen zum Arbeiten mit AWS-verwalteten Tabellen-Buckets und zum Abfragen von Tabellen

Um mit AWS-verwalteten Tabellen-Buckets arbeiten zu können, benötigen Sie Berechtigungen zum Erstellen von AWS-verwalteten Tabellen-Buckets und Tabellen sowie zum Angeben von Verschlüsselungseinstellungen für AWS-verwaltete Tabellen. Sie benötigen außerdem Berechtigungen, um die Tabellen in Ihren AWS-verwalteten Tabellen-Buckets abzufragen.

Mit der folgenden Beispielrichtlinie können Sie über eine S3-Metadatenkonfiguration einen AWS-verwalteten Tabellen-Bucket erstellen:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3:CreateBucketMetadataTableConfiguration", "s3tables:CreateTableBucket", "s3tables:CreateNamespace", "s3tables:CreateTable", "s3tables:GetTable", "s3tables:PutTablePolicy" "s3tables:PutTableEncryption", "kms:DescribeKey" ], "Resource":[ "arn:aws:s3:::bucket/amzn-s3-demo-source-bucket", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }

Mit der folgenden Beispielrichtlinie können Sie Tabellen in AWS-verwalteten Tabellen-Buckets abfragen:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToQueryMetadataTables", "Effect":"Allow", "Action":[ "s3tables:GetTable", "s3tables:GetTableData", "s3tables:GetTableMetadataLocation", "kms:Decrypt" ], "Resource":[ "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3", "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*", "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }

Abfragen von Tabellen in AWS-verwalteten Tabellen-Buckets

Sie können AWS-verwaltete Tabellen in AWS-verwalteten Tabellen-Buckets mithilfe von Zugriffsmethoden und Engines abfragen, die von S3-Tabellen unterstützt werden. Nachfolgend finden Sie einige Beispiele für Abfragen:

Using standard SQL

Das folgende Beispiel zeigt, wie Sie AWS-verwaltete Tabellen mithilfe der Standard-SQL-Syntax abfragen:

SELECT * FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" LIMIT 10;

Das folgende Beispiel zeigt, wie Sie AWS-verwaltete Tabellen mit Ihren eigenen Tabellen verbinden:

SELECT * FROM "s3tablescatalog/aws-s3"."b_amzn-s3-demo-source-bucket"."inventory" a JOIN "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" b ON a.key = b.key LIMIT 10;
Using Spark

Das folgende Beispiel zeigt, wie Sie Ihre Tabelle abfragen mit Spark:

spark.sql(""" SELECT * FROM ice_catalog.inventory a JOIN ice_catalog.my_table b ON a.key = b.key """).show(10, true)

Das folgende Beispiel zeigt, wie Sie Ihre AWS-verwaltete Tabelle mit einer anderen Tabelle verbinden:

SELECT * FROM inventory a JOIN my_table b ON a.key = b.key LIMIT 10;

Verschlüsselung für AWS-verwaltete Tabellen-Buckets

Standardmäßig werden AWS-verwaltete Tabellen-Buckets mit serverseitiger Verschlüsselung mithilfe von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt. Nachdem Ihr AWS-verwalteter Tabellen-Bucket erstellt wurde, können PutTableBucketEncryption Sie die Standardverschlüsselungseinstellung des Buckets so festlegen, dass sie die serverseitige Verschlüsselung mit AWS Key Management Service (AWS KMS) Schlüsseln (SSE-KMS) verwenden.

Bei der Erstellung Ihrer Metadatenkonfiguration können Sie wählen, ob Sie Ihre AWS-verwalteten Metadatentabellen mit SSE-KMS verschlüsseln möchten. Wenn Sie SSE-KMS verwenden möchten, müssen Sie einen vom Kunden verwalteten KMS-Schlüssel in derselben Region wie Ihr AWS-verwalteter Bucket angeben. Sie können die Verschlüsselungsart für Ihre AWS-verwalteten Tabellen nur bei der Tabellenerstellung festlegen. Nachdem eine AWS-verwaltete Tabelle erstellt wurde, können Sie ihre Verschlüsselungseinstellung nicht mehr ändern.

Wenn Sie möchten, dass der AWS-verwaltete Tabellen-Bucket und die darin gespeicherten Metadatentabellen denselben KMS-Schlüssel verwenden, stellen Sie sicher, dass Sie denselben KMS-Schlüssel verwenden, den Sie zum Verschlüsseln Ihrer Metadatentabellen verwendet haben, um Ihren Tabellen-Bucket zu verschlüsseln, nachdem Sie Ihre erste Metadatenkonfiguration erstellt haben. Nachdem Sie die Standardverschlüsselungseinstellungen für Ihren Tabellen-Bucket auf SSE-KMS geändert haben, werden diese Verschlüsselungseinstellungen für alle zukünftigen Tabellen verwendet, die in diesem Bucket erstellt werden.