# Amazon S3

Amazon S3 可以用作：

* 使用 Databricks（可选）或 Amazon Redshift（必需）作为数据管道目标时的云暂存区。云暂存区是数据和更改在应用和存储之前暂存的地方。

* 使用 Qlik 开放式湖空间 项目和 CDC 源时的云暂存区。这要求 数据移动网关 和集群能够从登陆存储段读取和写入。有关更多信息，请参阅[步骤 1：创建网络集成](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/network-integration.htm)。

* 使用 Qlik 开放式湖空间 项目和数据流源时的云暂存区。这要求集群能够从登陆存储段读取和写入。有关更多信息，请参阅[步骤 1：创建网络集成](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/network-integration.htm)。

* 复制任务中的目标。

  * 有关如何使用标准、高级和企业订阅将数据复制到 Amazon S3 的说明，请参阅[使用标准、高级或企业订阅将在数据湖中登陆数据](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes.htm)。
  * 有关如何使用入门订阅将数据复制到 Amazon S3 的说明，请参阅[通过Qlik Talend Cloud Starter 订阅复制数据](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-starter-subscription.htm)。

## 登陆数据所需的权限

* 您必须拥有一个可从用于访问它的服务或计算机进行访问的 Amazon S3 存储段。

  有关注册 Amazon S3 的信息，请参阅 http://aws.amazon.com/s3/。

* 存储段访问凭据：记下存储段名称、区域、访问密钥和秘密访问密钥-您需要在 Amazon S3 连接器 设置中提供它们。

* 存储段访问权限：需要以下存储段访问权限：

  ```
   
  ```

  ```
  {
  	"Version": "2012-10-17",
  	"Statement": [
  	    {
  	     "Sid": "Stmt1497347821000",
  	     "Effect": "Allow",
  	     "Action": [
                  "s3:GetBucketLocation",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::YOUR_BUCKET_NAME"
              ]
          },
          {
              "Sid": "Stmt1497344984000",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::YOUR_BUCKET_NAME/target_path",
                  "arn:aws:s3:::YOUR_BUCKET_NAME/target_path/*"
              ]
          }
      ]
  }
  ```

此处 `YOUR_BUCKET_NAME` 是存储段的名称，而 `target_path` 是目标文件在存储段中的预期位置。

信息注释

如果目标路径是存储段根，只需用空字串指定 `“/target_path”`。

## Qlik 数据网关 - 数据移动 先决条件

数据移动网关 使用 SSL 连接至 AWS。这需要适当的 CA 证书才能驻留在 数据移动网关 计算机上；否则，连接将失败。CA 证书的目的是验证 AWS 服务器证书的所有权。

确保所需的 CA 证书存在于 Linux 计算机上的以下位置：

/etc/pki/tls/certs/ca-bundle.crt

如果它不存在，最简单的解决方案是从另一台 Linux 机器复制证书包。

## 设置 Amazon S3 连接属性

要配置连接器，请执行以下操作：

1. 在连接中单击创建连接。

2. 选择 Amazon S3目标连接器，然后提供以下设置：

### 数据目标

用法

根据您的使用情况选择以下其中一项：

* 数据移动： 在使用 数据移动网关 访问 Amazon S3 目标时选择。

* 网络集成：在使用 Amazon S3 存储[Qlik 开放式湖空间 网络集成](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/manual-integration.htm)所需的 Qlik 元数据文件时选择此项。

* 两者：当上述两项均满足时选择。

数据网关

当选择 数据移动 或 两者 时，请选择要用于访问目标的 数据移动网关。

根据您的使用情况，这将是从数据源部署到陆地数据的相同 数据移动网关，或者是与之不同的。有关可能的 数据移动网关 部署可能性的信息，请参阅[常见用例](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common)。

信息注释需要 数据移动网关 2023.5.10 或更高版本。

网络集成

当选择 网络集成 或 两者 时，选择 Qlik 开放式湖空间 [您之前创建的网络集成](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/network-integration.htm)。

### 连接属性

