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