针对于不断新增的海量数据资源,企业需要通过及时地数据分析处理,才能从中挖掘出价值线索,反哺业务,实现数据驱动业务发展。而企业级的数据分析场景,多是采用OLAP数据分析引擎。今天的大数据开发分享,我们就主要来讲讲主流的几个OLAP开源数据分析引擎。
对于企业而言,想要控制成本,那么选择开源框架进行开发是不二之选,而在OLAP数据分析领域,开源的技术框架是非常多的,而各个框架各有优缺点,最终还是需要结合到实际需求去进行技术选型。
OLAP开源引擎
目前市面上主流的开源OLAP引擎包含不限于:Hive、Spark SQL、Presto、Kylin、Impala、Druid、Clickhouse、Greeplum等,这里选取比较有代表性的几个框架来具体展开——
Apache Hive
说到Hive,大家想必都不算陌生,作为Hadoop的数据仓库工具,Hive在大规模的数据分析处理上,是非常有优势的。
Hive的运行原理,是将HQL语句(类SQL语法)转化成MapReduce进行执行,本质上来说,就是一款基于HDFS的MapReduce计算框架,使用HQL就可以对存储数据进行分析。
Hive的优点是学习简单(支持SQL语法)、扩展性强(底层基于HDFS)。但是同时,Hive的缺点也是明显的,因为底层需转换为MapReduce任务执行,所以延迟性是比较高的。所以通常来说,Hive更适合数据仓库的统计分析。
Spark SQL
SparkSQL的前身是Shark,它将 SQL 查询与 Spark 程序无缝集成,可以将结构化数据作为 Spark 的 RDD 进行查询。SparkSQL作为Spark生态的一员继续发展,而不再受限于Hive,只是兼容Hive。
Impala
Impala算是相对老牌一点的OLAP引擎,底层强依赖于kudu或Hive,其他的一概不支持,有很多大厂使用,比如滴滴,在前几年和性能不占优势的Hadoop系计算引擎相比,确实十几秒钟能把上千亿、TB级数据的SQL查出来让人眼前一亮,但是它的局限性在于是用C 写的,这让很多java系的伙伴望而生畏。
Presto
Presto是FaceBook开源的大数据分布式SQL查询引擎,客户端发出数据查询请求时,先有语法解析器进行解析,解析之后再给到对应的节点执行任务。Presto通过自己系统内部的查询和执行引擎来完成数据分析处理,所有的操作都在内存中完成,所以速度会快很多。Presto的优点是速度快、支持多数据源接入,缺点是容易内存溢出。
Clickhouse
Clickhouse是俄罗斯开源的一款列式数据库,在做数据分析时可直接选择某几列来作为分析属性,获取数据非常快,延迟低。在计算层,ClickHouse提供了多核并行、分布式计算、近似计算、复杂数据类型支持等技术能力,最大化程度利用CPU资源,提升系统查询速度。Clickhouse的优点就是快快快、分布式高可用,在数据分析这维度看基本没有缺点。
Kylin
是一个应用在T 1场景的olap引擎,提前建各个维度的cube,也就是相当于把你要查的东西全部提前跑出来,到时候直接拿就行了,所以预计算量很大,查询速度很快,这也是他的特点,也是在有限的应用场景管用,比如多维分析,速度极快。Kylin的优点就是简单、快速,缺点就是可选数据分析维度太多。
关于大数据开发,OLAP开源数据分析引擎,以上就对主流的一些产品做了基本的介绍了。对于大数据开发者而言,对于这些产品需要有相应的了解,并且能够根据需求来进行技术选型。