* 访问选项：选择以下选项之一：

  * 密钥对（默认）

    使用密钥对访问您的 Amazon S3 存储段。选择此选项后，请指定以下内容：

    * 访问密钥：您的 AmazonS3 存储段的访问密钥。

    * 私有密钥：您的 Amazon S3 存储段的私有密钥。

  * IAM Roles Anywhere （当使用 Amazon S3 作为 Databricks 或 Qlik 开放式湖空间 的暂存区时不受支持）：

    可以在 [IAM Roles Anywhere 控制台](https://console.aws.amazon.com/rolesanywhere/home/)中、通过 AWS CLI 或使用 AWS SDK 设置 IAM Roles Anywhere。IAM Roles Anywhere 允许您使用私钥基础设施 (PKI) 生成临时凭据，以便从 AWS 外部访问 IAM 角色。这意味着您可以从 Qlik Talend Data Integration 安全地访问 AWS 资源，而无需管理长期凭据。

    选择此选项后，请指定以下内容：

    * 证书文件：数据移动网关 计算机上 PEM 格式的 Qlik Talend Data Integration 公共证书的路径。此文件需要使用在 IAM Roles Anywhere 控制台中配置的 CA 证书进行签名。

    * 私钥文件：数据移动网关 计算机上 PEM 格式的 Qlik Talend Data Integration 私钥文件的路径。

    * 私钥密码短语： 私钥密码短语。仅当私钥文件已加密时才需要。

    * 信任锚 ARN： 与您在 IAM Roles Anywhere 控制台中创建的信任锚关联的 ARN。您可以通过创建信任锚在 IAM Roles Anywhere 和您的证书颁发机构 (CA) 之间建立信任。信任锚是对 AWS Private CA 或外部 CA 证书的引用。您在 AWS 外部的工作负载使用受信任 CA 颁发的证书向信任锚进行身份验证，以换取临时 AWS 凭据。

    * 配置文件 ARN： 与您在 IAM Roles Anywhere 控制台中创建的配置文件关联的 ARN。要指定 IAM Roles Anywhere 担任哪些角色以及您的工作负载可以使用临时凭据执行哪些操作，您需要创建一个配置文件。在配置文件中，您可以使用 IAM 托管策略定义权限，以限制所创建会话的权限。

    * 角色 ARN： 与您在 IAM Roles Anywhere 控制台中创建的角色关联的 ARN。角色是您在账户中创建的具有特定权限的 IAM 身份。为了使 IAM Roles Anywhere 能够担任角色并提供临时 AWS 凭据，该角色必须信任 IAM Roles Anywhere 服务主体。

      格式应如下所示：

      arn:aws:iam::&lt;account-id&gt;:role/&lt;role-name-with-path&gt;

    有关 IAM Roles Anywhere 的更多信息，请参阅：

    [使用 IAM Roles Anywhere 将 AWS IAM 角色扩展到 AWS 外部的工作负载](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html)

  * 用于 EC2 的 IAM 角色

    如果用于访问 Amazon S3 的计算机配置为使用 IAM 角色进行身份验证，请选择此方法。

    有关 IAM 角色 的信息，请参阅 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

    * 扮演角色：选择此选项以扮演目标 IAM 角色。

      此选项对于“数据移动”、“网络集成”以及“两者”模式是可选的。

      未选中时，连接将使用与相关 EC2 机器关联的 IAM 角色。

      配置目标角色信任策略，以信任适用于所选 使用 模式的数据访问和/或数据移动角色。

      指定以下内容：

      * 附加角色 ARN：与目标角色关联的 ARN。
      * 附加角色外部 ID：当选择担任角色且将用途设置为网络集成或两者时，单击加载外部 ID以检索外部 ID。将检索到的外部 ID 添加到附加目标角色的信任策略中。

      配置信任策略以信任适用于所选使用模式的角色：

      * 网络集成模式：信任您的网络集成所使用的数据访问角色（服务器角色）。
      * 数据移动模式：信任 数据移动网关 所使用的数据移动角色。
      * 两者模式：同时信任数据访问角色和数据移动角色。

* 存储段名称：您的 AmazonS3 存储段的名称。

  信息注释

  默认的存储端区域设置为自动检测，无需设置特定区域。但是，出于安全考虑，对于某些区域（例如 AWS GovCloud），您可能需要显式设置该区域。在这种情况下，可以使用 `regionCode` 内部属性设置区域代码。

  有关地区代码的列表，请参阅以下网址中的地区可用性部分：https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html

  有关设置内部属性的说明，请参阅下文。

* 使用 AWS PrivateLink（不支持作为 Qlik 开放式湖空间 的登陆目标）：选择此项以连接到 Amazon VPC，然后指定 VPC 终端节点 URL（例如，https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com）。

  信息注释当使用 Amazon S3 存储段作为 Databricks 目标的暂存区域时，不支持使用 AWS PrivateLink 选项。有关设置与 Databricks 目标的连接的信息，请参阅[Databricks](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/databricks-target.htm)。

### 数据加密

选择以下加密选项之一：

* 使用 Amazon S3 托管密钥的服务器端加密 (SSE-S3)。

  这是默认值。

* 使用 AWS KMS 管理密钥的服务器端加密 (SSE-KMS)

  此选项还要求您指定自己的 KMS 密钥 ID。

  有关可用服务器端加密方法的更多信息，请参阅：

  [使用服务器端加密保护数据](http://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)

* 无

### 内部属性

内部属性用于特殊用例，因此不会在对话框中公开。只有在 Qlik 支持部门的指示下，您才应该使用它们。

使用字段右侧的 the 新建 icon 和 the 取消 icon 按钮可以根据需要添加或删除特性。

### 名称

连接的显示名称。

## 数据类型映射

下表显示了从 Qlik Cloud 数据类型到 Amazon S3 数据类型的默认映射。

信息注释仅当启用了“在数据湖中登陆数据”任务设置中的[在目标文件夹中创建元数据文件](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes-settings.htm#Metadata)选项时，数据类型映射才相关。

### 从 Qlik Cloud 数据类型到 Amazon S3 的映射

Qlik CloudQlik Cloud 和 Amazon S3 数据类型

| Qlik Cloud 数据类型 | Amazon S3 目标数据类型 |
| --- | --- |
| DATE | DATE |
| TIME | TIME |
| DATETIME | DATETIME |
| BYTES | BYTES（长度） |
| BLOB | BLOB |
| REAL4 | REAL4 (7) |
| REAL8 | REAL8 (14) |
| INT1 | INT1 (3) |
| INT2 | INT2 (5) |
| INT4 | INT4 (10) |
| INT8 | INT8 (19) |
| UINT1 | UINT1 (3) |
| UINT2 | UINT2 (5) |
| UINT4 | UINT4 (10) |
| UINT8 | UINT8 (20) |
| NUMERIC | NUMERIC (p,s) |
| STRING | STRING（长度） |
| WSTRING | STRING（长度） |
| CLOB | CLOB |
| NCLOB | NCLOB |
| BOOLEAN | BOOLEAN (1) |

### 从 Qlik Cloud 数据类型到 Parquet 的映射

当把 Parquet 设置为文件格式时，由于 Parquet 支持的数据类型数量有限，数据类型映射如下：

Parquet 数据类型映射

| Qlik Cloud数据类型 | Parquet 图元类型 | 逻辑类型 |
| --- | --- | --- |
| BOOLEAN | BOOLEAN |  |
| INT1 | INT32 | INT(8, true) |
| INT2 | INT32 | INT(16, true) |
| INT4 | INT32 |  |
| INT8 | INT64 |  |
| UINT1 | INT32 | INT(8, false) |
| UINT2 | INT32 | INT(16, false) |
| UINT4 | INT64 |  |
| UINT8 | INT64 | INT(64, false) |
| REAL4 | FLOAT |  |
| REAL8 | DOUBLE |  |
| NUMERIC | FIXED\_LEN\_BYTE\_ARRAY (16) | DECIMAL（精确度、刻度） |
| STRING | BYTE\_ARRAY | STRING |
| WSTRING | BYTE\_ARRAY | STRING |
| BYTES | BYTE\_ARRAY |  |
| BLOB | BYTE\_ARRAY |  |
| CLOB | BYTE\_ARRAY | STRING |
| NCLOB | BYTE\_ARRAY | STRING |
| DATE | INT32 | DATE |
| TIME | INT32 | TIME (UTC=true, unit=MILLIS) |
| DATETIME | INT64 | TIMESTAMP (UTC=true, unit=MICROS) |

## 了解详情

* [登陆数据湖中的数据](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes.htm)
* [Amazon Redshift 目标](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/redshift-target.htm)
* [Databricks 目标](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/databricks-target.htm)