dbt-expectations 使用指南及实践解析

dbt-expectations 使用指南及实践解析

dbt-expectationsPort(ish) of Great Expectations to dbt test macros项目地址:https://gitcode.com/gh_mirrors/db/dbt-expectations

一、项目介绍

dbt-expectations 是一个用于数据质量检查的 dbt 扩展插件. 它提供了一系列预定义的数据验证期望(expectations), 这些期望可以被轻易地集成到你的数据仓库流程中, 实现对数据质量和一致性的自动检测.

最新版本: 0.10.3
更新特性:

  • 升级至 dbt=1.7.x (#292)
  • 增加了对 Trino 的支持 (#294)
  • 添加了 Trino 的 md5 函数宏 (#301)

二、项目快速启动

要使用 dbt-expectations, 首先确保你的环境满足以下要求:

  • dbt 版本要求: >=1.2.0 <2.0.0

接下来, 在你的 packages.yml 文件中加入如下配置以安装此包:

packages:
  - package: calogica/dbt_expectations
    version: 0.10.3

运行 dbt deps 来完成依赖项的安装。

在你的模型文件中添加期待, 例如:

{{ config(materialized='table') }}

select * from (
  select id, name, age
  from source_data
)
where {{ expectations.expect_column_values_to_not_be_null('age') }}

注意: 上述代码片段仅作示例展示如何将 expectation 结合到你的查询语句中。

三、应用案例和最佳实践

案例分析

假设有一个用户表 users, 包含字段 id, name, 和 email. 可以使用如下的期待来保证数据的一致性:

-- users.sql
{{
  config(
    materialized = 'table',
    tests = {
      'expect_column_values_to_be_unique': ['id'],
      'expect_column_values_to_match_regex': {'column_name': 'email', 'regex': '[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}'}
    }
  )
}}
select *
from some_schema.users_table;

这里设置了两项测试:

  • 确保 id 字段值唯一。
  • 通过正则表达式验证 email 格式正确。

最佳实践

  • 尽早设定期望, 从数据进入系统时就开始进行质量控制。
  • 对关键字段设置多种预期, 如非空检查、范围限制等。
  • 不断迭代和完善测试条件, 使其更贴合业务逻辑需求。

四、典型生态项目

dbt-expectations 可以无缝融合于 dbt 生态系统中的其他工具中, 典型的应用场景包括但不限于:

  • dbt-airflow: 结合 airflow 流程调度功能, 自动化执行数据质量检查任务。
  • dbt-bigquery: 支持 Google BigQuery 数据库作为目标存储, 提供对 BigQuery 数据类型的支持与优化。
  • dbt-redshift: 适用于 Amazon Redshift 数据仓库, 强化 Redshift 环境下数据质量控制能力。

通过与这些工具的集成, dbt-expectations 能够覆盖更多复杂的数据处理场景, 构建健壮且高效的数据管道。


以上是基于 dbt-expectations 开源项目资料整理而成的概览文档, 如果有兴趣深入探索该项目细节或贡献代码, 直接访问其 GitHub 页面参与讨论! dbt-expectations GitHub页面. 请注意所有提及的 GitHub PR 链接仅为历史版本参考, 实际功能可能有所不同, 建议查看最新的项目文档获取准确的信息。

dbt-expectationsPort(ish) of Great Expectations to dbt test macros项目地址:https://gitcode.com/gh_mirrors/db/dbt-expectations

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邬情然Harley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值