基于dremio dbt 实现dremio 语义层建模的简单说明
简单说明下基于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