設定零 ETL 整合目標 - AWS Glue

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

設定零 ETL 整合目標

設定零 ETL 整合的目標 AWS 時, 提供多種選項。目標可以是加密 Amazon Redshift 的資料倉儲或 Amazon SageMaker Lakehouse 目錄。

在選取零 ETL 整合的目標之前,您需要設定下列其中一個目標資源。

零 ETL 整合中目標的組態選項包括:

注意

您無法在建立後修改零 ETL 整合的目標。

使用一般 S3 儲存體設定 Amazon SageMaker Lakehouse 目錄

本節說明在零 ETL 整合中將一般 Amazon S3 儲存貯體設定為 Amazon SageMaker Lakehouse 目錄目標儲存體的先決條件和設定步驟。

設定整合的先決條件

使用一般 S3 儲存與 Amazon SageMaker Lakehouse 目錄建立零 ETL 整合之前,您需要完成下列設定任務: S3

  1. 設定 AWS Glue 資料庫

  2. 提供目錄 RBAC 政策

  3. 建立目標 IAM 角色

使用一般 Amazon S3 儲存體設定 Amazon SageMaker Lakehouse 目錄之後,您可以繼續設定與您的目標的整合完成整合設定。 Amazon S3

將 Amazon S3 資料表設定為目標

本節說明將 Amazon S3 Tables 設定為零 ETL 整合目標的先決條件和設定步驟。

設定整合的先決條件

在建立與 Amazon S3 Tables 作為目標的零 ETL 整合之前,您需要完成下列設定任務:

  1. 設定 Amazon S3 資料表儲存貯體

  2. 提供目錄 RBAC 政策

  3. 建立目標 IAM 角色

設定 Amazon S3 資料表儲存貯體

  1. 遵循 Amazon S3 Tables 入門中的指示,在您的帳戶中建立 S3 資料表儲存貯體。 Amazon S3

  2. 請依照下列指示啟用 Analytics 與 S3-Table 儲存貯體的整合:將 AWS 服務與 Amazon S3 Tables 整合

提供目錄 RBAC 政策

必須將下列許可新增至目錄 RBAC 政策,以允許來源和 Amazon S3 資料表目錄目標之間的整合。

Target AWS Glue Catalog 資源政策需要包含 AuthorizeInboundIntegration 的 Glue Service 許可。此外,建立整合的來源主體或目標 AWS Glue 資源政策中需要 CreateInboundIntegration 許可。

注意

對於跨帳戶案例,來源主體和目標 AWS Glue 目錄資源政策都需要在資源上包含 glue:CreateInboundIntegration 許可。

