Creazione di integrazioni Zero-ETL di Amazon RDS con un Amazon SageMaker Lakehouse - Amazon Relational Database Service

Creazione di integrazioni Zero-ETL di Amazon RDS con un Amazon SageMaker Lakehouse

Quando crei un’integrazione Zero-ETL di Amazon RDS con un lakehouse Amazon SageMaker, specifichi il database RDS di origine e il catalogo gestito AWS Glue di destinazione. Puoi anche personalizzare le impostazioni di crittografia e aggiungere tag. Amazon RDS crea un’integrazione tra il database di origine e la sua destinazione. Dopo aver attivato l’integrazione, tutti i dati che inserisci nel database di origine verranno replicati nella destinazione configurata.

Prerequisiti

Prima di creare un’integrazione Zero-ETL con un lakehouse Amazon SageMaker, devi creare un database di origine e un catalogo gestito AWS Glue di destinazione. Devi anche consentire la replica nel catalogo aggiungendo il database come origine di integrazione autorizzata.

Per istruzioni su come completare ciascuno di questi passaggi, consulta Guida introduttiva alle integrazioni Zero-ETL di Amazon RDS.

Autorizzazioni richieste

Per creare un’integrazione Zero-ETL con un lakehouse Amazon SageMaker occorrono alcune autorizzazioni IAM. Come requisito minimo, dovrai disporre delle autorizzazioni per eseguire le seguenti operazioni:

  • Creazione di integrazioni Zero-ETL per il database RDS di origine.

  • Visualizzazione ed eliminazione di tutte le integrazioni Zero-ETL.

  • Creazione di integrazioni in entrata nel catalogo gestito AWS Glue di destinazione.

  • Accedi ai bucket Amazon S3 utilizzati dal catalogo gestito AWS Glue.

  • Usa le chiavi AWS KMS per la crittografia se è configurata una crittografia personalizzata.

  • Registrare le risorse con Lake Formation.

  • Inserisci la policy delle risorse nel catalogo gestito AWS Glue per autorizzare le integrazioni in entrata.

La seguente policy di esempio mostra le autorizzazioni con privilegi minimi richieste per creare e gestire le integrazioni con un lakehouse Amazon SageMaker. Potresti non aver bisogno di queste autorizzazioni esatte se il tuo utente o ruolo dispone di autorizzazioni più ampie, come una policy gestita AdministratorAccess.

Inoltre, è necessario configurare una policy delle risorse sul catalogo gestito AWS Glue di destinazione per autorizzare le integrazioni in entrata. Usa il seguente comando AWS CLI per applicare la policy delle risorse.

aws glue put-resource-policy \ --policy-in-json '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:rds:region:account_id:db:source_name" } } }, { "Effect": "Allow", "Principal": { "AWS": "account_id" }, "Action": ["glue:CreateInboundIntegration"], "Resource": ["arn:aws:glue:region:account_id:catalog/catalog_name"] } ] }' \ --region region
Nota

Il nome della risorsa Amazon (ARN) del catalogo Glue presenta il seguente formato:

  • Catalogo Glue — arn:aws:glue:{region}:{account-id}:catalog/catalog-name

Scelta di un catalogo gestito AWS Glue di destinazione in un account diverso

Se prevedi di specificare un catalogo gestito AWS Glue di destinazione che si trova in un Account AWS diverso, devi creare un ruolo che consenta agli utenti dell’account corrente di accedere alle risorse dell’account di destinazione. Per ulteriori informazioni, consulta Fornire l’accesso a un utente IAM in un altro Account AWS di proprietà dell’utente.

Il ruolo deve disporre delle seguenti autorizzazioni, che consentono all’utente di visualizzare i cataloghi AWS Glue disponibili nell’account di destinazione.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "glue:GetCatalog" ], "Resource":[ "*" ] } ] }

Il ruolo deve avere la seguente policy di attendibilità, che specifica l’ID dell’account di destinazione.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:root" }, "Action":"sts:AssumeRole" } ] }

Per istruzioni sulla creazione del ruolo, consulta Creazione di un ruolo utilizzando policy di attendibilità personalizzate.

Creazione di integrazioni Zero-ETL con un Amazon SageMaker Lakehouse

Puoi creare integrazioni Zero-ETL con un lakehouse Amazon SageMaker utilizzando la AWS Management Console, l’interfaccia AWS CLI o l’API RDS.

Importante

Le integrazioni Zero-ETL con un lakehouse Amazon SageMaker non supportano le operazioni di aggiornamento o risincronizzazione. Se riscontri problemi con un’integrazione dopo la creazione, devi eliminarla e crearne una nuova.

