選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

建立與 Amazon Redshift 的 Amazon RDS 零 ETL 整合

焦點模式
建立與 Amazon Redshift 的 Amazon RDS 零 ETL 整合 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

當您建立 Amazon RDS Aurora零 ETL 整合時,您可以指定來源 RDS 資料庫和目標 Amazon Redshift 資料倉儲。您也可以自訂加密設定和新增標籤。Amazon RDS Aurora會在來源資料庫及其目標之間建立整合。一旦整合處於作用中狀態,您插入來源資料庫的任何資料都會複寫至設定的 Amazon Redshift 目標。

必要條件

建立零 ETL 整合之前,您必須建立來源資料庫和目標 Amazon Redshift 資料倉儲。您還必須將 database新增為授權整合來源,以允許複寫至資料倉儲。

如需完成上述每個步驟的指示,請參閱 開始使用與 Amazon Redshift 的 Amazon RDS 零 ETL 整合

所需的許可

建立零 ETL 整合需要特定 IAM 許可。您至少需要執行下列動作的許可:

  • 為來源 RDS 資料庫建立零 ETL 整合。

  • 檢視並刪除所有零 ETL 整合。

  • 建立目標資料倉儲的傳入整合。如果相同帳戶擁有 Amazon Redshift 資料倉儲,且此帳戶是該資料倉儲的授權主體,則您不需要此許可。如需新增授權主體的相關資訊,請參閱設定 Amazon Redshift 資料倉儲的授權

下列範例政策示範建立和管理整合所需的最低權限許可。如果您的使用者或角色具有更廣泛的許可,例如 AdministratorAccess 受管政策,則可能不需要這些確切許可。

注意

Redshift Amazon Resource Name (ARN) 具有下列格式。請注意在無伺服器命名空間 UUID 之前使用正斜線 ((/),而不是冒號 (:)。

  • 佈建的叢集 – arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid

  • 無伺服器 – 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}:{account-id}:integration:*" ] }, { "Effect": "Allow", "Action": [ "redshift:CreateInboundIntegration" ], "Resource": [ "arn:aws:redshift:{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}:{account-id}:integration:*" ] }, { "Effect": "Allow", "Action": [ "redshift:CreateInboundIntegration" ], "Resource": [ "arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid" ] }] }

在不同帳戶中選擇目標資料倉儲

如果您打算指定位於另一個 中的目標 Amazon Redshift 資料倉儲 AWS 帳戶,則必須建立角色,允許目前帳戶中的使用者存取目標帳戶中的資源。如需詳細資訊,請參閱AWS 帳戶 在您擁有的另一個 IAM 使用者中提供存取權

角色必須具有下列許可,允許使用者檢視目標帳戶中可用的 Amazon Redshift 佈建叢集和 Redshift 無伺服器命名空間。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusters", "redshift-serverless:ListNamespaces" ], "Resource":[ "*" ] } ] }

角色必須具有下列信任策略,其可指定目標帳戶 ID。

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

如需建立角色的指示,請參閱使用自訂信任政策建立角色

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusters", "redshift-serverless:ListNamespaces" ], "Resource":[ "*" ] } ] }

角色必須具有下列信任策略,其可指定目標帳戶 ID。

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

如需建立角色的指示,請參閱使用自訂信任政策建立角色

建立零 ETL 整合

您可以使用 AWS Management Console、 AWS CLI或 RDS API 建立零 ETL 整合。

依預設,RDS for MySQL 會立即清除二進位日誌檔。由於零 ETL 整合依賴二進位日誌將資料從來源複寫到目標,因此來源資料庫的保留期間必須至少為一小時。建立整合後,Amazon RDS 會檢查所選來源資料庫的二進位日誌檔案保留期間。如果目前值為 0 小時,Amazon RDS 會自動將其變更為 1 小時。否則,此值保持不變。

