极客视点
极客时间编辑部
极客时间编辑部
113245 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:06
登录|注册

一文搞懂SQL:业务实践篇

讲述:初明明大小:4.67M时长:05:06
你好,欢迎收听极客视点。
SQL 即结构化查询语言,顾名思义,它的基础在于结构化的数据库表,最主要的应用场景在于数据查询。虽然 SQL 也可以像其它语言一样有一些高级的写法,但它的主战场并不在此,仍要回归到对数据库表的操作和处理中。最近,腾讯 CDG 数据分析师李扬洁在公众号“腾讯大讲堂” 发文,总结了日常工作中常用的 SQL 业务实践,供你参考。

如何尽量地少给未来挖坑

首先,不要起一些奇奇怪怪的名字。SQL 里的数据库表,就像是其它语言里的对象,往往是数量极大的。而且随着时间的推进和业务的发展,基数会持续放大。所以对于数据库名、数据表名、字段名,尤其是一些主键、索引的命名,务必要有一套相对统一的规范。
然后,不要并行维护多个版本的数据。因为业务的拓展,数据背后的口径可能有所变更,基于旧有的数据报表,简单修改后出一份新数据,是一种成本较低的实现方式。但最好不要并行维护多个版本的数据,当版本超过 3 个时,维护成本是直线拉升的。所以做数据变更时,一方面可以降低变更的频率,另一方面尽量在原有报表里修改,并替换掉原有口径。
其次,不要在单个脚本里写过多内容。统计逻辑的实现,就像是传统工业里的不同工序,这个过程存在两种极端。一种是把一个逻辑在横向 / 纵向细分为太多的工序,部署过多计算任务,形成很大冗余;另一种是完全打包在一个大脚本里,这种情况也不利于问题定位和中间数据处理。所以不要在单个脚本里写过多内容,可以将它拆分进最优数量的计算任务中。
再次,要有一些基本的约束条件。做一些事情时,不仅要立足于眼下的问题,也要考虑未来可能发生的变化。很多数据异常都发生在业务变化时,旧有的逻辑不能适应当前的场景。所以在写脚本时,要考虑未来的场景,有一些基本的约束条件,这样会让所部署的任务有较好的稳定性。
最后,要采用尽量简洁的写法。能够一步到位的统计逻辑,就采用尽量简洁的写法,千万不要绕圈子。尤其是一些核心脚本,是要在不同环节、不同阶段的同事之间传承的,很多人并不了解当时的业务背景和需求逻辑,如果写法太绕圈子,最终就把大家一起绕进去了。

如何健康地做数据规划

数据规划是一个层级比较中等的概念,往下一层,做需求开发,往往只聚焦于特定的需求点,并不涉及其它内容;往上一层,做数据工程,又是基于整个部门、整个产品形态的框架搭建。但数据规划更多是应对一个相对独立的业务场景所做的规划与设计。
一个不够好的数据规划,可能会引发后续的诸多问题,比如原始信息的保留、技术实现的最优路径,以及计算任务的细分问题等。另外,在不同的业务场景下,可以有不同的数据规划思路。粗糙地讲,可以分为数据基础层和业务细分层独立处理。
数据基础层:做一个数据规划,首先应该要考虑数据本身,在数据基础层里,应暂时抛开具体的业务细节,以数据为重。这时应在处理中尽量保留原始信息,同时要对数据源做好质量检验。原始信息要完整,数据质量要合格,任务部署要轻便,这些是数据基础层的一些目标,也是后续工作的一个前提。
业务细分层:数据基础要独立而完整,面向数据本身;业务细分层则可以去细分实现,面向业务细节。基于不同的业务目标,可以从源表中筛选不同的内容,用于应对特定的场景。这样的数据 + 业务层级,形成了一种“总 - 分”结构,是数据规划的其中一种实现方式。

如何在破旧与立新之间寻找平衡点

很多工作都是基于当前场景,即使做了详尽的规划和思考,也不可能应对未来的所有问题。当业务逐渐深入发展时,很多内容也需要做一些同步处理,小的层面是一些数据表和视图的变更,大的层面可能涉及计算平台的迁移、视图系统的重建等。
破旧与立新,往往是一个长期存在的问题点。不需要每天都进行自我“革命”,但改良和优化,则是一个长期过程。在这个长期过程里,我们需要在破旧与立新之间寻找到平衡点。
以上就是今天的内容,你也可以通过清华大学计算机博士陈旸的极客时间专栏《SQL 必知必会》,了解 SQL 从入门到数据实战的一系列知识。以下是这门课程的目录,供你参考。使用极客视点专属口令,还可以享受立减优惠。
优惠口令:studySQL6
适用专栏:《SQL 必知必会》
适用规则:立减 10 元(满 40 元可用)
有效期:7 月 17 日 - 7 月 23 日
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
如何尽量地少给未来挖坑
如何健康地做数据规划
如何在破旧与立新之间寻找平衡点
显示
设置
留言
收藏
39
沉浸
阅读
分享
手机端
快捷键
回顶部