{ "Version": "2012-10-17", "Statement": [ { // Optional for same account but mandatory for cross account scenarios // Allow Alice to create Integration on Target Catalog "Principal": { "AWS": [ "arn:aws:iam::<source-account-id>:user/Alice" ] }, "Effect": "Allow", "Action": [ "glue:CreateInboundIntegration" ], "Resource": [ "arn:aws:glue:<region>:<Target-Account-Id>:catalog/<s3tablescatalog>/*" ], "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:dynamodb:<region>:<Account>:table/<table-name>" } } }, { // Required: Allow Glue to Authorize the Inbound Integration on behalf of Bob "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": [ "arn:aws:glue:<region>:<Target-Account-Id>:catalog/<s3tablescatalog>/*" ], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:dynamodb:<region>:<account-id>:table/<table-name>" } } } ] }
注意

<s3tablescatalog> 將 取代為 S3 資料表的目錄名稱。

建立目標 IAM 角色

建立具有下列許可和信任關係的目標 IAM 角色:

IAM 政策範例:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3tables:ListTableBuckets", "s3tables:GetTableBucket", "s3tables:GetTableBucketEncryption", "s3tables:GetNamespace", "s3tables:CreateNamespace", "s3tables:ListNamespaces", "s3tables:CreateTable", "s3tables:GetTable", "s3tables:GetTableEncryption", "s3tables:ListTables", "s3tables:GetTableMetadataLocation", "s3tables:UpdateTableMetadataLocation", "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": "arn:aws:s3tables:<region>:<account-id>: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" } ] }

在目標 IAM 角色中新增下列信任政策,以允許 AWS Glue Service 擔任該角色:

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

請確定 S3-Tables 儲存貯體資源政策中沒有此目標 IAM 角色的明確 DENY 陳述式。明確的 DENY 會覆寫任何允許許可,並防止整合正常運作。

使用 Amazon Redshift 受管儲存設定 Amazon SageMaker Lakehouse 目錄

本節說明設定具有 Amazon Redshift 受管儲存 (RMS) 的 Amazon SageMaker Lakehouse 目錄做為零 ETL 整合目標的先決條件和設定步驟。

設定整合的先決條件

使用 Redshift 受管儲存與 Amazon SageMaker Lakehouse 目錄建立零 ETL 整合之前,您需要完成下列設定任務:

  1. 設定 Amazon Redshift 叢集或 Serverless 工作群組

  2. 註冊與 Lake Formation 的 Amazon Redshift 整合

  3. 在 Lake Formation 中建立受管目錄

  4. 設定 IAM 許可

設定 Amazon Redshift 受管儲存

若要設定零 ETL 整合的 Amazon Redshift受管儲存:

  1. 建立或使用現有的 Amazon Redshift 叢集或 Serverless 工作群組。請確定目標 Amazon Redshift 工作群組或叢集已開啟 enable_case_sensitive_identifier 參數,以使整合成功。如需啟用區分大小寫的詳細資訊,請參閱《Amazon Redshift 管理指南》中的為您的資料倉儲開啟區分大小寫

  2. 在 目錄中註冊從 Redshift 整合 AWS Lake Formation。請參閱將 Amazon Redshift 叢集和命名空間註冊至 AWS Glue Data Catalog

  3. 在 中建立聯合或受管目錄 AWS Lake Formation。如需詳細資訊,請參閱:

  4. 設定目標角色的 IAM 許可。此角色需要存取 Redshift 和 Lake Formation 資源的許可。角色至少應具有:

    • 存取 Redshift 叢集或工作群組的許可

    • 存取 Lake Formation 目錄的許可

    • 在目錄中建立和管理資料表的許可

    • CloudWatch 和 CloudWatch Logs 監控許可

使用 Amazon Redshift 受管儲存設定 Amazon SageMaker Lakehouse 目錄之後,您可以繼續設定與您的目標的整合完成整合設定。

設定 Amazon Redshift 資料倉儲目標

本節說明將 Amazon Redshift 資料倉儲設定為零 ETL 整合目標的先決條件和設定步驟。

設定整合的先決條件

在建立與 Amazon Redshift 資料倉儲目標的零 ETL 整合之前,您需要完成下列設定任務:

  1. 設定 Amazon Redshift 叢集或 Serverless 工作群組

  2. 設定區分大小寫

  3. 設定 IAM 許可

設定 Amazon Redshift 資料倉儲

若要設定零 ETL 整合 Amazon Redshift 的資料倉儲:

  1. 導覽至 Amazon Redshift 主控台,然後按一下建立叢集或使用現有的叢集。對於 Amazon Redshift Serverless,按一下建立工作群組

  2. 如果建立新的叢集,請選擇適當的叢集大小,並確保您的叢集已加密。對於 Serverless,根據您的需求設定工作群組設定。

  3. 請確定目標 Amazon Redshift 工作群組或叢集已開啟 enable_case_sensitive_identifier 參數,以使整合成功。如需啟用區分大小寫的詳細資訊,請參閱《Amazon Redshift 管理指南》中的為您的資料倉儲開啟區分大小寫

  4. 設定 IAM 許可以允許零 ETL 整合存取 Amazon Redshift 您的資料倉儲。您需要建立具有下列許可的 IAM 角色:

    • 存取 Amazon Redshift 叢集或工作群組的許可

    • 在 中建立和管理資料庫和資料表的許可 Amazon Redshift

    • CloudWatch 和 Amazon CloudWatch Logs 監控許可

  5. Amazon Redshift 工作群組或叢集設定完成後,您需要為零 ETL 整合設定資料倉儲。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的零 ETL 整合入門

注意

使用 Amazon Redshift 資料倉儲做為目標時,整合會在指定的資料庫中建立結構描述,以存放複寫的資料。結構描述名稱衍生自整合名稱。

設定 Amazon Redshift 資料倉儲之後,您可以繼續設定與您的目標的整合完成整合設定。

設定與您的目標的整合

在您設定目標資源並選取連線並指定來源 IAM 角色之後,請依照下列步驟完成整合設定:

  1. 指定您在先前步驟中設定的目標。

  2. 選取 AWS Glue 為我固定選項。對於 Amazon Redshift 目標,這會:

    • 在 Amazon Redshift 叢集或 Serverless 工作群組上套用授權的服務主體。

    • 將授權的 AWS Glue 來源 ARN 套用至 Amazon Redshift 叢集或 Serverless 工作群組。

    • 將新的參數群組與 建立關聯enable_case_sensitive_identifier = true

    螢幕擷取畫面顯示選擇零 ETL 整合中的目標。
  3. 提供整合名稱,然後選擇建立和啟動整合

  4. 一旦您的整合處於作用中狀態,請導覽至整合詳細資訊頁面,然後選擇從整合建立資料庫

  5. 最後,您可以導覽至 Redshift 查詢編輯器,並連線至資料庫以驗證快照和增量資料。

注意

命名空間或目錄名稱中只能使用小寫英數字元和底線。這與 AWS Glue Data Catalog 允許建立任何名稱的資料庫不同 (包括特殊字元)。