不可否认的是 SQL 是一个伟大的发明,它让增删改查的操作更加地便捷化,而且 SQL 的学习成本相对其他编程语言来说较低,被逼到会写 SQL 的运营和产品我都见过不少。。。

大数据行业跟 SQL 更是有不解之缘,可谓“万物皆可 SQL 化”,从Hive/SparkSQL等最原始的最普及的 SQL 查询引擎,到 Impala/Presto/ClickHouse/Kylin/Phoenix 等等 OLAP 引擎,再到流式的 Structured Streaming/Flink SQL/Kafka SQL,可见想彻底摆脱 SQL 是不可能的了,相比各式各样的接口,复杂的规则,SQL 化成了一个简单化的标志,因为默认IT界人人都会 SQL,那就约等于人人都会使用这些复杂的工具,多美好。我想强调的是 SQL 是大数据从业者的必备工作技能,但是工作必须不能全是 SQL

1. 自动化

专职 SQL Boy 其实就像是在工厂里工作的流水线工人,需求来了,噼里啪啦一顿操作把SQL跑起来,把结果再丢给下游,再来个需求,再噼里啪啦。。。如此循环往复。不知道大家有没有感同身受,如果有的话我就问一句:工厂都知道要自动化,为什么你还不明白呢?

取数需求是永无止境的且无趣的,而且很多都是重复的,运营产品等需求方大佬们有时候要看这个产品今天的数据,就风风火火来了个紧急需求,看完之后发现哦不对,今天还没过完嘛,应该要看昨天的才对......

我:“&#@%!!”。

比这个还弱智的翻工原因估计还有很多,难道就这样任由大佬们蹂躏吗?你有没有想过这种需求其实是可以抽象的,SQL 语句写来写去就那么几个词,做这种需求就相当于是把自然语言人工翻译成SQL语言,那么这个翻译的过程是不是能够让代码来代替呢。

简单地给个建议,搞一套 OLAP 引擎,配合一个拖拽式的前端页面,就可以丢给运营们去慢慢玩了。三言两语说得很轻松,但是这其中的工作量是很大的,你需要花很多的时间在数仓的建设上,在平台的选型/搭建/测试/运维上,在接口开发/调试/对接上,最后因为自助分析不能够覆盖所有的需求,所有整个流程需要不停地优化和迭代,当然那些那些需要写几百行SQL才能解决的需求,可能还得你再想想办法。

在建设这一套自助分析系统过程中,你不可避免地会接触到更多的东西,元数据管理,数据治理,数据建模,Hadoop运维等等等等,恭喜你此刻你成功脱了SQL Boy的坑了,你需要把时间更多地花在上面说的那些事情中,虽然有点不道德但是你可以把 SQL Boy 这个荣誉称号让给新来的同事,可以把成百上千行的祖传 SQL 传递给他们了。

2. 数据驱动

这个时候应该有人会想说“老子就是那个接了祖传 SQL 的人”。。。别急,接着往下看。

如果你的 SQL 真的有成百上千行,那你应该要考虑你的数据仓库建设的合理性了,如果你也刚好是个数据仓库工程师,那应该是避免不了写 SQL 的了,但是我的理解是这里的 SQL 并不是上面提到的取数需求这种无趣无意义的 SQL,数仓的建设更多需要的是业务层面的理解,需要考虑更多的是如何能把数据的价值体现出来,很多业务方的需求其实是拍脑袋想出来的,要知道你是离数据最近的人,你也应当是对数据最熟悉的人,你应该是最能判断数据如何展示是有意义的,以及如何让自己的数据去发挥出最大的价值。

“数据驱动”是我很喜欢的一个词,如果能真正地做到数据驱动业务,那你写的SQL没白写,你是个SQL King,但真正能做到这样的人是少之又少,这其实是技术与业务的一个结合,这个方向上不仅仅对技术有要求,更重要的是需要培养对业务的理解能力。

3. 数据挖掘

其实很多的大数据开发,大数据分析,都是想往数据挖掘的方向发展的,但很多人都觉得门槛太高,被自己吓住了,不敢迈出尝试的第一步,虽然说数据挖掘入门会有一点门槛,但是其实并没有大家想象得那么难,高等数据,概率论,这些课程大家在大学应该都学过,大部分忘了没事,基本的概念记得即可,但是重点是你得耐得住漫长学习过程的寂寞。

