Integrazione di Tabelle Amazon S3 con i servizi di analisi AWS
Questo argomento descrive i prerequisiti e le procedure necessarie per integrare i bucket di tabelle Amazon S3 con i servizi di analisi AWS. Per una panoramica di come funziona l’integrazione, consulta Panoramica dell’integrazione di Tabelle S3.
Nota
Questa integrazione utilizza i servizi AWS Lake Formation e AWS Glue e può comportare costi di richiesta e archiviazione di AWS Glue. Per ulteriori informazioni, consulta la sezione Prezzi di AWS Glue
Vengono applicati costi aggiuntivi per l'esecuzione di query sulle tabelle S3. Per ulteriori informazioni, consulta le informazioni sui prezzi del motore di query in uso.
Prerequisiti per l'integrazione
Di seguito sono elencati i prerequisiti necessari per integrare bucket di tabelle con i servizi di analisi AWS.
Collegare la policy gestita da AWS AWSLakeFormationDataAdmin al principale AWS Identity and Access Management (IAM) per rendere tale utente amministratore del data lake. Per ulteriori informazioni su come creare un amministratore del data lake, consulta Creare un amministratore di data lake nella Guida per gli sviluppatori di AWS Lake Formation.
-
Aggiungere autorizzazioni per l'operazione
glue:PassConnectional principale IAM. -
Aggiungere autorizzazioni per le operazioni
lakeformation:RegisterResourceelakeformation:RegisterResourceWithPrivilegedAccessal principale IAM. Eseguire l’aggiornamento alla versione più recente di AWS Command Line Interface (AWS CLI).
Importante
Durante la creazione delle tabelle, è necessario utilizzare solo lettere minuscole nei nomi delle tabelle e nelle definizioni delle tabelle. Ad esempio, è necessario verificare che i nomi delle colonne siano tutti in minuscolo. Se il nome della tabella o la definizione della tabella contiene lettere maiuscole, la tabella non è supportata da AWS Lake Formation né dal AWS Glue Data Catalog. In questo caso, la tabella non sarà visibile ai servizi di analisi AWS come Amazon Athena, anche se i bucket di tabelle sono integrati con i servizi di analisi AWS.
Se la definizione della tabella contiene lettere maiuscole, viene visualizzato il seguente messaggio di errore durante l’esecuzione di una query SELECT in Athena: “GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.”
Integrazione di 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 analisi AWS ora utilizza l’opzione WithPrivilegedAccess nell’operazione API Lake Formation registerResource per registrare i bucket di tabelle S3. L’integrazione ora crea anche il catalogo s3tablescatalog nel AWS Glue Data Catalog utilizzando l’opzione AllowFullTableExternalDataAccess nell’operazione API AWS Glue CreateCatalog.
Se si configura l’integrazione con la versione di anteprima, è possibile continuare a utilizzare l’integrazione attuale. Tuttavia, il processo di integrazione aggiornato offre miglioramenti delle prestazioni, quindi è consigliabile effettuare la migrazione. Per eseguire la migrazione 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 un Nome del bucket di tabelle e assicurati che sia selezionata l’opzione Abilita integrazione.
Seleziona Crea bucket di tabelle. Amazon S3 tenterà di integrare automaticamente i bucket di tabelle in tale Regione.
La prima volta che si integrano i bucket di tabelle in qualsiasi Regione, Amazon S3 crea un nuovo ruolo di servizio IAM per conto dell’utente. 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 bucket di tabelle tramite AWS CLI
Di seguito sono riportate le fasi che mostrano come utilizzare AWS CLI per integrare i bucket di tabelle. Per utilizzare queste fasi, sostituisci con le informazioni appropriate.user input placeholders
Creare un bucket di tabelle.
aws s3tables create-table-bucket \ --regionus-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.
-
Creare un file denominato
Role-Trust-Policy.jsoncontenente la seguente policy di attendibilità:Creare un ruolo di servizio IAM utilizzando il comando seguente:
aws iam create-role \ --role-nameS3TablesRoleForLakeFormation\ --assume-role-policy-document file://Role-Trust-Policy.json -
Creare un file denominato
LF-GluePolicy.jsoncontenente la seguente policy:Collegare la policy al ruolo utilizzando il comando seguente:
aws iam put-role-policy \ --role-nameS3TablesRoleForLakeFormation\ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
-
-
Creare un file denominato
input.jsoncontenente quanto segue:{ "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }Registrare i bucket di tabelle con Lake Formation utilizzando il comando seguente:
aws lakeformation register-resource \ --regionus-east-1\ --with-privileged-access \ --cli-input-json file://input.json -
Creare un file denominato
catalog.jsoncontenente il catalogo seguente:{ "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "AllowFullTableExternalDataAccess": "True" } }Creare il catalogo
s3tablescatalogutilizzando il comando seguente. La creazione di questo catalogo consente di popolare il AWS Glue Data Catalog con oggetti corrispondenti ai bucket di tabelle, ai namespace e alle tabelle.aws glue create-catalog \ --regionus-east-1\ --cli-input-json file://catalog.json Verificare che il catalogo
s3tablescatalogsia stato aggiunto ad AWS Glue utilizzando il comando seguente:aws glue get-catalog --catalog-id s3tablescatalog
Il processo di integrazione dei servizi di analisi AWS è stato aggiornato. Se l’integrazione è stata configurata con la versione di anteprima, è possibile continuare a utilizzare l’integrazione attuale. Tuttavia, il processo di integrazione aggiornato offre miglioramenti delle prestazioni, quindi è consigliabile effettuare la migrazione utilizzando le seguenti fasi. Per ulteriori informazioni sul processo di migrazione o integrazione, consulta Creazione di un catalogo Tabelle Amazon S3 nel AWS Glue Data Catalog nella Guida per gli sviluppatori di AWS Lake Formation.
-
Aprire la console AWS Lake Formation all'indirizzo https://console.aws.amazon.com/lakeformation/
e accedere come amministratore del data lake. Per ulteriori informazioni su come creare un amministratore del data lake, consulta Creare un amministratore di data lake nella Guida per gli sviluppatori di AWS Lake Formation. -
Elimina il catalogo
s3tablescatalogcome segue:-
Nel riquadro di navigazione a sinistra, seleziona Cataloghi.
-
Seleziona il pulsante di opzione accanto al catalogo
s3tablescatalognell’elenco Cataloghi. Dal menu Actions (Operazioni), scegli Delete (Elimina).
-
-
Annulla la registrazione della posizione dei dati per il catalogo
s3tablescatalogcome segue:-
Nel riquadro di navigazione a sinistra, vai alla sezione Amministrazione e scegli Posizioni del data lake.
-
Seleziona il pulsante di opzione accanto alla posizione del data lake
s3tablescatalog, ad esempios3://tables:.region:account-id:bucket/* -
Nel menu Operazioni scegli Rimuovi.
-
Nella finestra di dialogo di conferma che viene visualizzata, scegli Rimuovi.
-
-
Una volta eliminato il catalogo
s3tablescataloge la posizione del data lake, è possibile seguire la procedura per integrare i bucket di tabelle con i servizi di analisi AWS utilizzando il processo di integrazione aggiornato.
Nota
Per utilizzare le tabelle crittografate SSE-KMS nei servizi di analisi AWS integrati, il ruolo in uso deve disporre dell’autorizzazione a utilizzare la chiave AWS KMS per le operazioni di crittografia. Per ulteriori informazioni, consulta Concessione delle autorizzazioni per l’utilizzo di tabelle crittografate in servizi di analisi AWS integrati ai principali IAM.
Dopo l’integrazione, il principale IAM dispone delle autorizzazioni Lake Formation per accedere alle tabelle. Per consentire ad altri principali IAM di accedere alle tabelle, è necessario fornire a tali principali le autorizzazioni Lake Formation per le tabelle. Per ulteriori informazioni, consulta Gestione dell’accesso a una tabella o a un database con Lake Formation.