View a markdown version of this page

Configurazione di un target per un'integrazione zero-ETL - AWS Glue

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

Configurazione di un target per un'integrazione zero-ETL

Esistono diverse opzioni offerte AWS Glue durante la configurazione di un target per un'integrazione zero-ETL. L'obiettivo può essere un Amazon Redshift data warehouse crittografato o un'architettura Lakehouse di Amazon. SageMaker

Prima di selezionare la destinazione per l'integrazione Zero-ETL, è necessario configurare una delle seguenti risorse di destinazione. Le opzioni di configurazione per una destinazione in un'integrazione Zero-ETL includono:

Nota

Non è possibile modificare la destinazione di un'integrazione Zero-ETL dopo la creazione.

Configurazione di un target bucket S3 per uso generico

Questa sezione descrive i prerequisiti e i passaggi di configurazione per configurare un bucket S3 generico come storage per il tuo target in un'integrazione zero-ETL, utilizzando l'architettura Lakehouse di Amazon. SageMaker

Prima di creare un'integrazione zero-ETL con l'architettura Lakehouse di SageMaker Amazon utilizzando lo storage S3 generico, devi completare le seguenti attività di configurazione:

  • Configura un AWS Glue database

  • Fornire la policy RBAC del catalogo

  • Creare un ruolo IAM

  • Associa il ruolo di destinazione, KMS (opzionale) e la connessione (opzionale) alla risorsa di destinazione

  • (Facoltativo) Configura le proprietà della tabella di destinazione

Configurazione di un AWS Glue database

Per configurare un database di destinazione nel Data Catalog con una posizione del bucket per uso generico Amazon S3:

  1. Nella home page della AWS Glue console, seleziona Database in Data Catalog.

  2. Scegliere Aggiungi database in alto a destra. Se è stato già creato un database, assicurarsi che sia impostata la posizione con l'URI di Amazon S3 per il database.

  3. Inserire un nome e una Posizione (URI Amazon S3). Si prega di notare che la posizione è necessaria per l'integrazione Zero-ETL. Al termine, fare clic su Crea database.

Nota

Il bucket Amazon S3 per uso generico deve trovarsi nella stessa regione del database. AWS Glue

Per informazioni sulla creazione di un nuovo database in AWS Glue, consulta Guida introduttiva al Data Catalog.

È possibile anche usare la CLI create-database per creare il database in AWS Glue. Tenere presente che LocationUri in --database-input è obbligatorio.

Ottimizzazione delle tabelle Iceberg

Una volta creata una tabella AWS Glue nel database di destinazione, puoi abilitare la compattazione per velocizzare le query in Amazon Athena. Per informazioni sulla configurazione delle risorse (Ruolo IAM) per la compattazione, consultare Prerequisiti per l'ottimizzazione delle tabelle.

Per ulteriori informazioni sulla configurazione della compattazione sulla AWS Glue tabella creata dall'integrazione, consulta Optimizing Iceberg tables.

Fornire una policy RBAC (Resource Based Access) per il catalogo

Per le integrazioni che utilizzano un AWS Glue database, aggiungi le seguenti autorizzazioni alla politica RBAC del catalogo per consentire le integrazioni tra origine e destinazione.

Nota

Per le integrazioni tra account, sia l'utente che crea la politica dei ruoli di integrazione che la politica delle risorse del catalogo devono consentire l'accesso alla risorsa. glue:CreateInboundIntegration Per lo stesso account è sufficiente una policy in materia di risorse o una policy di ruolo che consenta a glue:CreateInboundIntegration l'utilizzo della risorsa. Entrambi gli scenari devono comunque consentire a glue.amazonaws.com per glue:AuthorizeInboundIntegration.

È possibile accedere alle Impostazioni del catalogo in Data Catalog. Fornire quindi le seguenti autorizzazioni e inserire le informazioni mancanti.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:CreateInboundIntegration" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/database-name" ], "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/table-name" } } }, { "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/database-name" ], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/table-name" } } } ] }

