

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

# 設定零 ETL 整合目標
<a name="zero-etl-target"></a>

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

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

零 ETL 整合中目標的組態選項包括：
+ 使用一般 Amazon S3 儲存體來設定的 Amazon SageMaker 資料湖倉目錄和資料庫。請參閱 [使用一般 S3 Storage 設定 Amazon SageMaker 資料湖倉目錄](#zero-etl-config-target-regular-s3)。
+ 使用 Amazon S3 Tables 儲存貯體來設定的 Amazon SageMaker 資料湖倉目錄。請參閱 [將 Amazon S3 Tables 設定為目標](#zero-etl-config-target-s3-tables)。
+ 使用 Amazon Redshift 受管儲存體來設定的 Amazon SageMaker 資料湖倉目錄。請參閱 [使用 Amazon Redshift 受管儲存設定 Amazon SageMaker Lakehouse 目錄](#zero-etl-config-target-redshift-managed-storage)。
+ 由 Redshift 命名空間識別的 Amazon Redshift 資料倉儲。請參閱 [設定 Amazon Redshift 資料倉儲目標](#zero-etl-config-target-redshift-data-warehouse)。

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

## 使用一般 S3 Storage 設定 Amazon SageMaker 資料湖倉目錄
<a name="zero-etl-config-target-regular-s3"></a>

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

### 設定整合的先決條件
<a name="zero-etl-config-target-regular-s3-prerequisites"></a>

使用一般 S3 Storage 建立與 Amazon SageMaker 資料湖倉目錄的零 ETL 整合之前，需要完成下列設定任務：

1. 設定 AWS Glue 資料庫

1. 提供目錄 RBAC 政策

1. 建立目標 IAM 角色

使用一般 Amazon S3 儲存體設定 Amazon SageMaker 資料湖倉目錄之後，可以繼續進行 [設定與您的目標的整合](#zero-etl-config-target-configuring-the-integration) 以完成整合設定。

## 將 Amazon S3 Tables 設定為目標
<a name="zero-etl-config-target-s3-tables"></a>

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

### 設定整合的先決條件
<a name="zero-etl-config-target-s3-tables-prerequisites"></a>

在建立以 Amazon S3 Tables 作為目標的零 ETL 整合之前，需要完成下列設定任務：

1. 設定 Amazon S3 Tables 儲存貯體

1. 提供目錄 RBAC 政策

1. 建立目標 IAM 角色

### 設定 Amazon S3 Tables 儲存貯體
<a name="zero-etl-config-target-s3-tables-bucket"></a>

1. 遵循 [Amazon S3 Tables 入門](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-getting-started.html)中的指示，在您的帳戶中建立 S3 Tables 儲存貯體。

1. 請依照下列指示啟用 Analytics 與 S3-Table 儲存貯體的整合：將 [AWS 服務與 Amazon S3 Tables 整合](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html#table-integration-procedures)。

### 提供目錄 RBAC 政策
<a name="zero-etl-config-target-s3-tables-rbac"></a>

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

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

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Principal": {
        "AWS": [
        	"arn:aws:iam::123456789012:user/Alice"
        ]
      },
      "Effect": "Allow",
      "Action": [
        "glue:CreateInboundIntegration"
      ],
      "Resource": [
	      "arn:aws:glue:us-east-1:111122223333:catalog/<s3tablescatalog>/*"
      ],
      "Condition": {
        "StringLike": {
        "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/<table-name>"
        }
      }
    },
    {
      "Principal": {
        "Service": [
          "glue.amazonaws.com"
        ]
      },
      "Effect": "Allow",
      "Action": [
        "glue:AuthorizeInboundIntegration"
      ],
      "Resource": [
      "arn:aws:glue:us-east-1:111122223333:catalog/<s3tablescatalog>/*"
      ],
      "Condition": {
        "StringEquals": {
        "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/<table-name>"
        }
      }
    }
  ]
}
```

------

**注意**  
將 `<s3tablescatalog>` 取代為 S3 Tables 的目錄名稱。

### 建立目標 IAM 角色
<a name="zero-etl-config-target-s3-tables-iam"></a>

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

IAM 政策範例：

------
#### [ JSON ]

****  

```
{
  "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:us-east-1:111122223333: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 擔任該角色：

------
#### [ JSON ]

****  

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

------

**注意**  
請確保 S3-Tables 儲存貯體資源政策中沒有此目標 IAM 角色的明確 DENY 陳述式。明確的 DENY 會覆寫所有 ALLOW 許可，並防止整合正常運作。

## 使用 Amazon Redshift 受管儲存設定 Amazon SageMaker Lakehouse 目錄
<a name="zero-etl-config-target-redshift-managed-storage"></a>

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

### 設定整合的先決條件
<a name="zero-etl-config-target-rms-prerequisites"></a>

使用 Redshift 管理的儲存體建立與 Amazon SageMaker 資料湖倉目錄的零 ETL 整合之前，需要完成下列設定任務：

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

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

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

1. 設定 IAM 許可

### 設定 Amazon Redshift 受管儲存
<a name="zero-etl-config-target-rms-setup"></a>

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

1. 建立或使用現有的 Amazon Redshift 叢集或無伺服器工作群組。確定目標 Amazon Redshift 工作群組或叢集已開啟 `enable_case_sensitive_identifier` 參數，以使整合成功。如需啟用區分大小寫的詳細資訊，請參閱《Amazon Redshift 管理指南》中的[為您的資料倉儲開啟區分大小寫](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-setting-up.case-sensitivity.html)。

1. 將整合從 Redshift 註冊到 AWS Lake Formation中的目錄。請參閱[將 Amazon Redshift 叢集和命名空間註冊至 AWS Glue Data Catalog](https://docs.aws.amazon.com/redshift/latest/dg/iceberg-integration-register.html)。

1. 在 中建立聯合或受管目錄 AWS Lake Formation。如需詳細資訊，請參閱：
   +  [ 將 Amazon Redshift 資料帶入 AWS Glue Data Catalog ](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-namespaces-datacatalog.html) 
   +  [ 在 AWS Glue Data Catalog 中建立 Amazon Redshift 受管目錄 ](https://docs.aws.amazon.com/lake-formation/latest/dg/create-rms-catalog.html) 

1. 設定目標角色的 IAM 許可。此角色需要用於存取 Redshift 和 Lake Formation 資源的許可。角色至少應擁有：
   + 存取 Redshift 叢集或工作群組的許可
   + 存取 Lake Formation 目錄的許可
   + 在目錄中建立和管理資料表的許可
   + CloudWatch 和 CloudWatch Logs 監控許可

使用 Amazon Redshift 受管儲存體設定 Amazon SageMaker 資料湖倉目錄之後，可以繼續進行[設定與您的目標的整合](#zero-etl-config-target-configuring-the-integration)以完成整合設定。

## 設定 Amazon Redshift 資料倉儲目標
<a name="zero-etl-config-target-redshift-data-warehouse"></a>

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

### 設定整合的先決條件
<a name="zero-etl-config-target-redshift-prerequisites"></a>

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

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

1. 設定區分大小寫功能

1. 設定 IAM 許可

### 設定 Amazon Redshift 資料倉儲
<a name="zero-etl-config-target-redshift-setup"></a>

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

1. 導覽至 [Amazon Redshift 主控台](https://console.aws.amazon.com/redshiftv2/home)，然後按一下**建立叢集**或使用現有的叢集。對於 Amazon Redshift Serverless，按一下**建立工作群組**。

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

1. 確定目標 Amazon Redshift 工作群組或叢集已開啟 `enable_case_sensitive_identifier` 參數，以使整合成功。如需啟用區分大小寫的詳細資訊，請參閱《Amazon Redshift 管理指南》中的[為您的資料倉儲開啟區分大小寫](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-setting-up.case-sensitivity.html)。

1. 設定 IAM 許可以允許零 ETL 整合存取 Amazon Redshift 您的資料倉儲。您將需要建立具備下列許可的 IAM 角色：
   + 存取 Amazon Redshift 叢集或工作群組的許可
   + 在 中建立和管理資料庫和資料表的許可 Amazon Redshift
   + CloudWatch 和 Amazon CloudWatch Logs 監控許可

1.  Amazon Redshift 工作群組或叢集設定完成後，您需要為零 ETL 整合設定資料倉儲。如需詳細資訊，請參閱《Amazon Redshift 管理指南》中的[零 ETL 整合入門](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html)。

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

設定 Amazon Redshift 資料倉儲之後，您可以繼續[設定與您的目標的整合](#zero-etl-config-target-configuring-the-integration)完成整合設定。

## 設定與您的目標的整合
<a name="zero-etl-config-target-configuring-the-integration"></a>

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

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

1. 選取 AWS Glue **為我固定**選項。對於 Amazon Redshift 目標，這會：
   + 在 Amazon Redshift 叢集或 Serverless 工作群組上套用授權的服務主體。
   + 將授權的 AWS Glue 來源 ARN 套用至 Amazon Redshift 叢集或 Serverless 工作群組。
   + 將新的參數群組與 `enable_case_sensitive_identifier = true` 建立關聯。  
![\[螢幕擷取畫面會顯示選取零 ETL 整合中的目標。\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/zero-etl-target-selection.png)

1. 提供整合名稱，然後選擇**建立並啟動整合**。

1. 整合處於作用中狀態後，請導覽至整合詳細資訊頁面，然後選擇**從整合中建立資料庫**。

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

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