建立零 ETL 整合
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在左側導覽窗格中,選擇零 ETL 整合

  3. 選擇建立零 ETL 整合

  4. 對於整合識別符,輸入整合的名稱。此名稱最多可有 63 個英數字元,且可包含連字號。

  5. 選擇 Next (下一步)

  6. 針對來源,選取資料來源的 RDS 資料庫

    注意

    如果未正確設定資料庫參數,RDS 即會通知您。如果您收到此訊息,您可以選擇為我修正或手動設定它們。如需手動修正它們的指示,請參閱 步驟 1:建立自訂資料庫參數群組。

    修改資料庫參數需要重新開機。建立整合之前,重新啟動必須完成,且新的參數值必須成功套用至資料庫

  7. 成功設定來源資料庫後,請選擇下一步

  8. 針對目標,執行下列動作:

    1. (選用) 若要 AWS 帳戶 對 Amazon Redshift 目標使用不同的 ,請選擇指定不同的帳戶。然後,輸入 IAM 角色的 ARN,該角色擁有顯示您資料倉儲的許可。如需建立 IAM 角色的指示,請參閱 在不同帳戶中選擇目標資料倉儲

    2. 針對 Amazon Redshift 資料倉儲,從來源資料庫選取複寫資料的目標。您可以選擇佈建的 Amazon Redshift 叢集或 Redshift 無伺服器命名空間做為目標。

    注意

    如果未正確設定所指定資料倉儲的資源政策或區分大小寫設定,RDS 即會通知您。如果您收到此訊息,您可以選擇為我修正或手動設定它們。如需手動修正它們的指示,請參閱《Amazon Redshift 管理指南》中的開啟資料倉儲的區分大小寫設定資料倉儲的授權

    修改已佈建 Redshift 叢集的區分大小寫需要重新開機。在可以建立整合之前,必須先完成重新開機,且新參數值必須成功套用至叢集。

    如果您選取的來源和目標位於不同的 AWS 帳戶中,則 Amazon RDS 無法為您修正這些設定。您必須導覽至其他帳戶,然後在 Amazon Redshift 中手動修正這些設定。

  9. 正確設定了目標資料倉儲後,即可選擇下一步

  10. (選用) 對於標籤,將一或多個標籤新增至整合。如需詳細資訊,請參閱標記 Amazon RDS 資源

  11. 對於加密,指定您想要加密整合的方式。根據預設,RDS 會加密與 的所有整合 AWS 擁有的金鑰。若要改為選擇客戶受管金鑰,請啟用自訂加密設定,然後選擇要用於加密的 KMS 金鑰。如需詳細資訊,請參閱加密 Amazon RDS 資源

    可選擇性地新增加密內容。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的加密內容

    注意

    除了您新增的任何 之外,Amazon RDS 還會新增下列加密內容對:

    • aws:redshift:integration:arn - IntegrationArn

    • aws:servicename:id - Redshift

    這可減少您可以新增的配對總數,從 8 到 6,並有助於授予限制條件的整體字元限制。如需詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的使用授予限制

  12. 選擇 Next (下一步)

  13. 檢閱您的整合設定,然後選擇建立零 ETL 整合

    如果建立失敗,請參閱 我無法建立零ETL整合,取得疑難排解步驟。

整合建立時的狀態為 Creating,而目標 Amazon Redshift 資料倉儲的狀態為 Modifying。在此期間,您無法查詢資料倉儲或對其進行任何組態變更。

成功建立整合時,整合和目標 Amazon Redshift 資料倉儲的狀態都會變更為 Active

RDS 主控台

建立零 ETL 整合
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在左側導覽窗格中,選擇零 ETL 整合

  3. 選擇建立零 ETL 整合

  4. 對於整合識別符,輸入整合的名稱。此名稱最多可有 63 個英數字元,且可包含連字號。

  5. 選擇 Next (下一步)

  6. 針對來源,選取資料來源的 RDS 資料庫

    注意

    如果未正確設定資料庫參數,RDS 即會通知您。如果您收到此訊息,您可以選擇為我修正或手動設定它們。如需手動修正它們的指示,請參閱 步驟 1:建立自訂資料庫參數群組。

    修改資料庫參數需要重新開機。建立整合之前,重新啟動必須完成,且新的參數值必須成功套用至資料庫

  7. 成功設定來源資料庫後,請選擇下一步

  8. 針對目標,執行下列動作:

    1. (選用) 若要 AWS 帳戶 對 Amazon Redshift 目標使用不同的 ,請選擇指定不同的帳戶。然後,輸入 IAM 角色的 ARN,該角色擁有顯示您資料倉儲的許可。如需建立 IAM 角色的指示,請參閱 在不同帳戶中選擇目標資料倉儲

    2. 針對 Amazon Redshift 資料倉儲,從來源資料庫選取複寫資料的目標。您可以選擇佈建的 Amazon Redshift 叢集或 Redshift 無伺服器命名空間做為目標。

    注意

    如果未正確設定所指定資料倉儲的資源政策或區分大小寫設定,RDS 即會通知您。如果您收到此訊息,您可以選擇為我修正或手動設定它們。如需手動修正它們的指示,請參閱《Amazon Redshift 管理指南》中的開啟資料倉儲的區分大小寫設定資料倉儲的授權

    修改已佈建 Redshift 叢集的區分大小寫需要重新開機。在可以建立整合之前,必須先完成重新開機,且新參數值必須成功套用至叢集。

    如果您選取的來源和目標位於不同的 AWS 帳戶中,則 Amazon RDS 無法為您修正這些設定。您必須導覽至其他帳戶,然後在 Amazon Redshift 中手動修正這些設定。

  9. 正確設定了目標資料倉儲後,即可選擇下一步

  10. (選用) 對於標籤,將一或多個標籤新增至整合。如需詳細資訊,請參閱標記 Amazon RDS 資源

  11. 對於加密,指定您想要加密整合的方式。根據預設,RDS 會加密與 的所有整合 AWS 擁有的金鑰。若要改為選擇客戶受管金鑰,請啟用自訂加密設定,然後選擇要用於加密的 KMS 金鑰。如需詳細資訊,請參閱加密 Amazon RDS 資源

    可選擇性地新增加密內容。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的加密內容

    注意

    除了您新增的任何 之外,Amazon RDS 還會新增下列加密內容對:

    • aws:redshift:integration:arn - IntegrationArn

    • aws:servicename:id - Redshift

    這可減少您可以新增的配對總數,從 8 到 6,並有助於授予限制條件的整體字元限制。如需詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的使用授予限制

  12. 選擇 Next (下一步)

  13. 檢閱您的整合設定,然後選擇建立零 ETL 整合

    如果建立失敗,請參閱 我無法建立零ETL整合,取得疑難排解步驟。

