云数据仓库中的数据集架构
Qlik Talend Data Integration 允许您创建、管理和控制分析数据管道,将数据一路交付给消费者。当您使用 Qlik Talend Data Integration 在云数据仓库中生成数据集时,将生成存储表、更改表和视图。
直观且有引导的用户界面可帮助您构建、建模和执行数据管道。自动为操作数据存储 (ODS) 和历史数据存储 (HDS) 生成模式,无需手动编码。
使用 Qlik 数据网关 - 数据移动 和 CDC 的 Qlik Talend Data Integration 数据管道架构
-
登陆
Qlik Talend Data Integration 中的登陆任务控制数据从数据源到登陆区的持续登陆。图中的示例描述了使用 Qlik 数据网关 - 数据移动 通过 CDC 访问数据源以保持数据最新。您还可以使用 Qlik Cloud 源连接来执行满负载,这些满负载可以计划为定期重新加载。
有关何时需要使用 数据移动网关 的信息,请参阅 什么时候需要 数据移动网关?
信息注释登陆区中的表是为 Qlik Talend Data Integration 存储数据任务的内部使用而生成的。请勿在任何其他下游进程中使用登陆表。 -
存储
存储任务控制何时将数据应用于存储表,并创建和管理表及外部视图。
-
外部视图
使用数据时,最佳实践是使用视图。与表相比,视图提供了几个好处,包括改进的数据并发性。
使用实时视图
您可以使用实时视图访问当前数据 (ODS) 和历史数据 (HDS)。实时视图包含来自尚未应用于当前表或先前表的更改表的数据。这使您能够以较低的延迟查看数据,而无需频繁应用更改的数据。延迟合并的能力可以降低目标平台中的成本和处理要求。
实时视图的另一个好处是计算层不需要一直运行。
-
登陆可以指向一个明确的仓库,该仓库可以很小,因为它只执行 INSERT 操作以实现快速执行。
-
存储过程(例如每天运行一次)可以唤醒大型计算层进行处理。
-
延迟可以得到改善,因为我们不再需要全天应用更改。当插入的新记录在更改表中可用时,它们会立即在实时视图中可用。
模式
工件在内部模式和数据任务模式中生成。
-
内部模式包含物理数据表。
-
数据任务模式包含可用于使用数据的视图。
当一个模式与多个数据任务关联时,每个数据任务必须为表和视图使用唯一的前缀。您可以在数据任务设置中设置前缀。
仅检查内部模式是否存在命名冲突。对于其他模式,您必须确保表名中没有命名冲突。最佳实践是将内部模式命名为与数据任务模式相同的名称,并添加 _internal。这将有效确保每个模式和前缀组合都是唯一的。
当您删除任务或项目时,由 Qlik Talend Data Integration 创建的模式不会被删除。
表
以下表在内部模式中创建。
-
当前表 (ODS)
此表包含在最新应用间隔期间更新了更改的数据源副本。
-
先前表 (HDS)
此表包含类型 2 历史数据。仅当在数据任务设置中启用了 History(历史记录)时,才会生成此表。
当源表记录更新时,每次都会向先前表添加一条新记录。历史记录是先前当前记录的副本,其中还包括更新的内容以及有效时间。
-
更改表
此表包含尚未应用于当前表的所有更改。仅当使用登陆模式 Full load and CDC(满负载和 CDC)时,才会生成此表。
当您重新插入以前删除的记录,并且这些记录具有相同的主键值时。hdr__operation 的值将为 U - 已更新。
以 hdr__ 开头的列名保留供 Qlik Talend Data Integration 在标题列中使用。有关详细信息,请参阅 不明确的列名。
当前表
命名:<INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_current
以下标题列将添加到表结构中。
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__key_hash | varbinary(20) |
所有记录主键的哈希值。哈希格式为 SHA1。列由退格字符分隔。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
| hdr__from_timestamp | timestamp |
UTC 时间戳
|
| hdr__operation | string(1) |
此记录的最新操作。
|
| hdr__inserted_timestamp | timestamp | 首次添加键的 UTC 时间戳。使用满负载时,为满负载的开始时间。 |
| hdr__modified_timestamp | timestamp | 应用最后一次更新时的 UTC 时间戳。 |
先前表
添加了以下标题字段。
命名:<INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_prior
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__key_hash | varbinary(20) |
所有记录主键的哈希值。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
| hdr__from_timestamp | timestamp |
UTC 时间戳 |
| hdr__to_timestamp | timestamp |
UTC 时间戳 |
| hdr__operation | string(1) |
此记录的最新操作。
|
| hdr__was_current_from_timestamp | timestamp |
记录首次成为当前记录的 UTC 时间戳。 |
| hdr__was_current_to_timestamp | timestamp |
记录最后一次成为当前记录的 UTC 时间戳。 |
更改表
命名:<INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_ct
以下标题字段将添加到表结构中。
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__change_identifier | varchar(50) |
更改标识符是一个包含两部分的字符串:
|
| hdr__operation | varchar(1) |
此记录的最新操作。
|
| hdr__timestamp | timestamp |
UTC 时间戳。 |
| hdr__key_hash | binary(20) |
所有记录主键的哈希值。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
视图
以下视图在数据任务目标模式中创建。创建哪些视图取决于您是否启用了实时视图和历史记录,以及您是否使用更改处理。
-
标准视图
-
实时视图
-
更改视图
-
历史视图
-
历史实时视图
标准视图
命名:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>
没有标题列添加到表结构中。
实时视图
实时视图显示每个选定源表的视图,该视图将表与更改表中的更改合并。这为查询提供了数据的实时视图,而无需等待下一个应用周期。从更改表视图合并的更改在表之间不是事务一致的。
仅当您在数据任务的设置中启用 Live views(实时视图)时,才会创建实时视图。
命名:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for live views>
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__key_hash | varbinary(20) |
所有记录主键的哈希值。哈希格式为 SHA1。列由退格字符分隔。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
| hdr__from_timestamp | timestamp |
UTC 时间戳
|
| hdr__operation | string(1) |
此记录的最新操作。
|
| hdr__inserted_timestamp | timestamp | 首次添加键的 UTC 时间戳。使用满负载时,为满负载的开始时间。 |
| hdr__modified_timestamp | timestamp | 应用最后一次更新时的 UTC 时间戳。 |
| hdr__store | varchar(10) |
这指示记录所在的位置。
|
更改视图
这是每个选定源表在登陆模式中更改表的视图。
命名:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_changes
以下标题字段将添加到表结构中。
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__change_identifier | string(50) |
更改标识符是一个包含两部分的字符串:
|
| hdr__from_timestamp | timestamp |
UTC 时间戳
|
| hdr__to_timestamp | timestamp |
UTC 时间戳
|
| hdr__operation | string(1) |
此记录的最新操作。
|
| hdr__timestamp | timestamp |
UTC 时间戳。 |
| hdr__key_hash | binary(20) |
所有记录主键的哈希值。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
历史视图
如果在数据任务设置中启用了 History(历史记录),则会在数据资产模式中为每个选定的源表生成历史视图。添加了以下标题字段。
命名:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for history views>
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__key_hash | binary(20) |
所有记录主键的哈希值。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
| hdr__from_timestamp | timestamp |
UTC 时间戳
|
| hdr__to_timestamp | timestamp |
UTC 时间戳
|
| hdr__was_current_from_timestamp | timestamp |
记录首次成为当前记录的 UTC 时间戳。 |
| hdr__was_current_to_timestamp | timestamp |
记录最后一次成为当前记录的 UTC 时间戳。 |
| hdr__store | varchar(7) |
这指示记录所在的位置。
|
| hdr__operation | string(1) |
此记录的最新操作。
|
| hdr__deleted | bit |
指示记录是否被软删除,基于 hdr__operation 是否为 D 或 d。 |
历史实时视图
在数据资产模式中为每个选定的源表生成历史实时视图,该视图将每个选定的源表与更改表中的更改合并。添加了以下标题字段。
命名:<EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for live history views>
| 字段 | 类型 | 描述 |
|---|---|---|
| hdr__key_hash | binary(20) |
所有记录主键的哈希值。 此列不在 Data mart(数据集市)数据任务中生成。 |
| hdr__key_id | int64 |
每条记录递增的序列。 此列仅在 Data mart(数据集市)数据任务中生成。 |
| hdr__store | varchar(10) |
这指示记录所在的位置。
|
| hdr__operation | string(1) |
此记录的最新操作。
|
| hdr__deleted | bit |
指示记录是否被软删除,基于 hdr__operation 是否为 D 或 d。 |