dremio+nessie+dbt+ cube.js 实现简单数据服务
以前我简单写过关于dremio与cube.js 集成的,随着dremio 官方自己维护了一个dbt 的adapter 以及nessie 方便的类似
git 的多版本元数据服务的提供,将这几个集成在一起是一个很不错的选择,尤其是希望实现自己的headless bi 服务,同时
利用dbt 强大的数据建模能力,可以实现数据模型开发的工程化,dbt 提供了一个MetricFlow 但是缺少查询执行能力(开源版)
基于cube.js 的语义层能力,可以方便的实现数据服务
参考图
玩法说明
包含了一个算是比较完整的集成玩法,从基于git 的dbt 模型开发,然后是集成nessie 做为元数据存储,我么开发的数据模型可以直接存储在
nessie中,对于生成的语义层模型(存储在dremio 中),我们可以开发相关的数据服务,比如直接基于jdbc,rest 的数据服务,以及直接使用cube.js 实现的headless bi 可以实现比较灵活的数据开发,对于模型的变动可以基于dbt 的调试利用git 管理实现工程化,当然因为基于了nessie 的元数据存储服务,我们也可以实现方便的历史以及变动管理,同时数据质量部分也是可以基于dbt 辅助解决的
说明
以上是一个简单的集成说明,实际上集成起来也比较简单,对于希望实现一个相对标准的数据服务的可以参考
参考资料
https://cube.dev/use-cases/semantic-layer
https://www.dremio.com/
https://docs.dremio.com/current/sonar/client-applications/clients/dbt/