Configurazione delle AWS integrazioni Oracle Database@ con Amazon Redshift - Oracle Database@AWS

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 delle AWS integrazioni Oracle Database@ con Amazon Redshift

Per configurare l'integrazione zero-ETL tra il tuo database Oracle e Amazon Redshift, completa i seguenti passaggi:

  1. Abilita Zero-ETL sulla tua rete ODB.

  2. Configura i prerequisiti del database Oracle.

  3. Configurare AWS Secrets Manager e AWS Key Management Service.

  4. Configura le autorizzazioni IAM.

  5. Configura le policy relative alle risorse di Amazon Redshift.

  6. Crea l'integrazione zero-ETL.

  7. Crea il database di destinazione in Amazon Redshift.

Passaggio 1: abilita Zero-ETL per la tua rete ODB

È possibile abilitare l'integrazione zero-ETL per la rete ODB associata al cluster VM di origine. Per impostazione predefinita, questa integrazione è disabilitata.

Per abilitare l'integrazione zero-ETL
  1. Aprire la console Oracle AWS Database@ all'indirizzo. https://console.aws.amazon.com/odb/

  2. Nel riquadro di navigazione, scegli Reti ODB.

  3. Seleziona la rete ODB per la quale desideri abilitare l'integrazione zero-ETL.

  4. Scegli Modifica.

  5. Seleziona zero-ETL.

  6. Scegli Continua e poi Modifica.

Per abilitare l'integrazione zero-ETL, utilizzate il update-odb-network comando con il parametro: --zero-etl-access

aws odb update-odb-network \ --odb-network-id odb-network-id \ --zero-etl-access ENABLED

Per abilitare l'integrazione zero-ETL per la rete ODB associata al cluster VM di origine, utilizzare il comando. update-odb-network Questo comando configura l'infrastruttura di rete richiesta per l'integrazione zero-ETL.

aws odb update-odb-network \ --odb-network-id your-odb-network-id \ --zero-etl-access ENABLED

Fase 2: Configurazione del database Oracle

Completa la configurazione del database Oracle come descritto nei Prerequisiti:

  • Creare utenti di replica e concedere le autorizzazioni necessarie.

  • Abilita i redo log archiviati.

  • Configura SSL (solo Oracle Exadata).

  • Configura gli utenti ASM, se applicabile (solo Oracle Exadata).

Fase 3: Configurare AWS Secrets Manager e AWS Key Management Service

Crea una chiave gestita dal cliente (CMK) e archivia le credenziali del database.

  1. Crea una CMK nel servizio di gestione delle AWS chiavi utilizzando il comando. create-key

    aws kms create-key \ --description "ODB Zero-ETL Integration Key" \ --key-usage ENCRYPT_DECRYPT \ --key-spec SYMMETRIC_DEFAULT
  2. Archivia le credenziali del database in AWS Secrets Manager.

    aws secretsmanager create-secret \ --name "ODBZeroETLCredentials" \ --description "Credentials for Oracle Database@AWS Zero-ETL integration" \ --kms-key-id your-cmk-key-arn \ --secret-string file://secret-content.json
  3. Allega una policy relativa alle risorse al segreto per consentire l'accesso a Oracle Database@AWS .

    aws secretsmanager put-resource-policy \ --secret-id "ODBZeroETLCredentials" \ --resource-policy file://secret-resource-policy.json

    Nel comando precedente, secret-resource-policy.json contiene il seguente codice JSON.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "zetl.odb.amazonaws.com" }, "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "*" } ] }
  4. Allega una politica delle risorse alla CMK. La politica delle risorse CMK deve includere le autorizzazioni sia per il principale del servizio Oracle Database@ che per il principale del AWS servizio Amazon Redshift per supportare l'integrazione zero-ETL crittografata.

    aws kms put-key-policy \ --key-id your-cmk-key-arn \ --policy-name default \ --policy file://cmk-resource-policy.json

    Il file deve includere le seguenti dichiarazioni politiche. cmk-resource-policy.json La prima istruzione consente l'accesso al AWS servizio Oracle Database@ e la seconda istruzione consente ad Amazon Redshift di creare concessioni sulla chiave KMS per operazioni di dati crittografati.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Allow ODB service access", "Effect": "Allow", "Principal": { "Service": "zetl.odb.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant" ], "Resource": "*" }, { "Sid": "Allows the Redshift service principal to add a grant to a KMS key", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}": "{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } } ] }

Fase 4: Configurazione delle autorizzazioni IAM

Crea e allega policy IAM che consentano operazioni di integrazione zero-ETL.

aws iam create-policy \ --policy-name "ODBZeroETLIntegrationPolicy" \ --policy-document file://odb-zetl-iam-policy.json aws iam attach-user-policy \ --user-name your-iam-username \ --policy-arn policy-arn