另外,算法的工程落地是需要做很多开发类工作的,数据准备,接口开发等等,据我所知很多公司这些活都还是由数据挖掘的人来做的,所以也许数据挖掘师在算法上很强,但是你在工程上是有优势的,前两天看了木东居士老师的一篇文章,印象最深刻的一句话是“错位竞争”,转行做数据挖掘的想在学术上和别人硬碰硬是很难的,但是你有你的长处,你要把它发挥出来。

4. 结语

脱坑的方式其实有很多种,但是重点还是要看个人的自驱力,自己是不是真的在推动自己去脱坑了,还是只是停留在口头的抱怨。

另外,之前有几个童鞋问过我有没有数据挖掘入门的视频课程,不知道还有没有需要的童鞋,有的话就关注下公众号【大叔据】呗,人数的多话我去帮大家找找,找个高质量的过几天发出来。

觉得有价值请关注 :公众号「大叔据」

大数据 SQL Boy 脱坑指南的更多相关文章

  1. 最强最全面的大数据SQL经典面试题(由31位大佬共同协作完成)

    本套SQL题的答案是由许多小伙伴共同贡献的,1+1的力量是远远大于2的,有不少题目都采用了非常巧妙的解法,也有不少题目有多种解法.本套大数据SQL题不仅题目丰富多样,答案更是精彩绝伦! 注:以下参考答 ...

  2. 开发一个不需要重写成Hive QL的大数据SQL引擎

    摘要:开发一款能支持标准数据库SQL的大数据仓库引擎,让那些在Oracle上运行良好的SQL可以直接运行在Hadoop上,而不需要重写成Hive QL. 本文分享自华为云社区<​​​​​​​​​ ...

  3. 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    转自http://blog.163.com/zhangjie_0303/blog/static/9908270620146951355834/ 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 w ...

  4. (转)提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  5. (转载)提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. mysql千万级大数据SQL查询优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  7. mysql千万级大数据SQL查询优化30条经验

    转自http://blog.163.com/zhangjie_0303/blog/static/9908270620146951355834/ 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 w ...

  8. 30个mysql千万级大数据SQL查询优化技巧详解

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  9. Sql server 千万级大数据SQL查询优化的几点建议

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

随机推荐

  1. Tinyhttpd for Windows(学习型的项目,才500多行代码)

    前言 TinyHTTPd是一个开源的简易学习型的HTTP服务器,项目主页在:http://tinyhttpd.sourceforge.net/,源代码下载:https://sourceforge.ne ...

  2. EnterpriseLibrary 6.0 AOP 使用问题

    因为EnterPrise Library 6.0改动了模块的功能类不再自动从Unity创建了,也就是引导也不依赖Unity容器组件,需要先使用静态方法注册一下 private static void ...

  3. ASP.NET MVC控制器Controller中参数

    前述文章参见:ASP.NET MVC控制器Controller 绪论 之前的控制器返回的均为常量字符串,接下来展示如何获取请求传来的参数,而返回"动态"的字符串. 可以在操作方法B ...

  4. JAVA SHA1加密

    public static String getSha1(String str){ if(str==null||str.length()==0){ return null; } char hexDig ...

  5. CheckSynchronize实现的不必要的复杂

    在system.classes单元中,CheckSynchronize在ThreadLock上持续调用TMonitor的Exit和Enter以保护SyncList. 因为代码做的第一件事是换出Sync ...

  6. 前端开发在手机UC浏览器上遇到的坑

    1.user-scalable问题 写手机页面都会加一个meta标签 <meta content="width=device-width, initial-scale=1.0, max ...

  7. 由TreeView 如何触发OnSelectedNodeChanged事件想到的与做到的

    前提是每层的结点上设置了NavigateUrl OnSelectedNodeChanged事件好像失去了作用. 另外TreeView是没有AutoPostBack的!!!! 那么要如何触发OnSele ...

  8. 共识协议——RAFT&PBFT

    区块链是一个没有中央权威的分布式对等系统.虽然权力下放可以防止各方的腐败行为,但是它必需要有一个可靠的共识协议来作出决策,让分散在世界各地的节点可以形成一致的意见.常见的共识算法有比特币采用的POW, ...

  9. CentOS7.x mini安装OVS

    命令均在root用户下运行: 一.关闭防护墙及selinux sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config setenfor ...

  10. Android 上传开源项目到 jcenter 实战踩坑之路

    本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...