对于那些在大数据领域开始职业生涯或从传统RDBMS转型的人来说,SQL是一种必不可少的编程语言。
介绍
大数据系统的最新进展实现了数据湖和数据仓库进行更快的处理、高效的分发和数据存储。因此导致了传统关系数据库领域的分析技术向大数据领域的巨大迁移。
由于SQL是大数据系统中的查询语言,这种转变并不像预期的那么困难。
另一方面,一些工程师和分析师也开始逐渐涉足大数据领域。SQL是大数据系统中的高级语言,对于每个人来说都是必不可少的技能。
这篇文章将帮助您理解为什么SQL对于在大数据领域开始职业生涯或从传统RDBMS转型的人来说是一种必不可少的编程语言。本文还将回顾Hadoop引擎上广泛使用的,可以有效地用于数据转换和探索的SQL语言。
为什么要学习SQL
结构化查询语言(SQL)是一种广泛采用的声明性语言,自关系数据库系统开始以来就已经存在。
由于具有声明性,因此易于学习和理解,并且符合美国国家标准协会(ANSI)的标准。这意味着,除每个数据库提供的附录功能外,SQL语句的基本结构也可以使用ANSI的数据库进行维护,同时有助于使用其他数据库。
由于SQL使用率很高,因此诸如Hadoop之类的大数据范例技术使SQL-on-Hadoop引擎运行在分析引擎之上。其中包括蜂巢、黑斑羚和其他处理引擎。
从就业能力的角度来看,SQL被认为是数据专业人员最重要的语言,因此,SQL已成为数据专业人员的必然技能。
SQL-On-Hadoop
开源SQL-On-Hadoop引擎在不同的Hadoop技术和大数据处理引擎上运行。如果精通SQL的话,那么这些工具应该很容易就能从基于分布式文件系统构建的数据湖和数据仓库中查询数据。
为特定问题选择正确的SQL-On-Hadoop引擎可能非常困难。以下针对每个引擎的说明列表可以帮助您确定
Spark SQL
在Apache Spark之上运行的SQL引擎是Spark SQL。Apache Spark 3.0.0以后的版本符合是ANSI的,因此用户可以利用Spark SQL的本机特性以及本机ANSI兼容的操作和功能。更好的是,一些云服务提供商还提供spark分析引擎作为PAAS(平台即服务)模型,称为Databricks,具有灵活的自动伸缩功能、协作功能,并与云服务提供商(如AWS和Microsoft Azure)耦合。
许可: 开源Apache许可(Spark),付费PAAS(Databricks)
数据格式:所有标准Hadoop文件格式-JDBC / ODBC、列格式(Parquet、ORC等)、配置单元表、对象存储格式(JSON)、平面文件(CSV、TSV等)
关键要点:
Apache Drill
Apache Dril是一个完全符合ANSI的大型并行处理引擎。Apache Drill的一个有趣的方面是它负责连接到多个数据源,存储为JSON数据模型,并在检索到的数据之上执行聚合。还可以从Spark中运行Apache Drill来检索数据。
许可:开源Apache许可
数据格式:所有标准Hadoop文件格式
关键要点:
Apache Hive上的HQL
Hive是Hadoop 文件系统上的查询引擎,用户可以使用HQL(Hive Query Language)在Hive上进行查询。它是一种类似SQL的查询语言,不完全符合ANSI。Hive对数据进行批处理,这些数据只不过是在后台运行的Map Reduce作业。
许可: 开源Apache许可
数据位置:仅结构化格式
关键要点:
Presto
Teradata支持由Facebook开发的开源并行处理Hadoop查询引擎。该查询引擎能够跨越多个数据源并执行交互式查询,这与能够进行批处理的Apache Hive不同。
许可: 开源Apache许可
数据位置:所有标准Hadoop文件格式
关键要点:
Apache Impala
Impala是又一个大规模并行处理查询引擎,可以在Hadoop和HBase上进行交互式查询。Impala支持HQL,与Hive不同,它不使用Map-Reduce,因此与Hive相比,查询速度更快。
许可:开源Apache许可
数据位置:除ORC之外的所有标准Hadoop文件格式。
关键要点:
来源:DZone
地址:
https://dzone.com/articles/sql-as-an-essential-tool-for-the-big-data-landscap
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】