Azure Cloud Storage
Azure Cloud Storage 是 Microsoft 针对非结构化数据(包括文本、二进制文件、媒体、日志和应用程序备份)的托管对象存储服务。它支持热、冷和归档访问层,提供异地冗余复制,并与 Microsoft Entra ID(以前称为 Azure Active Directory)集成以实现安全的访问控制。
Qlik Talend Cloud 使用对目标存储帐户容器具有读取访问权限的 Microsoft Entra ID 应用程序(服务主体)连接到 Azure Cloud Storage。该连接器从指定的容器中检索文件,通过对文件内容进行采样自动发现模式,并根据文件修改时间戳执行增量数据复制。
准备身份验证
要访问您的数据,您需要使用您的帐户凭据对连接进行身份验证。
要设置您的 Azure Cloud Storage 帐户,您需要:
- 具有 Azure Storage 帐户的 Azure 订阅。
- 存储帐户中包含要复制的文件的 blob 容器。
- 具有客户端密码的 Microsoft Entra ID 应用程序注册。
- 分配给应用程序服务主体的 Storage Blob Data Reader 角色,范围限定为存储帐户或特定容器。这是建议用于只读访问的最低权限角色。
要注册 Microsoft Entra ID 应用程序并检索您的凭据:
- 登录您的 Azure 帐户。
- 导航到 Microsoft Entra ID > 应用注册 > 新注册。
- 输入您的应用程序的以下信息:
- 名称:输入名称,例如 QlikDataIntegration。
- 支持的帐户类型:选择 仅此组织目录中的帐户。
- 单击 注册。
- 在应用程序 概述 页面上,复制 应用程序(客户端) ID 和 目录(租户) ID,并将它们保存到安全文件中。
- 导航到 证书和密码 > 客户端密码 > 新客户端密码。
- 输入描述并选择客户端密码的过期时间。
- 单击 添加。
- 复制您的客户端密码值并将其保存到安全文件中。
- 在 Azure 门户中,打开您的存储帐户,然后导航到 访问控制 (IAM) > 添加 > 添加角色分配。
- 选择 Storage Blob Data Reader 角色,并将此角色分配给您刚刚注册的应用程序。
- 单击 保存。
支持的文件格式
- 带分隔符的文本文件:
.csv、.tsv、.psv、.txt(具有可配置的分隔符) - JSON Lines:
.jsonl - Parquet:
.parquet - Avro:
.avro - Excel:
.xlsx(支持每个工作簿有多个工作表;每个工作表的行都会被复制,并且工作表名称会附加到_sdc_source_file列) - Gzip 压缩文件:
.gz(包含上述任何格式)
创建连接
有关更多信息,请参阅连接到 SaaS 应用程序。
- 填写所需的连接属性。
-
在连接名称中提供连接的名称。
-
选择打开连接元数据以定义创建连接时的元数据。
-
单击创建。
| 设置 | 描述 |
|---|---|
| 数据网关 |
如果您的用例需要,请选择一个 数据移动网关。 信息注释
此字段不适用于 Qlik Talend Cloud Starter 订阅,因为它不支持 数据移动网关。如果您有另一个订阅层并且不想使用 数据移动网关,请选择无。 有关 数据移动网关 的优势和需要它的用例的信息,请参阅Qlik 数据网关 - 数据移动。 |
| 开始日期 |
按格式 |
| 存储帐户名称 | Azure Storage 帐户的名称,例如 mystorageaccount,不带 https:// 或 .blob.core.windows.net。 |
| 容器名称 | Blob 容器名称,例如 my-container。 |
| 租户 ID | 租户 ID。 |
| 表 | 表配置决定了读取哪些文件以及如何解释其内容。每个表定义都包含文件搜索模式、表名称以及用于自定义文件处理的可选设置。 |
| 客户端 ID | 客户端 ID。 |
| 客户端密码 | 客户端密码。 |
表配置
表配置中的每个条目代表一个从容器中的文件派生的逻辑表。可以为每个表配置以下属性:
| 属性 | 必需或可选 | 描述 |
|---|---|---|
| 表名称 | 必需 |
指定逻辑表的名称(例如,my_orders_csv)。这将成为 Qlik Talend Cloud 中的数据流名称。
|
| 搜索模式 | 必需 |
提供用于匹配文件名的正则表达式(例如,.*\.csv$ 匹配所有 CSV 文件)。如果提供了指定目录,则将其应用于容器或指定目录中的文件名。
|
| 目录 | 可选 |
在容器内输入文件夹路径前缀以缩小文件搜索范围(例如,exports/orders/)。通过限制扫描的文件来提高性能。这不是正则表达式。
|
| 主键 | 可选 |
定义用作主键的逗号分隔列名列表(例如,id 或 id,date)。对于 CSV 文件,使用标题字段名称;对于 JSONL 文件,使用顶级对象键。留空以使用全表复制。填充以启用基于文件修改时间的增量复制。
|
| 指定日期时间字段 | 可选 |
列出要视为日期时间字段的列名(以逗号分隔),即使在模式发现期间未自动检测到(例如,created_at、updated_at)。
|
| 分隔符 | 可选 |
指示带分隔符的文本文件的字段分隔符。默认值为 ,(逗号)。对于 TSV 文件使用 \t,对于 PSV 文件使用 |。如果未指定,则根据文件扩展名自动检测分隔符。
|
-
将
.jsonl和.csv文件配置为单独的表,以确保准确的模式处理和数据一致性。 -
确保所有匹配搜索模式的
.csv文件都包含具有相同列名和顺序的一致标题行。 -
在为每个表定义的所有
.jsonl文件中使用一致的对象属性键。键名和结构应保持一致,以实现可靠的模式检测。
复制的表
表在您提供的表配置中定义。每个表对应于 blob 容器中与指定搜索模式以及(如果适用)目录前缀匹配的一组文件。连接器通过对每个表最多五个文件进行采样、读取每第五行并分析每个文件最多 1,000 条记录来发现表模式。
配置主键后,复制将使用基于文件修改时间戳的增量方法。在每次提取期间,将处理在上次同步书签之后修改的文件。如果未指定主键,则在每次运行时都会完全复制整个表。
默认情况下,以下系统列将添加到每个表中:
| 列 | 描述 |
|---|---|
_sdc_source_container
|
记录来源的 Azure blob 容器的名称。 |
_sdc_source_file
|
包含记录的文件的完整路径。对于 Excel 文件,将附加工作表名称(例如,exports/q1.xlsx/Sheet1)。
|
_sdc_source_lineno
|
文件内记录的行号。 |
_sdc_extra
|
解析出的与发现的模式不匹配的额外字段(仅限 .jsonl 文件)。
|
限制和注意事项
- 存储帐户名称作为裸名称提供,而不是 URL。
-
支持 Gzip 压缩文件(
.gz)。连接器从 gzip 标头读取原始文件名以确定内部文件格式。使用--no-name(标头中没有文件名)创建的 Gzip 文件将被跳过。 -
将检查具有
.csv、.txt、.tsv、.psv或.jsonl扩展名的文件的 gzip 魔术字节,并透明地解压缩,即使该文件没有.gz扩展名也是如此。 -
不支持嵌套压缩(例如,一个
.gz文件在另一个.gz文件内),并且会被跳过。 - 搜索模式 字段使用正则表达式语法,而不是 glob 模式(例如,使用
.*\.csv$而不是*.csv)。 - 没有可识别扩展名的文件将被跳过,并发出警告。
- 连接器包含内置的重试逻辑,针对 Azure API 速率限制 (HTTP 429) 和瞬态服务器错误(HTTP 500、502、503、504)采用指数退避,最多尝试五次。
- 文件编码应为 UTF-8。