首页 > 大数据 > > 子包叨叨叨之大数据与SQL
目前已经越来越多的公司开始拥抱大数据。从大数据出现开始就不可避免的开始抢占传统数据库的市场份额。相信很多传统数据库人员心中也多多少少会有过是否要学习大数据、从事大数据的念头,但却往往念头刚起就又被大数据环境中海量的组件和Java,Scala等编程语言所打灭。甚至14年15年的时候还比较流行做大数据必须会Java语言,Java编程人员更适合转大数据这样的说法,好像大数据跟我们传统的数据管理人员、数据开发人员没有什么关系,反倒是和开发人员更适合?
那随着时间的发展,大数据环境的进一步完善、稳定。事实确实是这样么?传统数据人员,还是要先转变为开发人员,才能从事大数据?就没有一个更快捷,更方便,更适合数据人员的接入大数据方式么?
有的,今天我们就来聊聊大数据与传统数据人员间的最佳连接点 - SQL。
这里我们先说说目前最流行的三大分布式计算框架:

Hadoop MapReduce

Spark
Flink
这其中,Hadoop的MapReduce是最早的大数据分布式计算框架,首选编程语言为Java,但受限于编程模型不够灵活,效率也没有后期的计算框架高,市场占有量被抢占严重。
最初的所谓Java人员更适合做大数据一定程度上也来源与该计算框架的使用确实需要一定Java语言功底。
而现在我们在使用Hadoop的时候,已经可以实现用SQL语句来分析数据,这就是Hive。

如上图所示,Hive可以自动将类SQL语句(HiveQL)分析转换为MapReduce程序,并在集群上自动运行。也就是说曾经要编写几十上百行的Java程序,现在只需要几行SQL语句就搞定了。
类似的工具还有Impala,

Impala比Hive更优化的地方在于,其直接摒弃了MapReduce框架,对SQL语句分析后,使用自己编写的计算框架,已达到更快速分析数据的目的。
由此可见,在Hadoop平台中,已经实现了使用SQL语言即可进行大多数数据查询功能。
那接下来再来看看Spark,目前最火爆的大数据计算平台。
Spark的火爆,除了其本身是内存级数据框架,导致计算速度上远高于Hadoop的MapReduce框架外,更在于Spark提出了用一个统一的引擎支持批处理,流处理,交互式查询,机器学习等常见的数据处理场景。


而其中Spark SQL直接支持使用SQL语句操作其基本数据抽象DataFrame,怎么样,看着熟悉吧,spark.sql(“select … ”)
最后来看看近两年增长最快的Flink计算框架,

// read a DataStream from an external source
val ds: DataStream[(Long, String, Integer)] = env.addSource(...)
// SQL query with an inlined (unregistered) table
val table = ds.toTable(tableEnv, 'user, 'product, 'amount)
val result = tableEnv.sqlQuery(
s"SELECT SUM(amount) FROM $table WHERE product LIKE '%Rubber%'")
同样,Flink计算框架同样实现了对SQL的支持。
可以看到,目前最流行的三个分布式计算框架,都纷纷实现了对SQL语句的支持。
不仅如此,同样还有另一些能实现使用SQL快速分析大数据的工具—Kylin,Phoenix



看过这些内容后我们不难发现,无论是各个计算框架,还是在一些查询工具中,使用最多的分析语言并不是Java、Scala或Python,而是SQL,可以说SQL才是接入大数据计算和分析的最佳接入点。
至于说数据环境和组件的搭建、管理和维护,这些不应该是曾经DBA和运维人员更熟悉的工作么?
所以说,不会编程语言能不能接入大数据,完全可以!数据管理人员和数据开发人员能不能从事大数据,能,而且应该是能更快的转入大数据方向。
当然,这里并不是说只会SQL一门语言就可以完全把大数据拿下,我们这里反复强调SQL语言是学习大数据的最佳连接点,是可以快速接入大数据的基础。而如果想要完全转入大数据行业的话分布式架构的原理、各平台的不同组件应用,分析和挖掘常用的编程语言级框架还是不可避免需要去学习和研究的。
最后祝所有想要从事大数据方向的同学都能攻克学习路上的一个个难关,最后成功完成大数据相关技能域的学习,提升自身价值,实现自己的目标。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28530558/viewspace-3144479/ ,如需转载,请注明出处,否则将追究法律责任。