本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定零 ETL 整合目標
設定零 ETL 整合的目標 AWS 時, 提供多種選項。目標可以是加密 Amazon Redshift 的資料倉儲或 Amazon SageMaker Lakehouse 目錄。
在選取零 ETL 整合的目標之前,您需要設定下列其中一個目標資源。
零 ETL 整合中目標的組態選項包括:
使用一般 Amazon S3 儲存體設定的 Amazon SageMaker Lakehouse 目錄和資料庫。 Amazon S3 請參閱 使用一般 S3 儲存體設定 Amazon SageMaker Lakehouse 目錄。
使用 Amazon S3 Tables 儲存貯體設定的 Amazon SageMaker Lakehouse 目錄。 Amazon S3 請參閱 將 Amazon S3 資料表設定為目標。
使用 Amazon Redshift 受管儲存設定的 Amazon SageMaker Lakehouse 目錄。請參閱 使用 Amazon Redshift 受管儲存設定 Amazon SageMaker Lakehouse 目錄。
由 Redshift 命名空間識別的 Amazon Redshift 資料倉儲。請參閱 設定 Amazon Redshift 資料倉儲目標。
注意
您無法在建立後修改零 ETL 整合的目標。
使用一般 S3 儲存體設定 Amazon SageMaker Lakehouse 目錄
本節說明在零 ETL 整合中將一般 Amazon S3 儲存貯體設定為 Amazon SageMaker Lakehouse 目錄目標儲存體的先決條件和設定步驟。
設定整合的先決條件
使用一般 S3 儲存與 Amazon SageMaker Lakehouse 目錄建立零 ETL 整合之前,您需要完成下列設定任務: S3
設定 AWS Glue 資料庫
提供目錄 RBAC 政策
建立目標 IAM 角色
使用一般 Amazon S3 儲存體設定 Amazon SageMaker Lakehouse 目錄之後,您可以繼續設定與您的目標的整合完成整合設定。 Amazon S3
將 Amazon S3 資料表設定為目標
本節說明將 Amazon S3 Tables 設定為零 ETL 整合目標的先決條件和設定步驟。
設定整合的先決條件
在建立與 Amazon S3 Tables 作為目標的零 ETL 整合之前,您需要完成下列設定任務:
設定 Amazon S3 資料表儲存貯體
提供目錄 RBAC 政策
建立目標 IAM 角色
設定 Amazon S3 資料表儲存貯體
遵循 Amazon S3 Tables 入門中的指示,在您的帳戶中建立 S3 資料表儲存貯體。 Amazon S3
請依照下列指示啟用 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 整合之前,您需要完成下列設定任務:
設定 Amazon Redshift 叢集或 Serverless 工作群組
註冊與 Lake Formation 的 Amazon Redshift 整合
在 Lake Formation 中建立受管目錄
設定 IAM 許可
設定 Amazon Redshift 受管儲存
若要設定零 ETL 整合的 Amazon Redshift受管儲存:
建立或使用現有的 Amazon Redshift 叢集或 Serverless 工作群組。請確定目標 Amazon Redshift 工作群組或叢集已開啟
enable_case_sensitive_identifier
參數,以使整合成功。如需啟用區分大小寫的詳細資訊,請參閱《Amazon Redshift 管理指南》中的為您的資料倉儲開啟區分大小寫。在 目錄中註冊從 Redshift 整合 AWS Lake Formation。請參閱將 Amazon Redshift 叢集和命名空間註冊至 AWS Glue Data Catalog。
在 中建立聯合或受管目錄 AWS Lake Formation。如需詳細資訊,請參閱:
設定目標角色的 IAM 許可。此角色需要存取 Redshift 和 Lake Formation 資源的許可。角色至少應具有:
存取 Redshift 叢集或工作群組的許可
存取 Lake Formation 目錄的許可
在目錄中建立和管理資料表的許可
CloudWatch 和 CloudWatch Logs 監控許可
使用 Amazon Redshift 受管儲存設定 Amazon SageMaker Lakehouse 目錄之後,您可以繼續設定與您的目標的整合完成整合設定。
設定 Amazon Redshift 資料倉儲目標
本節說明將 Amazon Redshift 資料倉儲設定為零 ETL 整合目標的先決條件和設定步驟。
設定整合的先決條件
在建立與 Amazon Redshift 資料倉儲目標的零 ETL 整合之前,您需要完成下列設定任務:
設定 Amazon Redshift 叢集或 Serverless 工作群組
設定區分大小寫
設定 IAM 許可
設定 Amazon Redshift 資料倉儲
若要設定零 ETL 整合 Amazon Redshift 的資料倉儲:
導覽至 Amazon Redshift 主控台
,然後按一下建立叢集或使用現有的叢集。對於 Amazon Redshift Serverless,按一下建立工作群組。 如果建立新的叢集,請選擇適當的叢集大小,並確保您的叢集已加密。對於 Serverless,根據您的需求設定工作群組設定。
請確定目標 Amazon Redshift 工作群組或叢集已開啟
enable_case_sensitive_identifier
參數,以使整合成功。如需啟用區分大小寫的詳細資訊,請參閱《Amazon Redshift 管理指南》中的為您的資料倉儲開啟區分大小寫。設定 IAM 許可以允許零 ETL 整合存取 Amazon Redshift 您的資料倉儲。您需要建立具有下列許可的 IAM 角色:
存取 Amazon Redshift 叢集或工作群組的許可
在 中建立和管理資料庫和資料表的許可 Amazon Redshift
CloudWatch 和 Amazon CloudWatch Logs 監控許可
Amazon Redshift 工作群組或叢集設定完成後,您需要為零 ETL 整合設定資料倉儲。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的零 ETL 整合入門。
注意
使用 Amazon Redshift 資料倉儲做為目標時,整合會在指定的資料庫中建立結構描述,以存放複寫的資料。結構描述名稱衍生自整合名稱。
設定 Amazon Redshift 資料倉儲之後,您可以繼續設定與您的目標的整合完成整合設定。
設定與您的目標的整合
在您設定目標資源並選取連線並指定來源 IAM 角色之後,請依照下列步驟完成整合設定:
指定您在先前步驟中設定的目標。
選取 AWS Glue 為我固定選項。對於 Amazon Redshift 目標,這會:
在 Amazon Redshift 叢集或 Serverless 工作群組上套用授權的服務主體。
將授權的 AWS Glue 來源 ARN 套用至 Amazon Redshift 叢集或 Serverless 工作群組。
將新的參數群組與 建立關聯
enable_case_sensitive_identifier = true
。
提供整合名稱,然後選擇建立和啟動整合。
一旦您的整合處於作用中狀態,請導覽至整合詳細資訊頁面,然後選擇從整合建立資料庫。
最後,您可以導覽至 Redshift 查詢編輯器,並連線至資料庫以驗證快照和增量資料。
注意
命名空間或目錄名稱中只能使用小寫英數字元和底線。這與 AWS Glue Data Catalog 允許建立任何名稱的資料庫不同 (包括特殊字元)。