一、引在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化,毕竟作为开发我们肯定没有经历每天定点去手动运行 dbt 命令,那么今天我们将带领大家快速上手 dbt cloud,通过云平台的环境以及定时任务的配置做到全自动化,通过本文你将了解到如下几个知识点:
需要注意的是,了解 dbt cloud 的前提我还是建议对于 dbt core 需要有一定认知,否则对于本文中的一些特定配置你可能不是特别理解,如果有时间建议阅读之前的文章,那么让我们直接开始。 二、什么是 dbt cloud我们在第一篇文章介绍 dbt core 时顺带提了一句 dbt cloud,简单来理解,dbt core 是 dbt 的基础,它提供你本地 dbt 项目开发的一切,比如你要使用的 dbt 命令,构建过程中 sql 的编译,对于数据平台的链接通信以及抹平不同平台差异等等,而这一切仅限于你在本地项目写 model 以及构建你需要的数据模型。 而 dbt cloud 很重要的一点是能在云端集成你本地的 dbt 项目,它能做到与你本地项目的互联,你能在云平台提供的浏览器版本编辑器中切分支写代码以及测试 model,也能与你托管的仓库(比如 GitHub)集成,通过自动化任务配置,做到定时代码自动更新以及自动化更新你的 model,是不是非常棒。 更重要的是,dbt cloud 免费的开发版本虽然只有一个席位,但开发版本提供的权益完全满足你对于自动化的述求,所以说 dbt cloud 一定会成为数据更新中非常重要的一环。 三、dbt cloud 集成3.1 新建 dbt cloud 项目dbt cloud 集成主要分为两个部分,第一是获得数据平台(比如 bigquery)的授权,试想一下,当我们在 dbt cloud 上配置了定时器任务,到点后 dbt 像一个虚拟的开发一样帮我们更新 dbt modle 以及把 model 结果写入目标数据平台,很明显我们也需要让这个虚拟开发获得跟我们相同的数据访问 & 写入权限,也就是 GCP 。第二部分是集成 GitHub(也可以是 gitlab) 上你的 dbt 项目,这点我们后面再说。 不知道你是否还记得,我在 dbt core 第一篇文章中介绍了如何让本地项目获得访问远端数据库权限时,介绍了一种使用本地 JSON 文件授权的办法,如果你之前也是通过这种方式,那么在等会的授权集成中你可以直接上传这份 JSON,如果你之前没有,以 bigquery 为例,建议先生成一份这样的权限文件,bigquery 授权可跳转 Create credentials。 做好这些准备,你需要在 dbt 网站创建一个账号,然后来到新建项目,如下,在这里你可以先输入你喜欢的项目名称,以及需要链接的数据平台,没关系,这个配置在后续后可以编辑。
最终的部分来了,让我们聚焦 上图中的
还记得之前文章中对于 dbt 工程化,我们特别指出了 dbt 支持
OK,现在让我们点击 3.2 关联 GitHubdbt cloud 虽然创建好了,但此时你并未将其与你的 dbt 项目关联起来,毕竟我们做定时任务本质还是希望帮我们运行自己的 dbt 项目。让我们点击 dbt 网站右上角的设置按钮,找到 之后展开集成,点击配置并选择你需要关联的项目点击保存即可。
那么到这里,我们对于 dbt cloud 集成相关的工作已经做好了,接下来让我们介绍 dbt cloud IDE 。 四 dbt cloud IDE点击 dbt cloud 左上角的 cloud IDE 即可进入云平台编辑器,在这里你可以看到跟你本地编辑器完全相同的界面。 IDE 主要分为四个区域,这里我通过数字编号简单解释:
由于 IDE 使用比较简单,而我本人还是习惯在本地做项目开发,更多是将 dbt cloud 作为自动化工具,因此 IDE 部分就不过多介绍,详细文档可见 dbt cloud IDE 部分。 那么接下来让我们聚焦于自动化配置部分,让我们先从环境配置开始。 五、dbt cloud 环境配置为什么要介绍环境配置呢?因为 dbt cloud 的自动化任务的载体就是环境,后续所有的自动化任务都是在某个环境中创建,毕竟任务总得区分环境,以及知道要基于哪个分支拉取代码等等。 5.1 关于 dev 环境前文已经提到,dbt cloud 默认已经为你创建了一个 dev 环境,而且你至多只能拥有这一个 dev 环境,如果你喜欢在 cloud IDE 做项目开发,那么 dev 环境你还是需要做少许配置。 5.2 关于 production 环境现在,让我们直接创建属于自己的 production 环境,由于与 dev 配置选项大体相同,这里我就不再截图展示了,你需要将 其次,关于 Dataset 我们也介绍了,如果你有做项目工程化配置需要做 model 写入的数据集区分,这里你需要将 Dataset 设置成与你 profiles 中完全相同的字段。 六、dbt cloud jobsdbt cloud jobs 支持两种任务,第一种是定时部署任务,比如你希望每天的什么时间段帮你执行;第二种就是 PR 任务,比如你希望 GitHub 仓库产生新的 PR 合并时自动更新 model 时,这里我们介绍定时任务。 点击新建选择部署任务,既可以看到任务创建界面,这里解释下关键的配置:
到这里,你就配置了属于自己的第一个自动化任务,是不是非常简单。 七、dbt cloud 通知事实上,自动化任务会根据你的配置准时准点运行,但可能因为你项目的问题或者 model 编写问题导致执行失败,此时你一定希望自动化任务在运行之后给你发起一次通知,那么 dbt cloud 提供了邮件以及 slack 两种通知方式。 点击 dbt 网站右上角的设置中心,选择通知设置,我们可以先来到 Linked accounts 先为 slack 做授权,之后来到 Slack notifications,如下图: 在这里,你需要先选择需要通知的 slack 频道,然后在下方表格中为你配置的 jobs 的不同状态做选择,比如这里我勾选了我配置的三个任务的所有状态通知,后续只要任何一个任务运行成功,我所对应的频道就能收到执行结果的通知。 而关于邮件通知由于比较简单,这里我就不过多介绍了,采用哪种通知方式看大家喜好。 那么到这里,dbt cloud 的介绍就全部完成了,其实 dbt cloud 的能力远不止如此,但如果要全部展开本文篇幅就过长了,而本文的初衷也只是希望带大家快速上手,先跑起来并在使用过程中为自己解疑答惑。而关于本文中内容若有疑问也欢迎留言,那么到这里本文结束。 |
原文地址:https://blog.csdn.net/echolunzi/article/details/136993845
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-657129.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2024, msipo.com