基于dremio dbt 实现dremio 语义层建模的简单说明

发布时间 2023-12-15 16:37:09作者: 荣锋亮

简单说明下基于dbt +dremio 的语义层建模

参考玩法

如下图

简单说明

关于基于sql 模式的语义层建模详细的可以直接参考官方文档,我只简单说明下关于dbt 与dremio 集成的

  • 集成简单说明
    对于每个领域的子模型,可以包含自己的s3(按需,也可以共享,但是注意命名区分),对于每个dbt project 配置不同的profile
    每个profile 会包含自己的space(也可以是共享的)以及对于特定处理的folder,对于folder 包含层级的使用. 分割开
    参考profile
 
dremio_security:
  outputs:
    dev:
      password: <password>
      port:  <port>
      software_host: <endpoint>
      object_storage_source: <s3 source >
      object_storage_path: <bucket>
      dremio_space: <space>
      dremio_space_folder: <its.group1> 基于. 标识的folder
      threads: 3
      type: dremio
      use_ssl: false
      user: <user>
  target: dev
  • 系统分层

这个属于一个整体的分层体系,类似软件开发

  • 预处理层

对于此层,如果按照我们上边关于dbt 集成的图,首先会包含一些space ,同时会包含一个分级的folder ,一个preparation 以及不同数据源的

  • 业务层

此层是以来preparation 层的数据模型,上边的我们可以发布为不同的pacakge,通过引用使用,此层对于dbt 的使用与preparation 实际类似,只是应该遵循官方的实践建议

  • 应用层

使用了业务层的模型(dremio 的视图),也会创建不同的folder,dbt 使用同上

说明

以上是一个简单的汇总,一些实践说明,可以参考,关于语义层详细设计可以参考官方文档,上边说到的dbt pacakge 可以参考以下链接

参考资料

https://github.com/dremio/dbt-dremio
https://docs.getdbt.com/docs/build/packages
https://hub.getdbt.com/
https://docs.dremio.com/current/help-support/best-practices/semantic_layer
https://www.dremio.com/blog/announcing-dremios-partnership-with-dbt-labs/
https://docs.dremio.com/current/help-support/lakehouse-arch/semantic