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à.
Integrazione delle tabelle AWS Amazon S3 con i servizi di analisi
Questo argomento descrive i prerequisiti e le procedure necessarie per integrare i bucket AWS di tabelle Amazon S3 con i servizi di analisi. Per una panoramica di come funziona l'integrazione, consulta. Panoramica dell'integrazione di S3 Tables
Nota
Questa integrazione utilizza i AWS Lake Formation servizi AWS Glue and e potrebbe comportare costi di AWS Glue richiesta e archiviazione. Per ulteriori informazioni, consultare AWS Glue Prezzi
Vengono applicati costi aggiuntivi per l'esecuzione di query sulle tabelle S3. Per ulteriori informazioni, consulta le informazioni sui prezzi per il motore di query che stai utilizzando.
Prerequisiti per l'integrazione
Per integrare i table bucket con i servizi di AWS analisi sono necessari i seguenti prerequisiti:
Collega la policy AWSLakeFormationDataAdmin AWS gestita al tuo principale AWS Identity and Access Management (IAM) per rendere quell'utente un amministratore del data lake. Per ulteriori informazioni su come creare un amministratore di data lake, consulta Create a data lake administrator nella AWS Lake Formation Developer Guide.
-
Aggiungere autorizzazioni per l'operazione
glue:PassConnection
al principale IAM. -
Aggiungi le autorizzazioni per le
lakeformation:RegisterResourceWithPrivilegedAccess
operazionilakeformation:RegisterResource
e al tuo principale IAM. Effettua l'aggiornamento all'ultima versione di AWS Command Line Interface (AWS CLI).
Importante
Quando create tabelle, assicuratevi di utilizzare tutte le lettere minuscole nei nomi delle tabelle e nelle definizioni delle tabelle. Ad esempio, assicuratevi che i nomi delle colonne siano tutti in minuscolo. Se il nome o la definizione della tabella contengono lettere maiuscole, la tabella non è supportata da AWS Lake Formation o da. AWS Glue Data Catalog In questo caso, la tua tabella non sarà visibile ai servizi di AWS analisi come Amazon Athena, anche se i tuoi table bucket sono integrati con AWS servizi di analisi.
Se la definizione della tabella contiene lettere maiuscole, ricevi il seguente messaggio di errore quando esegui una SELECT
query in Athena: «GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model. ValidationException: Risorsa federativa non supportata: nomi di tabelle o colonne non validi
».
Integrazione dei bucket di tabelle con i servizi di analisi AWS
Questa integrazione deve essere eseguita una volta per regione. AWS
Importante
L'integrazione dei servizi di AWS analisi ora utilizza l'WithPrivilegedAccess
opzione nell'operazione dell'API registerResource
Lake Formation per registrare i bucket di tabelle S3. L'integrazione ora crea anche il s3tablescatalog
catalogo AWS Glue Data Catalog utilizzando l'AllowFullTableExternalDataAccess
opzione nell'operazione CreateCatalog
AWS Glue API.
Se configuri l'integrazione con la versione di anteprima, puoi continuare a utilizzare l'integrazione attuale. Tuttavia, il processo di integrazione aggiornato offre miglioramenti delle prestazioni, quindi consigliamo di effettuare la migrazione. Per migrare all'integrazione aggiornata, consulta. Migrazione al processo di integrazione aggiornato
Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/
Nel pannello di navigazione a sinistra, scegli Bucket di tabelle.
Seleziona Crea bucket di tabelle.
Viene visualizzata la pagina Create bucket di tabelle.
Inserisci il nome di un bucket Table e assicurati che la casella di controllo Abilita integrazione sia selezionata.
Seleziona Crea bucket di tabelle. Amazon S3 tenterà di integrare automaticamente i bucket di tabelle in tale Regione.
La prima volta che integri i table bucket in qualsiasi regione, Amazon S3 crea un nuovo ruolo di servizio IAM per tuo conto. Questo ruolo consente a Lake Formation di accedere a tutti i bucket di tabelle dell'account dell'utente e di federare l'accesso alle tabelle in AWS Glue Data Catalog.
Per integrare i secchielli da tavolo utilizzando il AWS CLI
I passaggi seguenti mostrano come utilizzare i bucket AWS CLI da tavolo per integrare. Per utilizzare questi passaggi, sostituiscili
con le tue informazioni.user input placeholders
Creare un bucket di tabelle.
aws s3tables create-table-bucket \ --region
us-east-1
\ --nameamzn-s3-demo-table-bucket
-
Creare un ruolo di servizio IAM che consente a Lake Formation di accedere alle risorse della propria tabella.
-
Create un file chiamato
Role-Trust-Policy.json
che contenga la seguente politica di attendibilità:Crea il ruolo di servizio IAM utilizzando il seguente comando:
aws iam create-role \ --role-name
S3TablesRoleForLakeFormation
\ --assume-role-policy-document file://Role-Trust-Policy.json
-
Crea un file chiamato
LF-GluePolicy.json
che contiene la seguente politica:Associa la policy al ruolo utilizzando il seguente comando:
aws iam put-role-policy \ --role-name
S3TablesRoleForLakeFormation
\ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
-
-
Create un file chiamato
input.json
che contenga quanto segue:{ "ResourceArn": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333
:role/S3TablesRoleForLakeFormation
" }Registra i bucket da tavola con Lake Formation utilizzando il seguente comando:
aws lakeformation register-resource \ --region
us-east-1
\ --with-privileged-access \ --cli-input-json file://input.json
-
Crea un file chiamato
catalog.json
che contiene il seguente catalogo:{ "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "AllowFullTableExternalDataAccess": "True" } }Create il
s3tablescatalog
catalogo utilizzando il seguente comando. La creazione di questo catalogo lo popola AWS Glue Data Catalog con gli oggetti corrispondenti ai bucket di tabella, ai namespace e alle tabelle.aws glue create-catalog \ --region
us-east-1
\ --cli-input-json file://catalog.json
Verificate che il
s3tablescatalog
catalogo sia stato aggiunto utilizzando il comando AWS Glue seguente:aws glue get-catalog --catalog-id s3tablescatalog
Il processo di integrazione dei servizi di AWS analisi è stato aggiornato. Se hai configurato l'integrazione con la versione di anteprima, puoi continuare a utilizzare l'integrazione attuale. Tuttavia, il processo di integrazione aggiornato offre miglioramenti delle prestazioni, quindi consigliamo di effettuare la migrazione utilizzando i passaggi seguenti. Per ulteriori informazioni sul processo di migrazione o integrazione, consulta la sezione Creazione di un catalogo Amazon S3 Tables AWS Glue Data Catalog nella AWS Lake Formation Developer Guide.
-
Apri la AWS Lake Formation console all'indirizzo https://console.aws.amazon.com/lakeformation/
e accedi come amministratore del data lake. Per ulteriori informazioni su come creare un amministratore di data lake, consulta Create a data lake administrator nella AWS Lake Formation Developer Guide. -
Elimina il
s3tablescatalog
catalogo effettuando le seguenti operazioni:-
Nel riquadro di navigazione a sinistra, scegli Cataloghi.
-
Seleziona il pulsante di opzione accanto al
s3tablescatalog
catalogo nell'elenco Cataloghi. Dal menu Actions (Operazioni), scegli Delete (Elimina).
-
-
Annulla la registrazione della posizione dei dati per il
s3tablescatalog
catalogo effettuando le seguenti operazioni:-
Nel riquadro di navigazione a sinistra, vai alla sezione Amministrazione e scegli Posizioni Data lake.
-
Seleziona il pulsante di opzione accanto alla posizione del
s3tablescatalog
data lake, ad esempios3://tables:
.region
:account-id
:bucket/* -
Nel menu Azioni, scegli Rimuovi.
-
Nella finestra di dialogo di conferma che appare, scegli Rimuovi.
-
-
Ora che hai eliminato il
s3tablescatalog
catalogo e la posizione del data lake, puoi seguire i passaggi per integrare i tuoi table bucket con i servizi di AWS analisi utilizzando il processo di integrazione aggiornato.
Nota
Se desideri utilizzare tabelle crittografate SSE-KMS in servizi di AWS analisi integrati, il ruolo che utilizzi deve disporre dell'autorizzazione a utilizzare la tua AWS KMS chiave per le operazioni di crittografia. Per ulteriori informazioni, consulta Concessione ai dirigenti IAM delle autorizzazioni per l'utilizzo di tabelle crittografate nei servizi di analisi integrati AWS.
Dopo l'integrazione, al tuo principale IAM vengono concesse le autorizzazioni Lake Formation per accedere alle tue tabelle, se desideri consentire ad altri principali IAM di accedere alle tabelle, devi concedere le autorizzazioni di Lake Formation sulle tue tabelle a tali principali. Per ulteriori informazioni, consulta Gestione dell'accesso a una tabella o a un database con Lake Formation.