Per impostazione predefinita, RDS per MySQL elimina immediatamente i file di log binari. Poiché le integrazioni Zero-ETL si basano sui log binari per replicare i dati dall’origine alla destinazione, il periodo di conservazione del database di origine deve essere di almeno un’ora. Non appena crei un’integrazione, Amazon RDS verifica il periodo di conservazione dei file di log binari per il database di origine selezionato. Se il valore corrente è 0 ore, Amazon RDS lo modifica automaticamente in 1 ora. In caso contrario, il valore rimane invariato.

Per creare un’integrazione Zero-ETL con un lakehouse Amazon SageMaker
  1. Accedi alla AWS Management Console e apri la console Amazon RDS all’indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione a sinistra, scegli Interfacce di rete.

  3. Scegli Crea un’integrazione Zero-ETL.

  4. In Identificatore dell’integrazione, inserisci un nome per l’integrazione. Il nome può contenere fino a 63 caratteri alfanumerici e può includere trattini.

  5. Scegli Next (Successivo).

  6. Come Origine, seleziona il database RDS da cui provengono i dati.

    Nota

    RDS avvisa l’utente se i parametri del DB non sono configurati correttamente. Se ricevi questo messaggio, puoi scegliere Correggi per me o configurarli manualmente. Per istruzioni su come correggerli manualmente, consulta Fase 1: creazione di un gruppo di parametri del di database personalizzato.

    La modifica dei parametri del DB richiede un riavvio. Prima di poter creare l’integrazione, è necessario completare il riavvio e applicare correttamente i nuovi valori del parametro al database.

  7. Una volta completata la configurazione del database di origine, scegli Successivo.

  8. Per Destinazione, esegui queste operazioni:

    1. (Facoltativo) Per utilizzare un Account AWS diverso per il lakehouse Amazon SageMaker di destinazione, scegli Specifica un account diverso. Quindi, inserisci l’ARN di un ruolo IAM con le autorizzazioni per visualizzare i cataloghi AWS Glue. Per istruzioni su come creare il ruolo IAM, consulta Scelta di un catalogo gestito AWS Glue di destinazione in un account diverso.

    2. Per Catalogo AWS Glue, seleziona la destinazione per i dati replicati dal database di origine. Puoi selezionare un catalogo AWS Glue gestito esistente come destinazione.

    3. Il ruolo IAM di destinazione deve descrivere le autorizzazioni sul catalogo di destinazione e deve disporre delle seguenti autorizzazioni:

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "glue:GetCatalog", "Resource": [ "arn:aws:glue:us-east-1:111122223333:catalog/*", "arn:aws:glue:us-east-1:111122223333:catalog" ] } ] }

      Il ruolo IAM di destinazione deve avere la relazione di trust seguente:

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    4. È necessario concedere al ruolo IAM di destinazione le autorizzazioni di descrizione del ruolo per il catalogo gestito AWS Glue di destinazione con il ruolo di amministratore Lake Formation creato in Passaggio 3b: creazione di un catalogo AWS Glue per l’integrazione Zero-ETL con Amazon SageMaker AI.

    Nota

    RDS ti avvisa se le policy relative alle risorse o le impostazioni di configurazione per il catalogo gestito AWS Glue specificato non sono configurate correttamente. Se ricevi questo messaggio, puoi scegliere Correggi per me o configurarli manualmente.

    Se l’origine e la destinazione selezionate si trovano in Account AWS diversi, Amazon RDS non può correggere queste impostazioni per te. Devi accedere all’altro account e correggerle manualmente in SageMaker Unified Studio.

  9. Una volta configurato correttamente il catalogo gestito AWS Glue, scegli Avanti.

  10. (Facoltativo) In Tag, aggiungi uno o più tag all’integrazione. Per ulteriori informazioni, consulta Tag delle risorse Amazon RDS.

  11. In Crittografia, specifica come eseguire la crittografia dell’integrazione. Per impostazione predefinita, RDS crittografa tutte le integrazioni con una Chiave di proprietà di AWS. Per scegliere invece una chiave gestita dal cliente, abilita Personalizza le impostazioni di crittografia e scegli una chiave KMS da utilizzare per la crittografia. Per ulteriori informazioni, consulta Crittografia delle risorse Amazon RDS.

    Aggiungi un contesto di crittografia (facoltativo). Per ulteriori informazioni, consultare Contesto della crittografia nella Guida per gli sviluppatori di AWS Key Management Service.

    Nota

    Amazon RDS aggiunge le seguenti coppie di contesti di crittografia oltre a quelle che aggiungi tu:

    • aws:glue:integration:arn - IntegrationArn

    • aws:servicename:id - glue

    Ciò riduce il numero complessivo di coppie che puoi aggiungere da 8 a 6 e contribuisce al limite complessivo di caratteri del vincolo di concessione. Per ulteriori informazioni sulle autorizzazioni, consulta Utilizzo dei vincoli di concessione nella Guida per gli sviluppatori di AWS Key Management Service.

  12. Scegli Next (Successivo).

  13. Rivedi le impostazioni dell’integrazione e scegli Crea un’integrazione Zero-ETL.

    Se la creazione ha esito negativo, consulta Risoluzione dei problemi delle integrazioni Zero-ETL di Amazon RDS per la procedura di risoluzione dei problemi.