整合建立時的狀態為 Creating,而目標 Amazon Redshift 資料倉儲的狀態為 Modifying。在此期間,您無法查詢資料倉儲或對其進行任何組態變更。

成功建立整合時,整合和目標 Amazon Redshift 資料倉儲的狀態都會變更為 Active

若要使用 建立零 ETL 整合 AWS CLI,請使用 create-integration 命令搭配下列選項:

  • --integration-name - 指定整合的名稱。

  • --source-arn – 指定 RDS 資料庫 的 ARN,該叢集將成為整合的來源。

  • --target-arn – 指定 Amazon Redshift 資料倉儲的 ARN,它將會成為整合目標。

對於 Linux、 macOS或 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

在 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

若要使用 建立零 ETL 整合 AWS CLI,請使用 create-integration 命令搭配下列選項:

  • --integration-name - 指定整合的名稱。

  • --source-arn – 指定 RDS 資料庫 的 ARN,該叢集將成為整合的來源。

  • --target-arn – 指定 Amazon Redshift 資料倉儲的 ARN,它將會成為整合目標。

對於 Linux、 macOS或 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

在 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

若要使用 Amazon RDS API 建立零 ETL 整合,請搭配下列參數使用 CreateIntegration 操作:

  • IntegrationName - 指定整合的名稱。

  • SourceArn – 指定 RDS 資料庫 的 ARN,該叢集將成為整合的來源。

  • TargetArn – 指定 Amazon Redshift 資料倉儲的 ARN,它將會成為整合目標。

若要使用 Amazon RDS API 建立零 ETL 整合,請搭配下列參數使用 CreateIntegration 操作:

  • IntegrationName - 指定整合的名稱。

  • SourceArn – 指定 RDS 資料庫 的 ARN,該叢集將成為整合的來源。

  • TargetArn – 指定 Amazon Redshift 資料倉儲的 ARN,它將會成為整合目標。

加密與客戶受管金鑰的整合

如果您在建立整合 AWS 擁有的金鑰 時指定自訂 KMS 金鑰,而不是 ,則金鑰政策必須提供 Amazon Redshift 服務主體對 CreateGrant動作的存取權。此外,它必須允許目前的使用者對 DescribeKeyCreateGrant動作執行 。

下列範例政策示範如何在金鑰政策中提供必要的許可。它包含內容索引鍵,以進一步減少許可範圍。

{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "Enables IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:root" }, "Action": "kms:*", "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" ] } } }, { "Sid": "Allows the current user or role to add a grant to a KMS key", "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.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current uer or role to retrieve information about a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "Enables IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:root" }, "Action": "kms:*", "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" ] } } }, { "Sid": "Allows the current user or role to add a grant to a KMS key", "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.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current uer or role to retrieve information about a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}:role/{role-name}" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }

如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的建立金鑰政策

後續步驟

在成功建立零 ETL 整合之後,您必須在目標 Amazon Redshift 叢集或工作群組內建立目的地資料庫。然後,您可以開始將資料新增至來源 RDS 資料庫,並在 Amazon Redshift 中查詢。如需指示,請參閱在 Amazon Redshift 中建立目的地資料庫

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。