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à.
Creazione di ETL integrazioni zero di Amazon RDS con Amazon Redshift
Quando crei un'ETLintegrazione zero di Amazon RDS , specifichi il database di origine, il e il data warehouse Amazon Redshift di destinazione. Puoi anche personalizzare le impostazioni di crittografia e aggiungere tag. Amazon RDS crea un'integrazione tra il del database di origine e la sua destinazione. Una volta che l'integrazione è attiva, tutti i dati inseriti nel del database di origine verranno replicati nel target Amazon Redshift configurato.
Argomenti
Prerequisiti
Prima di creare un'ETLintegrazione zero, devi creare un di database di origine e un data warehouse Amazon Redshift di destinazione. È inoltre necessario consentire la replica nel data warehouse aggiungendo il di integrazione autorizzata.
Per istruzioni su come completare ciascuno di questi passaggi, consulta Guida introduttiva alle ETL integrazioni zero di Amazon RDS con Amazon Redshift.
Autorizzazioni richieste
Sono necessarie determinate IAM autorizzazioni per creare un'integrazione zero. ETL Come requisito minimo, dovrai disporre delle autorizzazioni per eseguire le seguenti operazioni:
Crea ETL integrazioni zero per il cluster DB del RDSdatabase di origine.
Visualizza ed elimina tutte le integrazioni zero. ETL
Creazione di integrazioni in entrata nel data warehouse di destinazione. Non hai bisogno di questa autorizzazione se lo stesso account possiede il data warehouse Amazon Redshift e questo account è il principale autorizzato di tale data warehouse. Per informazioni sull'aggiunta di principali autorizzati, consulta Configurazione dell'autorizzazione per il data warehouse Amazon Redshift.
La seguente policy di esempio mostra le autorizzazioni con privilegi minimi richieste per creare e gestire le integrazioni. Potresti non aver bisogno di queste autorizzazioni esatte se il tuo utente o ruolo dispone di autorizzazioni più ampie, come una policy gestita. AdministratorAccess
Nota
Redshift Amazon Resource Names (ARNs) hanno il seguente formato. Nota l'uso di una barra ((/
) anziché dei due punti (:
) prima dello spazio dei nomi serverless. UUID
-
Cluster con provisioning:
arn:aws:redshift:{region}:{account-id}:namespace:
namespace-uuid
-
Serverless:
arn:aws:redshift-serverless:{region}:{account-id}:namespace/
namespace-uuid
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "rds:CreateIntegration" ], "Resource": [ "arn:aws:rds:
{region}
:{account-id}
:db:source-db
", "arn:aws:rds:{region}
:{account-id}
:integration:*" ] }, { "Effect": "Allow", "Action": [ "rds:DescribeIntegrations" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "rds:DeleteIntegration", "rds:ModifyIntegration" ], "Resource": [ "arn:aws:rds:{region}
::integration:*" ] }, { "Effect": "Allow", "Action": [ "redshift:CreateInboundIntegration" ], "Resource": [ "arn:aws:redshift:
{account-id}
{region}
::namespace:
{account-id}
namespace-uuid
" ] }] }
Scelta di un data warehouse di destinazione in un account diverso
Se prevedi di specificare un data warehouse Amazon Redshift di destinazione che si trova in un altro Account AWS, 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 IAM utente in un altro Account AWS che possiedi.
Il ruolo deve disporre delle seguenti autorizzazioni, che consentono all'utente di visualizzare i cluster Amazon Redshift con provisioning e gli spazi dei nomi Redshift Serverless disponibili nell'account di destinazione.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusters", "redshift-serverless:ListNamespaces" ], "Resource":[ "*" ] } ] }
Il ruolo deve avere la seguente policy di attendibilità, che specifica l'ID dell'account di destinazione.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": "arn:aws:iam::
:root" }, "Action":"sts:AssumeRole" } ] }
{external-account-id}
Per istruzioni sulla creazione del ruolo, consulta Creazione di un ruolo utilizzando policy di attendibilità personalizzate.
Creare zero ETL integrazioni
È possibile creare un'integrazione zero, un'ETLintegrazione il AWS Management Console, il AWS CLI, o il RDSAPI.
Per impostazione predefinita, RDS for My elimina SQL immediatamente i file di registro binari. Poiché ETL le integrazioni zero si basano sui log binari per replicare i dati dall'origine alla destinazione, il periodo di conservazione per il 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 lo modifica RDS automaticamente in 1 ora. In caso contrario, il valore rimane invariato.
Per creare un'ETLintegrazione zero
Accedi a AWS Management Console e apri la RDS console Amazon all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel riquadro di navigazione a sinistra, scegli Zero- integrazioni. ETL
-
Scegli Crea ETL integrazione zero.
-
In Identificatore dell'integrazione, inserisci un nome per l'integrazione. Il nome può contenere fino a 63 caratteri alfanumerici e può includere trattini.
-
Scegli Next (Successivo).
Per Source, seleziona il da cui provengono i dati.
Nota
ti RDS avvisa 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 DB personalizzato.
La modifica dei parametri del DB richiede un riavvio.
-
Una volta configurato correttamente il database di origine, scegli Avanti.
Per Destinazione, esegui queste operazioni:
(Facoltativo) Per utilizzare un altro Account AWS per il target Amazon Redshift, scegli Specificare un account diverso. Quindi, inserisci un IAM ruolo con le ARN autorizzazioni per visualizzare i tuoi data warehouse. Per istruzioni su come creare il IAM ruolo, consulta. Scelta di un data warehouse di destinazione in un account diverso
Puoi scegliere un cluster Amazon Redshift con provisioning o uno spazio dei nomi Redshift Serverless come destinazione.
Nota
RDSti avvisa se la politica delle risorse o le impostazioni di distinzione tra maiuscole e minuscole per il data warehouse specificato non sono configurate correttamente. Se ricevi questo messaggio, puoi scegliere Correggi per me o configurarli manualmente. Per istruzioni su come correggerli manualmente, consulta Attivazione della distinzione tra maiuscole e minuscole per il data warehouse e Configurazione dell'autorizzazione per il data warehouse nella Guida alla gestione di Amazon Redshift.
La modifica della distinzione tra maiuscole e minuscole per un cluster Redshift con provisioning richiede un riavvio. Prima di poter creare l'integrazione, è necessario completare il riavvio e applicare correttamente il nuovo valore del parametro al cluster.
Se la fonte e la destinazione selezionate sono diverse Account AWS, quindi Amazon RDS non può correggere queste impostazioni per te. Devi accedere all'altro account e correggerle manualmente in Amazon Redshift.
-
Una volta configurato correttamente il data warehouse di destinazione, scegli Avanti.
-
(Facoltativo) In Tag, aggiungi uno o più tag all'integrazione. Per ulteriori informazioni, consulta Etichettatura di RDS.
-
In Crittografia, specifica come eseguire la crittografia dell'integrazione. Per impostazione predefinita, RDS crittografa tutte le integrazioni con un Chiave di proprietà di AWS. Per scegliere invece una chiave gestita dal cliente, abilita Personalizza le impostazioni di crittografia e scegli una KMS chiave da utilizzare per la crittografia. Per ulteriori informazioni, consulta Crittografia delle risorse Amazon RDS.
Aggiungi un contesto di crittografia (facoltativo). Per ulteriori informazioni, consulta Contesto di crittografia nella AWS Key Management Service Guida per gli sviluppatori.
Nota
Amazon RDS aggiunge le seguenti coppie di contesti di crittografia oltre a quelle che aggiungi:
-
aws:redshift:integration:arn
-IntegrationArn
-
aws:servicename:id
-Redshift
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, vedete Utilizzo dei vincoli di concessione nel AWS Key Management Service Guida per gli sviluppatori.
-
-
Scegli Next (Successivo).
Rivedi le impostazioni di integrazione e scegli Crea ETL integrazione zero.
Se la creazione ha esito negativo, consulta Non riesco a creare un'integrazione zero ETL per la procedura di risoluzione dei problemi.
Lo stato dell'integrazione è Creating
mentre l'integrazione è in fase di creazione, mentre lo stato del data warehouse Amazon Redshift di destinazione è 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 data warehouse Amazon Redshift di destinazione cambia in Active
.
Per creare un'ETLintegrazione zero utilizzando AWS CLI, utilizzate il comando create-integration con le seguenti opzioni:
-
--integration-name
: specifica un nome per l'integrazione. -
--source-arn
— Specificare il che sarà la fonte per l'integrazione. -
--target-arn
— Specificare il data warehouse ARN di Amazon Redshift che sarà l'obiettivo dell'integrazione.
In Linux, macOS, oppure Unix:
aws rds create-integration \ --integration-name
my-integration
\ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
\ --target-arn arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
In Windows:
aws rds create-integration ^ --integration-name
my-integration
^ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
^ --target-arn arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
Per creare un'ETLintegrazione zero utilizzando Amazon RDSAPI, utilizza l'CreateIntegration
operazione con i seguenti parametri:
-
IntegrationName
: specifica un nome per l'integrazione. -
SourceArn
— Specificare il che sarà la fonte per l'integrazione. -
TargetArn
— Specificare il data warehouse ARN di Amazon Redshift che sarà l'obiettivo dell'integrazione.
Crittografia delle integrazioni con una chiave gestita dal cliente
Se si specifica una KMS chiave personalizzata anziché una Chiave di proprietà di AWS quando crei un'integrazione, la policy chiave deve fornire al servizio Amazon Redshift l'accesso principale all'azioneCreateGrant
. Inoltre, deve consentire all'account o al ruolo richiedente di eseguire le azioni DescribeKey
eCreateGrant
.
I seguenti esempi di dichiarazioni politiche chiave illustrano le autorizzazioni richieste nel documento relativo alla policy. Alcuni esempi includono chiavi contestuali per ridurre ulteriormente l'ambito delle autorizzazioni.
La seguente dichiarazione politica consente all'account o al ruolo del richiedente di recuperare informazioni su una KMS chiave.
{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
{account-ID}
:role/{role-name}
" }, "Action":"kms:DescribeKey", "Resource":"*" }
La seguente dichiarazione politica consente all'account o al ruolo del richiedente di aggiungere una concessione a una chiave. KMS La chiave di kms:ViaService
condizione limita l'uso della KMS chiave alle richieste provenienti da AmazonRDS.
{ "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
{account-ID}
:role/{role-name}
" }, "Action":"kms:CreateGrant", "Resource":"*", "Condition":{ "StringEquals":{ "kms:EncryptionContext:{context-key}
":"{context-value}
", "kms:ViaService":"rds.{region}
.amazonaws.com" }, "ForAllValues:StringEquals":{ "kms:GrantOperations":[ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }
La seguente dichiarazione politica consente al responsabile del servizio Amazon Redshift di aggiungere una concessione a una KMS chiave.
{ "Effect":"Allow", "Principal":{ "Service":"redshift.amazonaws.com" }, "Action":"kms:CreateGrant", "Resource":"*", "Condition":{ "StringEquals":{ "kms:EncryptionContext:
{context-key}
":"{context-value}
", "aws:SourceAccount":"{account-ID}
" }, "ForAllValues:StringEquals":{ "kms:GrantOperations":[ "Decrypt", "GenerateDataKey", "CreateGrant" ] }, "ArnLike":{ "aws:SourceArn":"arn:aws:*:{region}
:{account-ID}
:integration:*" } } }
Per ulteriori informazioni, consulta Creazione di una politica chiave nel AWS Key Management Service Guida per gli sviluppatori.
Passaggi successivi
Dopo aver creato con successo un'ETLintegrazione zero, devi creare un database di destinazione all'interno del cluster o gruppo di lavoro Amazon Redshift di destinazione. Quindi, puoi iniziare ad aggiungere dati al del RDSdatabase di origine e interrogarli in Amazon Redshift. Per istruzioni, consulta Creazione di database di destinazione in Amazon Redshift.