Lo stato dell’integrazione è Creating mentre l’integrazione è in fase di creazione, mentre il lakehouse Amazon SageMaker di destinazione ha uno stato di Modifying. Durante questo periodo, non puoi eseguire query sul data warehouse o apportare modifiche alla configurazione.

Quando la creazione dell’integrazione viene completata correttamente, lo stato dell’integrazione e del lakehouse Amazon SageMaker di destinazione cambiano in Active.

Per preparare un catalogo gestito AWS Glue di destinazione per l’integrazione Zero-ETL con laAWS CLI, devi innanzitutto utilizzare il comando create-integration-resource-property con le seguenti opzioni:

  • --resource-arn: specifica l’ARN del catalogo gestito AWS Glue che sarà la destinazione dell’integrazione.

  • --target-processing-properties: specifica l’ARN del ruolo IAM per accedere al catalogo gestito AWS Glue di destinazione

aws glue create-integration-resource-property --region us-east-1 --resource-arn arn:aws:glue:region:account_id:catalog/catalog_name \ --target-processing-properties '{"RoleArn" : "arn:aws:iam::account_id:role/TargetIamRole"}'

Per creare un’integrazione Zero-ETL con un Amazon SageMaker Lakehouse utilizzando la AWS CLI, utilizza il comando create-integration con le seguenti opzioni:

  • --integration-name: specifica un nome per l’integrazione.

  • --source-arn: specifica l’ARN del database RDS che sarà l’origine dell’integrazione.

  • --target-arn: specifica l’ARN del catalogo gestito AWS Glue che sarà la destinazione dell’integrazione.

Per Linux, macOS o Unix:

aws rds create-integration \ --integration-name my-sagemaker-integration \ --source-arn arn:aws:rds:{region}:{account-id}:my-db \ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

Per Windows:

aws rds create-integration ^ --integration-name my-sagemaker-integration ^ --source-arn arn:aws:rds:{region}:{account-id}:my-db ^ --target-arn arn:aws:glue:{region}:{account-id}:catalog/catalog-name

Per creare un’integrazione Zero-ETL con Amazon SageMaker utilizzando l’API di Amazon RDS, utilizza l’operazione CreateIntegration con i seguenti parametri:

Nota

I nomi dei cataloghi sono limitati a 19 caratteri. Assicurati che il parametro IntegrationName soddisfi questo requisito qualora sia utilizzato come nome di catalogo.

  • IntegrationName: specifica un nome per l’integrazione.

  • SourceArn: specifica l’ARN del database RDS che sarà l’origine dell’integrazione.

  • TargetArn: specifica l’ARN del catalogo gestito AWS Glue che sarà la destinazione dell’integrazione.

Crittografia delle integrazioni con una chiave gestita dal cliente

Se specifichi una chiave KMS personalizzata anziché una Chiave di proprietà di AWS al momento della creazione di un’integrazione con Amazon SageMaker, la policy della chiave deve fornire al principale del servizio SageMaker Unified Studio l’accesso all’azione CreateGrant. Inoltre, deve consentire all’utente corrente di eseguire le operazioni DescribeKey e CreateGrant.

La seguente policy di esempio mostra come fornire le autorizzazioni richieste nella policy della chiave. Include chiavi contestuali per ridurre ulteriormente l’ambito delle autorizzazioni.

JSON
{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "EnablesIAMUserPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "GlueServicePrincipalAddGrant", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "AllowsCurrentUserRoleAddGrantKMSKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/{role-name}" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}":"{context-value}", "kms:ViaService": "rds.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "AllowsCurrentUserRoleRetrieveKMSKeyInformation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

Per ulteriori informazioni, consulta Creazione di una policy delle chiavi nella Guida per gli sviluppatori di AWS Key Management Service.

Passaggi successivi

Dopo aver creato con successo un’integrazione Zero-ETL con Amazon SageMaker, puoi iniziare ad aggiungere dati al database RDS di origine ed eseguire query su di essi nel tuo lakehouse Amazon SageMaker. I dati verranno replicati automaticamente e resi disponibili per carichi di lavoro di analisi e machine learning.