La seguente politica concede le autorizzazioni necessarie.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ODBGlueIntegrationAccess", "Effect": "Allow", "Action": [ "glue:CreateIntegration", "glue:ModifyIntegration", "glue:DeleteIntegration", "glue:DescribeIntegrations", "glue:DescribeInboundIntegrations" ], "Resource": "*" }, { "Sid": "ODBZetlOperations", "Effect": "Allow", "Action": "odb:CreateOutboundIntegration", "Resource": "*" }, { "Sid": "ODBRedshiftFullAccess", "Effect": "Allow", "Action": [ "redshift:*", "redshift-serverless:*", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "sns:CreateTopic", "sns:Get*", "sns:List*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudwatch:PutMetricAlarm", "cloudwatch:EnableAlarmActions", "cloudwatch:DisableAlarmActions", "tag:GetResources", "tag:UntagResources", "tag:GetTagValues", "tag:GetTagKeys", "tag:TagResources" ], "Resource": "*" }, { "Sid": "ODBRedshiftDataAPI", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:CancelStatement", "redshift-data:ListStatements", "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-data:DescribeTable" ], "Resource": "*" }, { "Sid": "ODBKMSAccess", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ListKeys", "kms:CreateAlias", "kms:ListAliases" ], "Resource": "*" }, { "Sid": "ODBSecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "secretsmanager:ValidateResourcePolicy" ], "Resource": "*" } ] }

Fase 5: Configurazione delle policy relative alle risorse di Amazon Redshift

Configura politiche relative alle risorse sul tuo cluster Amazon Redshift per autorizzare le integrazioni in entrata.

aws redshift put-resource-policy \ --no-verify-ssl \ --resource-arn "your-redshift-cluster-arn" \ --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "redshift:AuthorizeInboundIntegration" ], "Condition": { "StringEquals": { "aws:SourceArn": "your-vm-cluster-arn" } } }, { "Effect": "Allow", "Principal": { "AWS": "your-account-id" }, "Action": [ "redshift:CreateInboundIntegration" ] } ] }' \ --region us-west-2
Suggerimento

In alternativa, puoi utilizzare l'opzione Fix it for me nella console. AWS Questa opzione configura automaticamente le politiche Amazon Redshift richieste senza che tu debba farlo manualmente.

Passaggio 6: crea l'integrazione zero-ETL utilizzando AWS Glue

Crea l'integrazione zero-ETL utilizzando il comando. AWS Glue create-integration In questo comando, specifichi il cluster di macchine virtuali di origine e lo spazio dei nomi Amazon Redshift di destinazione.

L'esempio seguente crea un'integrazione con un PDB denominato in pdb1 esecuzione in un cluster di macchine virtuali Exadata. È inoltre possibile creare un cluster di macchine virtuali autonome sostituendolo cloud-vm-cluster con l'cloud-autonomous-vm-clusterARN di origine. La specificazione di una chiave KMS è facoltativa. Se specifichi una chiave, questa può essere diversa da quella in cui hai creato. Fase 3: Configurare AWS Secrets Manager e AWS Key Management Service

aws glue create-integration \ --integration-name "MyODBZeroETLIntegration" \ --source-arn "arn:aws:odb:region:account:cloud-vm-cluster/cluster-id" \ --target-arn "arn:aws:redshift:region:account:namespace/namespace-id" \ --data-filter "include: pdb1.*.*" \ --integration-config '{ "RefreshInterval": "10", "IntegrationMode": "DEFAULT", "SourcePropertiesMap": { "secret-arn": "arn:aws:secretsmanager:region:account:secret:secret-name" } }' \ --description "Zero-ETL integration for Oracle to Amazon Redshift" \ --kms-key-id "arn:aws:kms:region:account:key/key-id"

Il comando restituisce un ARN di integrazione e imposta lo stato su. creating È possibile monitorare lo stato dell'integrazione utilizzando il describe-integrations comando.

aws glue describe-integrations \ --integration-identifier integration-id
Importante

È supportato un solo PDB per integrazione. Il filtro dati deve specificare un singolo PDB, ad esempio. include: pdb1.*.* L'origine deve trovarsi nella stessa AWS regione e nello stesso account in cui viene creata l'integrazione.

Fase 7: creare un database di destinazione in Amazon Redshift

Dopo che l'integrazione è attiva, crea un database di destinazione nel tuo cluster Amazon Redshift.

-- Connect to your Amazon Redshift cluster psql -h your-redshift-endpoint -U username -d database -- Create database from integration CREATE DATABASE target_database_name FROM INTEGRATION 'integration-id' DATABASE "source_pdb_name";

Dopo aver creato il database di destinazione, puoi interrogare i dati replicati.

-- List databases to verify creation \l -- Connect to the new database \c target_database_name -- List tables to see replicated data \dt

Verifica l'integrazione Zero-ETL

Verifica che l'integrazione funzioni interrogando lo stato dell'integrazione AWS Glue e assicurandoti che le modifiche a Oracle vengano replicate su Amazon Redshift.

Per verificare che l'integrazione zero-ETL funzioni correttamente
  1. Verifica lo stato dell'integrazione.

    aws glue describe-integrations \ --integration-identifier integration-id

    Lo stato dovrebbe essere ACTIVE oREPLICATING.

  2. Verifica la replica dei dati apportando modifiche al tuo database Oracle e verificando che vengano visualizzate in Amazon Redshift.

  3. Monitora i parametri di replica in Amazon CloudWatch (se disponibili).