大数据时常被人误解只是写 SQL,导致有些想要入行的小伙伴非常犹豫,实际上,大数据的技术是非常广泛的,涉及到方方面面,分布式存储,分布式计算,数据仓库方法论等等,SQL 只是为了能够让复杂的底层技术能够给上层开发人员更方便更简单地使用而增加的一个中间层,所以 SQL 只是表象,大数据开发人员更注重的应该是藏在 SQL 后面的东西。
在本场 Chat 中,会讲到如下内容:
- 一条大数据 SQL 诞生记
- SQL 背后的大数据原理
- 大数据 SQL Boy 脱坑指南
适合人群:想要入行大数据的新人,苦恼于长期写 SQL 无法破局的大数据从业者。
应届生小祖参加了个需求分析会回来后跟我说被产品怼了一句:
"不就是写 SQL 吗,要那么久吗"
欺负我小弟,这我肯定不能忍呀,于是我写了一篇文章发在了公司的 wiki:
一条大数据 SQL 诞生记 ———— 我们大数据写的是一般人写不出的 SQL
在哪里写 SQL?这个问题高级点的问法是用哪种 SQL 引擎?
SparkSQL、Hive、Phoenix、Drill、Impala、Presto、Druid、Kylin (这里的 SQL 引擎是广义的,大家不必钻牛角尖)
我用一句话简单概括下这几个东西,先不管你们现在看不看得懂:
- Hive:把 sql 解析后用 MapReduce 跑
- SparkSQL:把 sql 解析后用 Spark 跑,比 hive 快点
- Phoenix:一个绕过了 MapReduce 运行在 HBase 上的 SQL 框架
- Drill/Impala/Presto:交互式查询 OLAP,都是类似 google Dremel 的东西,区别这里就不说了
- Druid/Kylin:强调预计算,同样是 OLAP
这就涉及到更多的问题了,对这些组件不熟悉的同学可能调研过程就得花上一个多月。比如:
- 需求是实时计算还是离线分析?
- 数据是增量数据还是静态数据?
- 数据量有多大?
- 能容忍多长的响应时间?
总之,