Creazione di un ruolo IAM di destinazione

Creare un ruolo IAM con le seguenti autorizzazioni e relazioni di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::amzn-s3-bucket", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/*", "Effect": "Allow" }, { "Action": [ "glue:GetDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/database-name" ], "Effect": "Allow" }, { "Action": [ "glue:CreateTable", "glue:GetTable", "glue:GetTables", "glue:DeleteTable", "glue:UpdateTable", "glue:GetTableVersion", "glue:GetTableVersions", "glue:GetResourcePolicy" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/database-name", "arn:aws:glue:us-east-1:111122223333:table/database-name/*" ], "Effect": "Allow" }, { "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "AWS/Glue/ZeroETL" } }, "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*", "Effect": "Allow" } ] }

Aggiungi la seguente politica di attendibilità per consentire al AWS Glue servizio di assumere il ruolo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Associa il ruolo di destinazione, KMS (opzionale) e Connection (opzionale) alla risorsa di destinazione

Associa il ruolo di destinazione sopra riportato alla risorsa di destinazione, ad esempio il AWS Glue database. Facoltativamente, per il database di destinazione è possibile configurare KMS per crittografare i dati prima dell'archiviazione nella tabella iceberg di destinazione e Connection ARN per accedere al bucket S3. AWS Glue Ciò consentirà di accedere AWS Glue ai dati sulla posizione S3 di destinazione utilizzando il ruolo fornito e, facoltativamente, di crittografarli utilizzando la chiave KMS fornita. Se il bucket S3 di destinazione è configurato per essere accessibile utilizzando un determinato VPC, è possibile associare l'ARN di connessione per consentire l'esecuzione dell'elaborazione AWS Glue all'interno di quel VPC. Per ulteriori informazioni sulla configurazione di un VPC, consulta Creare un VPC.

La schermata mostra la configurazione di un target in un'integrazione zero-ETL.

Oppure utilizzando la AWS Glue CLI/API:

aws glue create-integration-resource-property \ --resource-arn arn:aws:glue:us-east-1:123456789012:database/database-name \ --target-processing-properties '{"RoleArn": "arn:aws:iam::123456789012:role/gmi_target_role"}' \ --region us-east-1

(Facoltativo) Configura le proprietà della tabella di destinazione

Facoltativamente, è possibile configurare le proprietà della tabella di destinazione per le tabelle di destinazione che verranno sincronizzate con la destinazione.

Puoi configurare queste impostazioni nella sezione Impostazioni di output del flusso di lavoro per la creazione dell'integrazione nella AWS Glue console:

La schermata mostra la sezione Impostazioni di output con le opzioni di annidamento dello schema, le opzioni di partizionamento dei dati e la configurazione dei nomi della tabella di destinazione.

Quando si seleziona Specificare chiavi di partizione personalizzate, è possibile configurare le chiavi di partizione e le relative specifiche di funzione e conversione:

La schermata mostra le impostazioni di output con la configurazione delle chiavi di partizione personalizzate e la tabella Partition Spec Configuration.

Se l'origine e la destinazione si trovano nello stesso account, questa configurazione può essere eseguita come parte del flusso di lavoro di creazione dell'integrazione dall'interfaccia utente della console. AWS Glue Ma se la destinazione si trova in un account diverso, è necessario completare questa configurazione prima di creare l'integrazione. Quando si utilizza la CLI o l'API, è necessario eseguire questa operazione prima di richiamare l'API Create-Integration anche quando sia l'origine che la destinazione si trovano nello stesso account. AWS Glue l'interfaccia utente della console incapsula semplicemente questa chiamata API per lo stesso scenario di account.

Se non è configurato, verranno utilizzati i valori predefiniti durante la sincronizzazione della tabella. Questa configurazione può anche essere modificata in qualsiasi momento dopo la creazione dell'integrazione.

Nota

Se questa proprietà viene aggiornata dopo la creazione dell'integrazione, potrebbe attivare una risincronizzazione completa della tabella quando la configurazione aggiornata è in conflitto con la configurazione esistente. Ad esempio, aggiornando la tabella «un-nesting» da 'No-Unnest' a 'Full-Unnest' o cambiando la colonna della partizione.

Utilizzo della CLI o dell'API:

aws glue create-integration-table-properties \ --resource-arn arn:aws:glue:us-east-1:123456789012:database/database-name \ --table-name table-name \ --target-table-config '{ "UnnestSpec":"TOPLEVEL"|"FULL"|"NOUNNEST", "PartitionSpec": [ { "FieldName":"string", "FunctionSpec":"string", "ConversionSpec":"string"} ... ], "TargetTableName":"string" }' \ --region us-east-1

Dopo aver configurato l'architettura Lakehouse di Amazon SageMaker con lo storage bucket Amazon S3 per uso generico, puoi procedere con il completamento della configurazione dell'integrazione. Configurazione dell'integrazione con la destinazione

Configurazione di un target del bucket Amazon S3 Tables

Questa sezione descrive i prerequisiti e i passaggi di configurazione per configurare Amazon S3 Tables come destinazione per l'integrazione zero-ETL, utilizzando l'architettura lakehouse di Amazon. SageMaker

Prima di creare un'integrazione Zero-ETL con Tabelle Amazon S3 come destinazione, è necessario completare le seguenti attività di configurazione:

  • Configurazione del bucket di tabelle Amazon S3 (e integrazione dei servizi di analisi)

  • Fornire la policy RBAC del catalogo

  • Creare un ruolo IAM

  • Associa il ruolo di destinazione, KMS (opzionale) e la connessione (opzionale) alla risorsa di destinazione

  • (Facoltativo) Configura le proprietà della tabella di destinazione

Configurazione del bucket di tabelle Amazon S3 (con integrazione dei servizi di analisi)

  1. Creare un bucket Tabelle S3 nel proprio account seguendo le istruzioni in Nozioni di base su Tabelle Amazon S3.

  2. Abilita le integrazioni di Analytics con il tuo bucket S3-Table seguendo queste istruzioni: Integrazione dei servizi con AWS Amazon S3 Tables.

  3. Questo creerà un nuovo catalogo S3-Table in. AWS Lake Formation

Fornire la policy RBAC del catalogo

È necessario aggiungere le seguenti autorizzazioni alla Policy RBAC del catalogo per consentire le integrazioni tra l'origine e la destinazione del catalogo Tabelle Amazon S3.

La politica delle risorse di Target AWS Glue Catalog deve includere le autorizzazioni AWS Glue di servizio per. AuthorizeInboundIntegration Inoltre, è richiesta l'CreateInboundIntegrationautorizzazione sul principale di origine che crea l'integrazione o nella politica AWS Glue delle risorse di destinazione.

Nota

In uno scenario con più account, sia la politica delle risorse principale di origine che quella delle risorse AWS Glue del catalogo di destinazione devono includere glue:CreateInboundIntegration le autorizzazioni sulla risorsa.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:CreateInboundIntegration" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog/s3tablescatalog/*" ], "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/table-name" } } }, { "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog/s3tablescatalog/*" ], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/table-name" } } } ] }
Nota

Sostituiscila s3tablescatalog con il nome del catalogo principale delle tue tabelle S3 (se diverse). Il valore predefinito (quando si ospita S3-Table Catalog nello stesso account) è. s3tablescatalog

Creare un ruolo IAM

Creare un ruolo IAM con le seguenti autorizzazioni e relazioni di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3tables:ListTableBuckets", "s3tables:GetTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:GetNamespace", "s3tables:CreateNamespace", "s3tables:ListNamespaces", "s3tables:CreateTable", "s3tables:DeleteTable", "s3tables:GetTable", "s3tables:GetTableEncryption", "s3tables:ListTables", "s3tables:GetTableMetadataLocation", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/s3-table-bucket", "Effect": "Allow" }, { "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "AWS/Glue/ZeroETL" } }, "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*", "Effect": "Allow" } ] }

Aggiungi la seguente policy di fiducia nel ruolo IAM di destinazione per consentire a AWS Glue Service di assumerla:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Nota

Assicurarsi che non sia presente un'istruzione DENY esplicita per questo ruolo IAM di destinazione nella policy delle risorse del bucket S3-Tables. Un DENY esplicito sovrascriverebbe qualsiasi autorizzazione ALLOW e impedirebbe il corretto funzionamento dell'integrazione.

Associa il ruolo di destinazione, KMS (opzionale) e Connection (opzionale) alla risorsa di destinazione

Associa il ruolo target di cui sopra alla risorsa di destinazione. Facoltativamente, è possibile configurare KMS per crittografare i dati prima dell'archiviazione nella tabella iceberg di destinazione e Connection ARN per accedere al bucket S3 di destinazione. Se il bucket S3 di destinazione è configurato per essere accessibile utilizzando un determinato VPC, è possibile associare l'ARN di connessione per consentire l'esecuzione dell'elaborazione AWS Glue all'interno di quel VPC. Per ulteriori informazioni sulla configurazione di un VPC, consulta Creare un VPC.

Utilizzo della AWS Glue CLI/API:

aws glue create-integration-resource-property \ --resource-arn arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog/S3 table bucket name \ --target-processing-properties '{ "RoleArn": "arn:aws:iam::123456789012:role/target_role" }' \ --region us-east-1

(Facoltativo) Configura le proprietà della tabella di destinazione

Facoltativamente, è possibile configurare le proprietà della tabella di destinazione per le tabelle di destinazione che verranno sincronizzate con la destinazione. Si applicano le stesse regole descritte nella sezione sugli obiettivi S3 per uso generico.

Utilizzo della CLI o dell'API:

aws glue create-integration-table-properties \ --resource-arn arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog/S3 table bucket name \ --table-name table-name \ --target-table-config '' \ --region us-east-1

Dopo aver configurato lo storage Amazon S3-Tables utilizzando l'architettura Lakehouse di SageMaker Amazon, puoi procedere Configurazione dell'integrazione con la destinazione al completamento della configurazione dell'integrazione.

Configurazione di un target di storage gestito Amazon Redshift

Questa sezione descrive i prerequisiti e i passaggi di configurazione per configurare uno storage Amazon Redshift gestito (RMS) come destinazione per l'integrazione zero-ETL, utilizzando l'architettura lakehouse di Amazon. SageMaker

Prima di creare un'integrazione zero-ETL con un'architettura Lakehouse di Amazon SageMaker utilizzando lo storage gestito Redshift, devi completare le seguenti attività di configurazione:

  • Configura un cluster o un gruppo di lavoro Serverless Amazon Redshift

  • Registra l' Amazon Redshift integrazione con Lake Formation

  • Creazione di un catalogo gestito in Lake Formation

  • Configurazione delle autorizzazioni IAM

Configurazione dello storage Amazon Redshift gestito

Per configurare lo storage Amazon Redshift gestito per l'integrazione Zero-ETL:

Dopo aver configurato il catalogo Amazon SageMaker Lakehouse con lo storage Amazon Redshift gestito, puoi procedere con il Configurazione dell'integrazione con la destinazione completamento della configurazione dell'integrazione.

Configurazione di un obiettivo di data warehouse Amazon Redshift

Questa sezione descrive i prerequisiti e i passaggi di configurazione per configurare un Amazon Redshift data warehouse come destinazione per l'integrazione zero-ETL.

Prima di creare un'integrazione zero-ETL con un obiettivo di Amazon Redshift data warehouse, è necessario completare le seguenti attività di configurazione:

  • Configurare un Amazon Redshift cluster o un gruppo di lavoro Serverless

  • Configurazione della distinzione tra maiuscole e minuscole

  • Configurazione delle autorizzazioni IAM

Configurazione del Amazon Redshift data warehouse

Per configurare un Amazon Redshift data warehouse per l'integrazione Zero-ETL:

  1. Andare alla console Amazon Redshift e fare clic su Crea cluster o utilizzare un cluster esistente. Per creare un Amazon Redshift cluster, vedi Creazione di un cluster. Per un gruppo di lavoro Amazon Redshift serverless, fare clic su Crea gruppo di lavoro. Per creare un gruppo di lavoro Amazon Redshift serverless, consulta Creazione di un gruppo di lavoro con uno spazio dei nomi.

  2. Se crei un nuovo cluster, scegli una dimensione del cluster appropriata e assicurarsi che il cluster sia crittografato. Per Serverless, configurare le impostazioni del gruppo di lavoro in base alle proprie esigenze.

  3. Assicurati che il enable_case_sensitive_identifier parametro sia attivato per il Amazon Redshift gruppo di lavoro o il cluster di destinazione affinché l'integrazione abbia successo. Per ulteriori informazioni sull’attivazione della distinzione tra maiuscole e minuscole, consulta Turn on case sensitivity for your data warehouse nella Guida alla gestione di Amazon Redshift.

  4. Configura le autorizzazioni IAM per consentire all'integrazione Zero-ETL di accedere al tuo data warehouse. Amazon Redshift Sarà necessario creare un ruolo IAM con le seguenti autorizzazioni:

    • Autorizzazioni per accedere al cluster o al gruppo di lavoro Amazon Redshift

    • Autorizzazioni per creare e gestire database e tabelle in Amazon Redshift

    • CloudWatch e CloudWatch registra le autorizzazioni per il monitoraggio

  5. Una volta completata la configurazione del Amazon Redshift gruppo di lavoro o del cluster, è necessario configurare il data warehouse per le integrazioni zero-ETL. Per ulteriori informazioni consultare Nozioni base sulle integrazioni Zero-ETL nella Guida alla gestione di Amazon Redshift.

Nota

Quando si utilizza un Amazon Redshift data warehouse come destinazione, l'integrazione crea uno schema nel database specificato per archiviare i dati replicati. Il nome dello schema deriva dal nome dell'integrazione.

Nota

Il Amazon Redshift gruppo di lavoro o il cluster di destinazione deve avere il enable_case_sensitive_identifier parametro attivato affinché l'integrazione abbia successo.

Dopo aver configurato il Amazon Redshift data warehouse, puoi procedere con il Configurazione dell'integrazione con la destinazione completamento della configurazione dell'integrazione.

Configurazione dell'integrazione con la destinazione

Dopo aver configurato le risorse di origine e di destinazione, segui questi passaggi per completare la configurazione dell'integrazione:

  1. Vai alla pagina «Integrazioni zero-ETL» e avvia il flusso di lavoro per la creazione dell'integrazione.

  2. Seleziona la risorsa di origine configurata nei passaggi precedenti.

  3. Seleziona o specifica la risorsa di destinazione (stesso account o account multiplo) configurata nei passaggi precedenti.

  4. Seleziona il ruolo IAM di destinazione configurato in precedenza.

  5. Seleziona l'opzione Fix it for me (disponibile solo quando il target si trova nello stesso account).

    • Per il normale target Amazon S3 (AWS Glue Database) e S3-Table (Catalog), questo sarà:

      • Applica un servizio principale autorizzato alla politica delle risorse del catalogo di destinazione.

      • Applica un ARN principale di AWS Glue origine autorizzato alla politica delle risorse del catalogo di destinazione.

    • Per l' Amazon Redshift obiettivo, ciò consentirà di:

      • Applicare un servizio principale autorizzato sul Amazon Redshift cluster o sul gruppo di lavoro Serverless.

      • Applica un ARN AWS Glue di origine autorizzato al Amazon Redshift cluster o al gruppo di lavoro Serverless.

      • Associare un nuovo set di parametri con enable_case_sensitive_identifier = true.

Utilizza quanto segue per creare l'integrazione tramite API o CLI: CreateIntegration API.