当前位置: 首页 > news >正文

微信公众号的网站超链接怎么做深圳网站建设的公司

微信公众号的网站超链接怎么做,深圳网站建设的公司,医疗美容建网站,自己做的网站如何制作后台DBT是一种功能强大的数据转换工具,它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够创建快照,这是跟踪数据随时间变化的一种方法。本文带你一起完成创建和使用dbt快照的过程。 理解缓慢变化维度 缓慢变化维度(scd)是数据仓…

DBT是一种功能强大的数据转换工具,它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够创建快照,这是跟踪数据随时间变化的一种方法。本文带你一起完成创建和使用dbt快照的过程。

理解缓慢变化维度

缓慢变化维度(scd)是数据仓库中的概念,指的是数据(通常为主数据)随时间缓慢变化方式。它们被称为“缓慢变化”,因为这些变化相对不经常发生,如客户的地址或产品的分类,但这些变化的影响对数据分析来说可能是重大的。

scd通常分为三种类型:

  • 类型1: 这种方法用新数据覆盖旧数据,因此不保留历史记录。
  • 类型2: 这种方法使用新数据添加新记录,并将旧记录保留为历史数据。这是最常见的SCD类型,也是dbt快照实现的SCD类型。
  • 类型3: 这种方法为新数据添加新列,并在原始列中保留旧数据。这种类型不太常见,只在需要查看更改进展的情况下使用。

dbt快照与scd的概念直接相关,特别是类型2 scd。dbt中的快照是一种跟踪数据随时间变化的方法,可以有效地创建每行数据的版本历史记录。创建快照时,dbt将元数据列添加到数据中,包括dbt_valid_fromdbt_valid_to,它们表示记录的特定版本有效的时间范围。

这种机制允许dbt快照实现类型2 scd。当源数据发生更改时,dbt不是覆盖现有记录(类型1)或添加新列(类型3),而是添加带有新数据的新记录(类型2)。快照表中的dbt_valid_fromdbt_valid_to列表示记录的每个版本何时有效,从而允许您跟踪一段时间内更改的完整历史。

实战案例

创建dbt 快照模型

dbt中的快照模型是一种特殊的模型,用于跟踪数据随时间的变化。要创建快照模型,需要在dbt项目的snapshots目录中创建一个新文件。这个文件应该包含一个snapshots块,并定义快照的配置。

下面是一个快照模型的例子,它跟踪用户表中的变化:

{% snapshot users_snapshot %}  {{config(      target_schema='snapshots',      strategy='timestamp',      unique_key='id',      updated_at='updated_at'    )  
}}  select * from raw.users{% endsnapshot %}

在本例中,策略被设置为timestamp,这意味着dbt将基于updated_at列跟踪更改。unique_key设置为id,这是用户表中每一行的唯一标识符。

理解快照策略

在dbt中,创建快照有两种主要策略:时间戳策略和检查策略。

  • 时间戳策略

时间戳策略用于源数据包含时间戳列的情况,该列在记录更改时进行更新。在这种策略中,只要时间戳列比上一次运行快照的时间更近,dbt就会创建一个新的快照记录。当您希望根据更改发生的时间跟踪更改时,此策略非常有用。您可以在前一段中看到时间戳策略的示例。

  • 检查策略

另一方面,当希望根据特定列的值跟踪更改时,可以使用check策略。在此策略中,只要指定列中的值与上次运行快照时不同,dbt就会创建新的快照记录。如果希望根据更改内容而不是更改时间来跟踪更改时,此策略非常有用。

下面是一个使用check策略的快照配置示例:

{% snapshot users_snapshot %}  {{    config(      target_schema='snapshots',      strategy='check',      unique_key='id',      check_cols=['status']    )  
}}  select * 
from raw.users{% endsnapshot %}

在本例中,当用户的**status** 列发生变化时,dbt将创建新的快照记录。为快照选择正确的策略取决于源数据的性质和用例的特定需求。

