跳到主要内容

通过更改处理创建 Snowflake 存储数据资产

您可以在 Data Services 主页中创建存储数据资产,并可以从导航栏访问该资产。存储数据资产从 Snowflake 登陆区域提取数据并将其转换为表以进行分析。根据输入数据资产中的更改,数据将使用 CDC(更改数据捕获)定期应用到表中。创建视图还可以提供对已存储表中的数据的更通用访问。

介绍

Snowflake 中生成数据时,将同时生成表、更改表和视图。使用数据时,最佳做法是使用视图。与表相比,视图提供了一些优势,包括提升数据并发性。如果您不确定使用哪个视图,请先尝试表的标准视图。

使用更改处理从登录数据资产读取的存储数据资产生成的 Snowflake 表和视图

将始终创建下表和视图:

  • 表格

    表包含已存储的物理数据。

  • 表格的标准视图

    表的标准视图将仅允许您查看应用于表的数据。这意味着它不包括尚未应用的最新更改表数据。当一致性的优先级高于延迟时,可以使用标准视图。

  • 更改表视图

    这是登陆模式中更改表的视图。

您还可以选择创建以下高级视图:

  • 带标题的标准视图

    这是存储数据资产生成的带有附加数据头字段的表的标准视图。

  • 实时视图

    实时视图包括尚未应用的更改表数据。这使您能够以较低的延迟查看数据,而无需频繁应用更改的数据。实时视图的效率低于标准视图,并且需要更多的资源。

有关生成的表和视图的详细信息,请参见 在 Snowflake 中生成的表结构和视图

创建 Snowflake 存储数据资产

  1. 单击数据集成主页中的新增,然后选择创建数据资产
  2. 创建数据资产对话框中,填写以下字段:

    • 名称:数据资产的名称。

    • 空间:指定数据资产的目标空间。

    • 资产类型:选择存储 (Snowflake)

    • 选择打开可在创建数据资产时打开它。

    准备好后单击创建

  3. 单击选择源数据

  4. 选择要用作存储数据资产源的登陆数据资产,然后单击选择。选择任务类型为完全加载 +CDC 的登陆数据资产。任务类型显示在列表视图中。

    随即显示设置对话框。

  5. 配置存储的设置

    • 连接

      选择对存储 Snowflake 数据库有写权限,对 Snowflake 数据库有读权限,并由登陆数据资产使用的数据连接。如果没有数据连接,则需要创建它。

      备注: 混合数据传输不支持 OAuth 身份验证。

      有关详细信息,请参见创建 Snowflake 连接 (仅提供英文版本)

    • 内部模式

      这是将在其中创建表的模式的名称。

    • 数据资产模式

      这是将在其中创建视图的模式的名称。

    备注: 您可以使用与内部模式数据资产模式相同的模式,但将它们分开可以设置对模式的不同访问。例如,您可以限制对内部模式的访问,并允许所有使用者访问数据资产模式
  6. 配置表和视图的设置

    将始终创建以下内容:

    • 表格

    • 表格的标准视图

    • 更改表的标准视图

    您还可以选择创建以下视图:

    • 带标题的标准视图

    • 实时视图

      如果希望实时视图具有事务一致性,请选择事务一致的实时视图。选中此选项后,状态表将在每次批处理更新后更新,如果有更改,默认情况下每分钟更新一次。这需要更频繁地访问云数据库。根据云数据库供应商的不同,这可能意味着云数据库永远不会因不活动而挂起。

  7. 配置前缀和后缀的设置

    您可以设置前缀,以便标识此数据资产生成的资源。这还允许您在多个数据资产中重复使用相同的架构,因为您可以通过前缀区分表和视图。

    还可以为生成的视图设置后缀。

  8. 配置运行时的设置

    • 您可以以分钟为单位设置应用间隔

      这将设置更改的数据应用于存储表的频率。间隔时间从 1 分钟到 1440 分钟(7 天)。

      建议您不要将此间隔设置为低于关联 Qlik Replicate 任务中的更新频率。更频繁地应用数据也会带来更高的 Snowflake 资源成本。

      作为替代方案,如果您偶尔需要低延迟数据,您可以保持应用间隔高,并使用实时视图。

    • 您可以设置并行执行中的最大数据库连接数。

    对数据资产进行编目并运行后,可以更改运行时参数。更改将影响下一个实际处理。

  9. 单击确定来确认您的设置。现在可以在开始生成数据库之前预览表结构。

  10. 单击保存以保存数据资产。

  11. 单击运行开始生成数据集。

如果您已经执行了完整的着陆数据加载,那么现在将生成 Snowflake 表并用数据填充。

监视表生成

您可以通过单击监视来监视表生成的状态和进度。第一次加载运行时,您可以在完全加载状态下查看进度。处理更改后,还可以查看最后一批更改的状态和进度。

您可以查看每个表或更改的以下详细信息:

  • 州/省

    这将显示此表或更改的当前状态。

    • 已完成 - 加载或更改已成功完成。

    • 加载 - 正在处理表或更改。

    • 已排队 - 表或更改正在等待处理

    • 错误 - 处理表或更改时出错。

  • 开始

    加载或更改处理开始的时间。

  • 结束

    加载或更改处理结束的时间。

  • 持续时间

    hh:mm:ss 格式加载或更改处理的持续时间。

  • 处理的记录

    加载或更改中处理的记录数。

  • 吞吐量(记录/秒)

    直到加载完成,吞吐量才会更新。

  • 信息

    如果加载或更改未成功处理,则显示错误消息。

