在广泛的数据分析师和工程师团队中工作时,您是否曾为不同的 SQL 风格而苦苦挣扎?上/下关键字、前导/尾随逗号、缩进、别名规则等。

随着模型数量的增长,拥有一致的风格变得有益,以简化代码审查、新成员的入职等。SQLfluff 来拯救,它是 SQL 文件的 CLI linter。它可以突出显示并经常修复样式违规。

dbt 是另一个令人惊叹的工具,可以简化数据建模、跟踪模型之间的依赖关系并减少样板代码的数量。

在本文中,我想分享结合这两种工具并在团队中采用它的方法。

团队对齐

首先,您需要与团队交谈并解释为什么拥有某些风格规则很重要。
这一步非常重要,因为如果没有清楚地了解为什么需要 PR,没有人会乐于看到 PR 停留在审查中。

这次谈话的一个好的结果是有一套你同意遵守的初始规则。此外,如果它很大和/或由多个 dbt 项目组成,您可能只想为项目的某个区域推出它。

集成到开发工作流程中

下一步是将 SQLfluff 集成到开发工作流中。
实现它的最简单方法是使用预提交挂钩。
如果您已经在使用它们,只需添加几个新的钩子会容易得多sqlfliff fix,sqlfluff lint.

否则,您可能需要更多时间来采用预提交挂钩。值得一提的是,尽管强烈推荐此步骤,但为了使开发工作流程更加顺畅,此步骤可能是可选的。

集成到 CI/CD 中

下一步是通过将 SQLfluff 集成到 CI/CD 中来强制执行规则。
它可以以软或硬的方式完成。
在第一种情况下,它应该只发出警告,而不是阻止 PR 被合并。
在第二种情况下,PR 应该

SQL教程之使用 dbt 和 SQLfluff 整理 SQL相关推荐

  1. SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!

    文章目录 介绍 chapter1-选择语句 选择子句 exercise where子句 exercise and or 和not运算符 exercise in运算符 exercise BETWEEN运 ...

  2. sql 教程_SQL

    sql 教程 SQL stands for Structured Query Language. SQL is a domain specific language used to manage da ...

  3. 视频教程-19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程-MySQL

    19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/ja ...

  4. sql教程学习(一)

    根据https://www.runoob.com/sql/sql-tutorial.html学的sql教程. 我只挑我觉得对我来说的重点学习,我不扣书,哈哈哈. sql教程 SQL 是用于访问和处理数 ...

  5. 易语言 Sql 教程

    使用易语言对SQL数据库操作的教程:精易入门培训2017 [教程]易语言入门教学培训2017(精易论坛)_哔哩哔哩_bilibili 23集-29集 SQL的教程可以看看: SQL 教程 SQL教程 ...

  6. 一、个人总结的菜鸟教程|sql教程的知识点(SQL教程)

    一.SQL教程 1.SQL语法 DML select查询数据 update更新数据 delete删除数据 insert into插入数据 DDL create database创建数据库表 alter ...

  7. SQL 教程【菜鸟】

    SQL 教程[菜鸟] 转载于:https://my.oschina.net/u/3706644/blog/2395829

  8. spark sql教程_如何使用Spark SQL:动手教程

    spark sql教程 在本系列的第一部分中,我们研究了使用Apache Spark SQL和DataFrames "大规模"利用关系数据库的功能方面的进展. 现在,我们将基于现实 ...

  9. SQL教程——存储过程

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要介绍SQL语法的存储过程 目录 存储过程和函数 存储过程 ...

  10. Flink教程(16)- Flink Table与SQL

    文章目录 01 引言 02 Table API & SQL 介绍 2.1 Flink Table模块 2.2 Table API & SQL特点 2.3 Table API& ...

最新文章

  1. 成功让Eclipse更新ADT的方法
  2. C# WebApi+Task+WebSocket实战项目演练(四)
  3. abap判断当前月最后一个工作日_油价正式打响第一枪!今天12月3日,今晚油价迎来大幅暴跌,调价后全国地区油价一览!...
  4. python读程序是什么意思_0基础学Python之一:什么是程序?
  5. C++希尔密码Hill Cipher算法(附完整源码)
  6. 使用EasyPoi轻松导入导出Excel文档
  7. SpringMVC框架----MVC 模型
  8. 如何优雅的定义 App 的界面设计
  9. sdk manager 打不开
  10. 在局域网中用联通的3G无线上网卡后的静态路由的命令行
  11. 如何提高阅读源代码的效率
  12. 64qam调制解调MATLAB,16QAM调制解调技术分析与MATLAB仿真
  13. iOS如何通过安装描述文件获取设备UDID
  14. C++深入学习笔记—基础篇—个人银行账户管理程序
  15. 2021-11-24【数据结构练习题】【二叉搜索树的插入删除】
  16. 0528班宋ww:回顾刚来的那一天还历历在目,不禁感概一番
  17. Win10提示“为了对电脑进行保护,已经阻止此应用”怎么处理?
  18. 面对这样的网络状况我真的醉了
  19. git 撤销未提交的修改
  20. vue大文件上传断点续传解决方案

热门文章

  1. 手机总是显示服务器太忙,手机总提示服务器太忙请稍后重试
  2. PHP程序提示验证码错误的问题(输入了正确的验证码)
  3. 七牛云持久化上传图片及生成缩略图,多文件打包下载
  4. H3C交换机静态路由与NQA联动
  5. vscode 是干什么用的_vscode这个软件有什么用
  6. 17.JAVA对象的进阶
  7. deepin win10字体_深度win10修改系统字体颜色的操作方法
  8. Aviary集成心得
  9. 「硬核JS」一次搞懂JS运行机制
  10. Ubuntu16.04 + Titan XP + cuda8.0 + cudnn5.1 + opencv3.3.0 + caffe