Amazon S3
Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,具有业界领先的可扩展性、数据可用性、安全性和性能。
准备身份验证
要访问您的数据,您需要使用您的帐户凭据对连接进行身份验证。
要连接Amazon S3 ,您需要 AWS Identity Access Management (IAM) 中允许您创建策略、创建角色并将策略附加至角色的权限。这是向您的 S3 存储段授予授权所必需的:
创建 IAM 策略。
IAM 策略是一种基于 JSON 的访问策略语言,用于管理存储段资源的权限。
权限名称 | 运算 | 描述 |
s3:GetObject | GET 对象 |
允许从 Amazon S3 检索对象。 |
s3:GetObject | HEAD 对象 | 允许检索对象的元数据,而不返回对象本身。 |
s3:ListBucket | GET 存储段(列表对象) |
允许返回存储段中的部分或全部(最多 1000 个)对象。 |
s3:ListBucket | HEAD 存储段 |
用于确定存储段是否存在并允许访问。 |
创建 IAM 策略:
- 在 AWS 中 ,导航至 IAM 服务,方法是单击 服务 菜单并键入IAM。
- 显示结果后,单击 IAM。
- 单击页面左侧菜单中的策略。
- 单击创建策略。
- 在创建策略页面,单击JSON选项卡。
- 选择文本字段中的所有内容并删除。
- 在文本字段中,粘贴以下 JSON,并用存储段的名称
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::MyBucketName", "arn:aws:s3:::MyBucketName/*" ] } ] }
替换MyBucketName - 单击审查策略。
- 在审查策略页面,为策略命名。例如:
qlik_amazon_s3
。 - 单击创建策略。
创建 IAM 角色
要完成此步骤,您需要以下 AWS IAM 权限:CreateRole
和 AttachRolePolicy
。有关更多信息,请参阅亚马逊的文档。
如果要创建多个 Amazon S3 集成,则需要为连接的每个集成完成此步骤。
- 在 AWS 中,导航至 IAM 角色页面。
- 单击创建角色。
- 在创建角色页面:
- 在选择受信任实体类型部分,单击另一个 AWS 帐户选项。
- 在帐户 ID 字段中,粘贴
338144066592
。 - 在选项部分,选择要求外部 ID 复选框。
- 在显示的外部 ID字段中,粘贴
qlik_connection_<tenant-id>
并用您的租户 ID 替换 <tenant-id> 。要查找您的租户 ID,请参阅查找租户信息。
- 单击下一步:权限。
- 在附加权限页面:
- 搜索在创建 IAM 策略中创建的策略。
- 找到位置后,在表格中勾选其旁边的框。
- 单击下一步:标签
- 如果要输入任何标签,请在添加标签页面输入。否则,请单击下一步:审查。
- 在审查页面上:
- 在角色名称字段中,粘贴
qlik_s3_<tenant-id>
并用您的租户 ID 替换 <tenant-id>。要查找您的租户 ID,请参阅查找租户信息。
- 在角色描述字段中输入描述。例如:
Qlik role for Amazon S3 integration.
- 单击创建角色。
- 在角色名称字段中,粘贴
定义搜索模式
搜索模式字段定义了 Qlik 在选择和复制文件时应使用的搜索条件。该字段接受正则表达式,可用于包含单个文件或多个文件。
创建搜索模式时,请注意:
- 当为单个表包含多个文件时,每个文件应具有相同的标题行值。
- 句点 (
.
) 等特殊字符在正则表达式中具有特殊含义。为了完全匹配,需要对它们进行转义。例如:.\
- Qlik 对于正则表达式使用 Python,其语法可能与其他类型不同。在保存集成之前,请尝试使用 PyRegex 测试您的表达式。
- 搜索模式应考虑文件中数据的更新方式。请看这些例子:
场景 | 单个文件,定期更新 | 多个文件,每天生成 |
如何进行更新 | 一个 JSONL 文件会定期用新的和已更新的客户数据更新。 | 每天都会创建一个新的 CSV 文件,其中包含新的和更新的客户数据。旧文件在创建后永不会更新。 |
文件名 | customers.jsonl
|
customers-[STRING].csv ,其中 [STRING] 是一个唯一的随机字符串 |
搜索模式 |
因为文件永远只会有一个,您可以在 S3 存储段中输入文件的准确名称:
|
为确保识别出新的和更新的文件,您需要输入一个搜索模式,匹配以
|
精确匹配 | customer.jsonl , |
|
文件要求
第一行标题(仅限 CSV 文件) |
|
文件类型 |
|
压缩类型 |
必须正确压缩这些文件,否则在解压时会出现错误。
|
分隔符(仅限 CSV 文件) |
|
字符编码 |
UTF-8 |
创建连接
有关更多信息,请参阅连接到 SaaS 应用程序。
- 填写所需的连接属性。
-
在连接名称中提供连接的名称。
-
选择打开连接元数据以定义创建连接时的元数据。
-
单击创建。
设置 | 描述 |
---|---|
数据网关 |
如果您的用例需要,请选择一个 Data Movement gateway。 信息注释
此字段不适用于 Qlik Talend Cloud Starter 订阅,因为它不支持 Data Movement gateway。如果您有另一个订阅层并且不想使用 Data Movement gateway,请选择无。 有关 Data Movement gateway 的优势和需要它的用例的信息,请参阅Qlik Data Gateway - Data Movement。 |
开始日期 |
按格式 |
S3 存储段 | S3 存储段的名称。 |
AWS 帐户 ID |
AWS 中的外部 ID。请参阅准备身份验证。 模式为: |
搜索模式 | 输入要包含在表格中的文件。您可以输入单个文件名或正则表达式。 示例: |
目录 | 限制在此目录路径中的搜索。定义后,将只搜索此位置的文件,并选择与搜索模式匹配的文件。不能使用正则表达式。 例如:csv-exports-folder 或 employee_jsonl_exports。 |
表格配置
通过指定要包含的文件来配置表格。 您可以配置多个表格。 |
|
表格名称 | 表格名称 每个目标都有自己的表命名规则。例如,Amazon Redshift 表名不能超过 127 个字符。 |
主键 | 输入主键以标识唯一的行或记录。当您输入多个键时,请使用逗号分隔值。
例如:id、name。 |
指定日期时间字段 | 在表中输入必须显示为日期时间而不是字符串的值。 例如:created_at、modified_at。 |
分隔符 | 从下拉列表中选择分隔符。 |