随着重复任务更新登陆区域, 表将不断用新数据更新。每一批都与特定时间跨度的记录相关。您可以在最后一批更改中看到最近一批的时间跨度。

您也可以在 Data Services 主页中查看数据资产卡。当数据更新为显示上次更新的日期和时间时,表应该在分析中心的数据下可用。

数据资产已更新为中显示的时间之前,所有源事务中的数据都可在此数据资产中供使用。一旦加载了所有表并应用了第一组更改,该信息就可用于数据资产。 如果选择生成实时视图,还可以在实时视图更新时查看。

如果在初始加载完成之前有第一批更改,则在初始加载完成并应用该批更改之前,不会更新资产卡中的数据更新为。例如,假设您正在加载一个数据资产,其中包含一个包含 100 万个订单的订单表和一个包含 1000 万个订单详细信息的订单详细信息表。这些表分别需要 10 分钟和 20 分钟来完成完全加载。首先加载订单表,然后加载订单详细信息表。加载订单表时,插入了一个新订单。因此,在加载订单详细信息时,它可能包含新订单的详细信息,而新订单在订单表中还不存在。订单和订单详细信息表仅在应用第一批更改后同步并完全更新到同一时间。

备注: 在开始生成表后,无法更改设置或包含的数据集。

对存储数据资产的操作

您可以从 Data Services 主页中的资产菜单对存储数据资源执行以下操作。

  • 打开

    这将打开存储数据资产。您可以查看表结构和有关数据资产的详细信息,并监视完全加载和批量更改的状态。

  • 编辑

    您可以编辑资产的名称和描述,并添加标记。

  • 停止

    您可以停止数据资产的操作。数据资产将不会继续更新表。

  • 恢复

    您可以从数据资产停止的时间点恢复其操作。

  • 删除

    您可以删除数据资产。

重新加载表

您可以在打开且应用程序正在运行的存储数据资产中重新加载表。当处理下一批更改时,开始重新加载。

如果登陆数据早于 96 小时,则在运行此数据资产之前,需要重新加载为该数据资产提供数据的登陆数据资产中的表。

  • 重新加载所有表:

    单击 ,然后单击重新加载

  • 重新加载特定表:

    1. 打开监视器标签。

    2. 选择要重新加载的表。

    3. 单击重新加载表

如果 Replicate 任务中有错误,则必须先从 Replicate 任务中重新加载登陆数据资源,然后才能在存储数据资源中执行重新加载。

Snowflake 中生成的表结构和视图

本节描述在数据资产模式和内部模式中生成的表和视图的结构。

所有表格和视图由 Qlik Data Services 管理。请勿使用其他工具更改数据。

表格

在内部模式中生成的表。

命名:<INTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME><suffix for tables>

将以下标题字段添加到表结构中。

表头字段
字段 类型 描述
hdr__key_hash varbinary(20)

所有记录主键的散列。

散列格式为 SHA1。字段由退格字符分隔。

hdr__timestamp 时间戳

依据 UTC 的时间戳

  • 对于从满负载采集的数据,它将是满负载开始时间。

  • 对于通过更改表进行的变更,它将是记录的时间戳字段。

hdr__operation varchar(1)

此记录的最新操作。

  • U - 从更改表更新。

  • I - 从更改表中插入。

  • L - 通过满负载任务插入。

登陆数据中的删除将转换为硬删除。

资产状态表

资产状态表是在内部模式中生成的。它用于维护最后应用的序列和 Qlik Replicate 报告的最后一个序列,以实现事务一致性。数据资产中的所有对象都使用相同的资产状态表。

命名:<INTERNAL_SCHEMA>.[<PREFIX>]ASSET_STATE__<DATA_ASSET_ID>

资产状态表字段
字段 类型 描述
hdr__dataset_id varbinary(20)

数据集 ID。

hdr__change_seq varchar(35)

应用的最后更改顺序。

hdr__timestamp 时间戳

应用于 UTC 的上次提交事务时间。

表格的标准视图

在数据资产模式中为每个选择的源表生成带有标题的标准视图。此视图包括表结构中的所有原始字段,但不包括内部模式中添加到表中的标题字段。

命名:<DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for standard views for tables>

带标题的标准视图

在数据资产模式中为每个选择的源表可选地生成带有标题的标准视图。此视图包括添加到表中的标题字段。

命名:<DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for standard views with headers>

实时视图

实时视图为每个选择的源表显示一个视图,该视图将表与更改表中的更改合并。这为查询提供了数据的实时视图,而无需等待下一个应用周期。The changes merged from the change table view are transaction consistent between tables using events from Replicate. 在数据资产模式中生成实时视图。

如果有更改,实时视图数据资产默认情况下每 1 分钟执行一次 Snowflake 操作。可以在 Qlik Replicate 中对此进行更改。

命名:<DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for live views>

更改表视图

这是登陆模式中每个选择的源表的更改表的视图。

命名:<DATA_ASSET_SCHEMA>.[<PREFIX>]<TABLE_NAME>< Suffix for change table views>

将以下标题字段添加到表结构中。

更改表的表头字段
字段 类型 描述
hdr__change_seq varchar(35) Qlik Replicate 更改序列。
hdr__operation varchar(1)

此记录的最新操作。

  • U - 已更新。

  • I - 已插入。

  • D - 已删除。

hdr__timestamp 时间戳

时间戳依据 Qlik Replicate 中的 UTC

hdr__key_hash varbinary(20)

来自 Qlik Replicate 更改表所有记录主键的散列。