DBT中文社区

    • 注册
    • 登录
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组
    • 达之云

    开源软件DBT中文社区

    微信号:DBT_CN

    QQ群:551308350

    增强模型:物化

    使用指南
    1
    1
    1078
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      dazdata 最后由 编辑

      概述
      物化是在仓库中保留 DBT 模型的策略。dbt 中内置了四种类型的物化。它们是:
      表
      视图
      增量
      临时

      配置物化
      默认情况下,dbt 模型物化为“视图”。通过提供如下所示的配置参数,可以使用不同的具体化来配置模型。materialized
      dbt_project.yml

      name: my_project
      version: 1.0.0
      config-version: 2

      models:
      my_project:
      events:
      # materialize all models in models/events as tables
      +materialized: table
      csvs:
      # this is redundant, and does not need to be set
      +materialized: view
      或者,可以直接在模型 sql 文件中配置具体化。如果您还要为特定型号设置 [性能优化] 配置(例如,Redshift 特定配置或 BigQuery 特定配置),这将非常有用。

      物化

      • 视图
        使用物化时,模型将在每次运行时通过语句重新生成为视图。viewcreate view as

      优点:不会存储其他数据,源数据顶部的视图将始终包含最新记录。
      缺点:执行重大转换或堆叠在其他视图之上的视图查询速度很慢。
      建议:
      通常从模型的视图开始,只有在注意到性能问题时才更改为另一个物化。
      视图最适合不进行重大转换的模型,例如重命名、重新转换列。

      • 表
        使用物化时,您的模型将重建为table表在每次运行时,通过语句。create table as

      优点:表查询速度很快
      缺点:
      表可能需要很长时间才能重建,尤其是对于复杂的转换
      基础源数据中的新记录不会自动添加到表中
      建议:
      将表物化用于 BI 工具查询的任何模型,为最终用户提供更快的体验
      还可以将表物化用于许多下游模型使用的任何较慢的转换

      • 增量
        incremental模型允许 DBT 自上次运行 DBT 以来将记录插入或更新到表中。

      优点:只需转换新记录即可显著缩短构建时间
      缺点:增量模型需要额外的配置,并且是 dbt 的高级用法。在此处阅读有关使用增量模型的更多信息。
      建议:
      增量模型最适合事件样式数据
      当您变得太慢时,使用增量模型(即不要从增量模型开始)dbt run

      • 临时
        ephemeral模型不直接内置到数据库中。相反,dbt 会将此模型中的代码作为公共模型插入到依赖模型中表表达。

      优点:
      您仍然可以编写可重用的逻辑
      临时模型可以帮助您保持数据仓库通过减少混乱进行清理(还可以考虑使用自定义架构将模型拆分到多个架构中)。
      缺点:
      不能直接从此模型中进行选择。
      操作(例如,通过不能临时节点调用的宏)dbt run-operationref()
      过度使用临时物化也会使查询更难调试。
      建议:将临时物化用于:
      DAG 早期的非常轻量级转换
      仅用于一个或两个下游型号,并且
      不需要直接查询

      Python 具体化
      Python 模型支持两种物化:

      • table
      • incremental
        增量 Python 模型支持与其 SQL 对应项相同的所有增量策略。支持的特定策略取决于您的适配器。
      1 条回复 最后回复 回复 引用 -1
      • First post
        Last post
      Powered by Dazdata MDS | 武汉达之云计算有限公司