运行快照模型

一旦创建了快照模型,就可以使用dbt snapshot命令运行它。该命令将执行dbt项目中的所有快照模型,并在数据仓库中创建了新的快照表。

以下是运行快照模型的方法:

dbt snapshot

运行此命令后,您应该在snapshot模式(或在快照配置中指定的目标模式)下的数据仓库中看到新创建的快照表。

快照模型数据

dbt创建的快照表包含数据的完整历史记录,每行表示记录的不同版本。现状可以查询此表,以查看数据随时间的变化情况。

下面是查询示例,显示了对users表状态列的所有更改:

select id, status, dbt_valid_from, dbt_valid_to
from snapshots.users_snapshot
order by id, dbt_valid_from;

该查询将返回一个结果集,其中显示每个status值何时对每个用户有效。

高级快照技术

除了基本的快照功能之外,dbt还提供了一些高级特性,可以帮助您更有效地管理快照。例如,可以使用invalidate_hard_deletes配置选项来跟踪已从源数据中删除的记录。

以下是如何修改前节的示例快照模型来跟踪硬删除:

{% snapshot users_snapshot %}  {{    config(      target_schema='snapshots',      strategy='timestamp',      unique_key='id',      updated_at='updated_at',      invalidate_hard_deletes=True    )  
}}  select * 
from raw.users{% endsnapshot %}

通过这种配置,dbt将为从users表中删除的每条记录在快照表中创建新记录行,dbt_valid_to列设置为删除的时间戳。

最佳实践指南

在使用dbt快照时,您应该遵循以下几个最佳实践:

  • 保持简单: 避免在快照模型中添加复杂的逻辑或连接。如果需要可以在创建快照之后,在下游模型中实现这些逻辑。
  • 为快照配置独立schema: 这样更容易区分快照表和数据仓库中其他类型的表。
  • 确保unique键的唯一性: 在快照配置中指定的unique键应该唯一地标识源数据中的每条记录。

总结

DBT快照是跟踪数据随时间变化的强大工具。通过学习本教程,现在应该对如何创建和使用dbt快照有了较好的理解。期待您的真诚反馈,更多内容请阅读数据分析工程专栏。

http://www.hkea.cn/news/421571/

相关文章:

  • 网站制作职业google入口
  • 广州网站 制作信科便宜网络营销软文范例500
  • 网站建设公开课长沙网站推广和优化
  • 建设网站的需求分析俄罗斯搜索引擎yandex推广入口
  • 可以做英文纵横字谜的网站搜狗网站收录入口
  • web前端开发是不是做网站百家号关键词排名优化
  • 夸克看网站要钱吗电商网站seo优化
  • 自己做网站排版138ip查询网域名解析
  • 东莞做网站 南城石佳2023网站推广入口
  • 广东省省建设厅网站郴州网站建设网络推广平台
  • 校园网站推广方案怎么做应用商店优化
  • 巩义网站建设网络营销公司是做什么的
  • 做网站基本教程一站式营销平台
  • 杭州模板网站建设电脑培训网上培训班
  • 大连做网站不错的公司怎样把广告放到百度
  • 网站上面带官网字样怎么做的网站设计的流程
  • 有个网站是做视频相册的网球排名即时最新排名
  • 论坛网站备案流程图优化大师怎么提交作业
  • 织梦政府网站模板百度在线入口
  • 专业做婚纱摄影网站会员制营销
  • 网站内容丰富互动营销平台
  • 阿里巴巴logo高清图谷歌seo网站推广
  • 网站如何做内链seo高手是怎样炼成的
  • 设计师个人网站建设怎样注册一个自己的平台
  • 徐州营销网站建设产品线上推广渠道
  • 绍兴市网站建设公司企业官网搭建
  • 关于网页设计的网站免费发布信息网站大全
  • 郑州新闻头条seo基础教程
  • 做网站比较大的公司朔州seo
  • 如何制作私人网站福州专业的seo软件