Google Cloud Storage
Google Cloud Storage 是 Google 的统一对象存储服务,用于在 Google Cloud 基础架构上存储和访问数据。它提供高可用性、全局冗余,并与更广泛的 Google Cloud 生态系统集成。
Qlik Talend Cloud 使用具有目标存储段读取权限的 Google Cloud 服务帐户连接到 Google Cloud Storage (GCS)。连接器从指定的存储段中检索文件,通过对文件内容进行采样自动发现模式,并根据文件修改时间戳执行增量数据复制。
准备身份验证
要访问您的数据,您需要使用帐户凭据对连接进行身份验证。
要设置您的 Google Cloud Storage 帐户,您需要:
- 启用了 Cloud Storage API 的 Google Cloud Platform (GCP) 项目。
- 包含要复制的文件的 Google Cloud Storage (GCS) 存储段。
- 具有存储段读取权限的服务帐户。
推荐的角色是 Storage Object Viewer (
roles/storage.objectViewer),它授予所需的storage.objects.get和storage.objects.list权限。 有关详细信息,请参阅 Google Cloud Storage IAM 角色文档 。 - 为服务帐户下载的服务帐户 JSON 密钥文件。
要创建服务帐户并检索您的凭据:
- 登录您的 Google Cloud 帐户。
- 导航到 IAM 和管理 > 服务帐号。
- 单击创建服务帐号。
- 输入服务帐户的名称和描述,然后单击创建并继续。
- 授予服务帐户 Storage Object Viewer 角色或具有
storage.objects.get和storage.objects.list权限的自定义角色。 - 单击继续和完成。
- 在新创建的服务帐户中,单击操作菜单。
- 导航到管理密钥 > 添加密钥 > 创建新密钥。
- 选择 JSON,然后单击创建。
JSON 密钥文件将直接下载到您的计算机。此文件包含建立连接所需的
project_id、client_email和private_key字段。您只能下载一次密钥文件。请务必安全地存储并备份它,因为它提供了对您的 Google Cloud 资源的访问权限。
支持的文件格式
- 分隔文本:CSV、TSV、PSV、TXT(具有可配置的分隔符)
- JSON Lines (
.jsonl) - Parquet (
.parquet) - Avro (
.avro) - 包含上述任何格式的 Gzip 压缩文件 (
.gz) - 包含 CSV、JSON Lines、TXT、TSV、PSV 或 Gzip 文件的 ZIP 存档
创建连接
有关更多信息,请参阅连接到 SaaS 应用程序。
- 填写所需的连接属性。
-
在连接名称中提供连接的名称。
-
选择打开连接元数据以定义创建连接时的元数据。
-
单击创建。
| 设置 | 描述 |
|---|---|
| 数据网关 |
如果您的用例需要,请选择一个 数据移动网关。 信息注释
此字段不适用于 Qlik Talend Cloud Starter 订阅,因为它不支持 数据移动网关。如果您有另一个订阅层并且不想使用 数据移动网关,请选择无。 有关 数据移动网关 的优势和需要它的用例的信息,请参阅Qlik 数据网关 - 数据移动。 |
| 开始日期 |
按格式 |
| 客户端电子邮件 | 服务帐户 JSON 密钥文件中的客户端电子邮件。 |
| 项目 ID | 服务帐户 JSON 密钥文件中的项目 ID。 |
| 存储段 | 存储文件的 Google Cloud Storage (GCS) 存储段的名称,例如 my-gcs-bucket。
不要包含 |
| 表 | 配置表以控制读取哪些文件以及如何解释其内容。每个表定义包括文件搜索模式、表名称以及用于高级行为的可选设置。 |
| 私钥 | 服务帐户 JSON 密钥文件中的私钥。 |
表配置
表配置中的每个条目都指定了一个从目标存储段中的文件创建的逻辑表。您可以为每个表配置以下属性:
| 属性 | 必需或可选 | 描述 |
|---|---|---|
| 表名称 | 必需 |
指定逻辑表的名称,例如 my_orders_csv。此名称将作为数据流名称显示在 Qlik Talend Cloud 中。
|
| 搜索模式 | 必需 |
输入正则表达式以匹配文件名,例如 .csv$ 以选择所有 CSV 文件。
|
| 搜索前缀 | 可选 | 在存储段中提供路径前缀以缩小文件搜索范围,例如 exports/orders/。使用前缀可通过限制扫描的文件数量来提高性能。
|
| 键属性 | 可选 |
列出一个或多个列名(以逗号分隔)以定义主键。例如:id 或 id,date。
|
| 日期覆盖 | 可选 | 列出要视为日期时间字段的列名(以逗号分隔)。如果在模式发现期间未自动检测到这些字段,请使用此选项。 |
| 分隔符 | 可选 |
指定文件中分隔值的字符。默认值为 ,(逗号)。对于制表符分隔 (TSV) 文件,请使用 \t,对于管道分隔 (PSV) 文件,请使用 |。如果留空,系统将根据文件扩展名自动检测分隔符。
|
复制的表
表是根据表配置创建的(见上文)。每个表对应于 Google Cloud Storage (GCS) 存储段中同时匹配指定搜索模式和任何可选前缀的一组文件。 连接器通过对每个表最多 5 个文件进行采样来自动发现模式,每五行读取一次,每个文件最多 1,000 条记录。
复制是增量的,并使用文件修改时间戳来跟踪更改。在每次提取期间,连接器仅处理自上次成功同步以来已修改的文件(由同步书签记录)。
默认情况下,以下系统列将添加到每个表中:
| 列 | 描述 |
|---|---|
_sdc_source_bucket
|
读取记录的 Google Cloud Storage (GCS) 存储段的名称。 |
_sdc_source_file
|
包含记录的文件的完整路径。 |
_sdc_source_lineno
|
文件内记录的行号。 |
_sdc_extra
|
在解析期间发现的任何与发现的模式不匹配的额外列。仅适用于 JSONL 文件。 |
限制和注意事项
-
服务帐户凭据(
project_id、client_email、private_key)必须作为从 JSON 密钥文件中提取的单独值提供;不支持文件上传。 -
支持 Gzip 压缩文件 (
.gz)。连接器从 gzip 标头读取原始文件名以确定内部文件格式。使用--no-name创建的 Gzip 文件(标头中未存储文件名)将被跳过。 -
不支持嵌套压缩(例如,一个
.gz在另一个.gz内,或一个.zip在一个.zip内)。这些文件将被跳过。 -
具有
.csv、.txt、.tsv、.psv或.jsonl扩展名的文件将检查 gzip 魔术字节,如果经过 gzip 压缩则进行解压缩——即使文件没有.gz扩展名。 search_pattern字段使用正则表达式语法,而不是 glob 模式。例如,使用\.csv$而不是*.csv。-
连接器具有内置的重试逻辑,带有指数退避,用于处理 Google Cloud Storage (GCS) API 速率限制 (
429) 和瞬态服务器错误(500、502、503、504)。在失败之前最多尝试五次。 - 没有可识别扩展名的文件将被跳过并发出警告。