Utilizzo di secchi da tavolo AWS gestiti - Amazon Simple Storage Service

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

Utilizzo di secchi da tavolo AWS gestiti

AWS i managed table bucket sono bucket da tavolo S3 specializzati progettati per archiviare tabelle AWS gestite, come le tabelle del Accelerazione della scoperta dei dati con S3 Metadata diario e delle tabelle di inventario in tempo reale. A differenza dei table bucket gestiti dal cliente che crei e gestisci direttamente, i table bucket AWS gestiti vengono forniti automaticamente AWS quando si configurano funzionalità che richiedono tabelle gestite. AWS Quando vengono create, le tabelle gestite appartengono a uno spazio dei nomi predefinito basato sul bucket di origine che non può essere modificato. Ogni AWS account ha un bucket di tabella AWS gestito per regione, secondo la convenzione di denominazione. aws-s3 Questo bucket funge da posizione centralizzata per tutte le tabelle gestite associate alle risorse del tuo account in quella regione.

La tabella seguente confronta i bucket di tabelle AWS gestiti con i bucket di tabelle gestiti dal cliente.

Funzionalità AWS secchi da tavolo gestiti bucket da tavolo gestiti dal cliente
Creazione Creato automaticamente dai AWS servizi Li crei manualmente
Denominazione Usa una convenzione di denominazione standard (aws-s3) Definisci i tuoi nomi
Creazione di tabelle Solo AWS i servizi possono creare tabelle È possibile creare tabelle
Controllo del namespace Non è possibile creare o eliminare spazi dei nomi (tutte le tabelle appartengono a uno spazio dei nomi fisso) È possibile creare ed eliminare namespace
Accesso Accesso in sola lettura Accesso completo ad
Encryption (Crittografia) È possibile modificare le impostazioni di crittografia predefinite (SSE-S3) solo se la tabella iniziale è stata crittografata con una chiave gestita dal cliente. AWS KMS Puoi impostare la crittografia predefinita a livello di bucket e modificarla in qualsiasi momento
Maintenance (Manutenzione) Gestito dai servizi AWS La manutenzione automatizzata può essere personalizzata a livello di benna

Autorizzazioni per creare bucket di tabelle AWS gestiti

Per utilizzare i bucket di tabella AWS gestiti, sono necessarie le autorizzazioni per creare bucket di tabelle e tabelle AWS gestiti, specificare le impostazioni di crittografia per le tabelle AWS gestite e le autorizzazioni di lettura di base per l'interrogazione delle tabelle.

Di seguito è riportato un esempio di politica che ti consentirà di creare un bucket di tabelle AWS gestito tramite configurazioni di servizio:

{ "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:region:111122223333:bucket/aws-s3", "arn:aws:s3tables:region:111122223333:bucket/aws-s3/table/*" ] } ] }

Di seguito è riportato un esempio di policy che consente di interrogare le tabelle in bucket di tabelle AWS gestiti:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"PermissionsToWorkWithMetadataTables", "Effect":"Allow", "Action":[ "s3tables:GetTable", "s3tables:GetTableData", "s3tables:GetTableMetadataLocation", "kms:Decrypt" ], "Resource":[ "arn:aws:s3tables:region:111122223333:bucket/aws-s3", "arn:aws:s3tables:region:111122223333:bucket/aws-s3/table/*" ] } ] }

Interrogazione di tabelle in bucket di tabelle AWS gestiti

È possibile interrogare le tabelle AWS gestite in bucket di tabelle AWS gestite utilizzando metodi e motori di accesso supportati da S3 Tables. Di seguito sono riportati alcuni esempi di query

Using standard SQL

L'esempio seguente mostra come interrogare le tabelle AWS gestite utilizzando la sintassi SQL standard.

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

L'esempio seguente mostra come unire le tabelle AWS gestite con le proprie tabelle.

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

L'esempio seguente mostra come interrogare la tabella conSpark.

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

L'esempio seguente mostra come unire la tabella AWS gestita con un'altra tabella.

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

Crittografia per AWS bucket tabulari gestiti

Per impostazione predefinita, i bucket di tabella AWS gestiti sono crittografati con crittografia lato server utilizzando chiavi gestite di Amazon S3 (SSE-S3). Dopo aver creato il bucket table AWS gestito, puoi utilizzarlo PutTableBucketEncryptionper impostare l'impostazione di crittografia predefinita del bucket in modo da utilizzare la crittografia lato server con chiavi () (SSE-KMS). AWS Key Management Service AWS KMS

Durante la creazione delle tabelle AWS gestite, puoi scegliere di crittografarle con SSE-KMS. Se scegli di utilizzare SSE-KMS, devi fornire una chiave KMS gestita dal cliente nella stessa regione del bucket di tabelle gestito. AWS È possibile impostare il tipo di crittografia per le tabelle AWS gestite solo durante la creazione della tabella. Dopo aver creato una tabella AWS gestita, non è possibile modificarne l'impostazione di crittografia.

Se desideri che il bucket di tabella AWS gestito e le tabelle in esso memorizzate utilizzino la stessa chiave KMS, assicurati di utilizzare la stessa chiave KMS che hai usato per crittografare le tabelle per crittografare il bucket di tabella dopo che è stato creato. Dopo aver modificato le impostazioni di crittografia predefinite per il bucket di tabella per utilizzare SSE-KMS, tali impostazioni di crittografia vengono utilizzate per tutte le tabelle future create nel bucket.