大数据时代,我们如何选OLAP数据分析引擎
随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网企业的重点。在做数据分析时有OLAP、OLTP是我们必定会遇到的技术,在介绍OLAP引擎技术选型之前,我们先看看这两个技术分别是什么意思?
OLTP(OnlineTransactionProcessing联机事务处理),是传统关系型数据库的应用技术,提供日常的、基本的事务处理,比如在线交易之类。OLAP(OnlineAnalyticalProcessing联机分析处理),是大数据分析的应用技术,提供复杂的分析操作、侧重决策支持。目前主流的OLAP引擎包括Hive、Presto、Druid、Clickhouse、Kylin、Sparksql、Greeplum,每个引擎都有它各自的特点,我们今天就来简单聊一聊,大家在实际使用时根据自己需求选择就好~
第一款OLAP引擎便是Hive。它是基于Hadoop的数据仓库工具,可将结构化的数据直接转换成数据库表,HIve系统将HQL语句(类SQL语法)转化成MapReduce进行执行,本质上就是一款基于HDFS的MapReduce计算框架,使用HQL就可以对存储数据进行分析.Hive的优点是学习简单(支持SQL语法)、扩展性强(底层基于HDFS),缺点就是太慢了(数据处理任务全转换成MapReduce任务)。如果你的业务有数据分析的诉求,并且可接受一定的延迟,那么Hive是个不错的选择噢!
第二款OLAP引擎便是Presto。它是FaceBook开源的大数据分布式SQL查询引擎,客户端发出数据查询请求时,先有语法解析器进行解析,解析之后再给到对应的节点执行任务。Presto通过自己系统内部的查询和执行引擎来完成数据分析处理,所有的操作都在内存中完成,所以速度会快很多。Presto的优点是速度快、支持多数据源接入,缺点是容易内存溢出。
第三款引擎便是Clickhouse数据库。它是俄罗斯开源的一款列式数据库,在做数据分析时可直接选择某几列来作为分析属性,获取数据非常快,延迟低,如果按行读取,每次只能读取一个数据,有10000条就需要读取1000次,降低了效率。此外在存储层它实现了数据有序存储、主键索引、稀疏索引、数据分区分片、主备复制等功能。所谓数据的有序存储指的是数据在建表时可以将数据按照某些列进行排序,排序之后,相同类型的数据在磁盘上有序的存储,在进行范围查询时所获取的数据都存储在一个或若干个连续的空间内,极大的减少了磁盘IO时间;此外在计算层ClickHouse提供了多核并行、分布式计算、近似计算、复杂数据类型支持等技术能力,最大化程度利用CPU资源,提升系统查询速度。Clickhouse的优点就是快快快、分布式高可用,在数据分析这纬度看基本没有缺点。
第四款引擎便是Kylin图数据库。它是Apache基金会开源的一款数据库,也是结合当前人工智能知识图谱的一个最佳数据库。在Kylin中做数据分析的逻辑是用空间换时间,所有的数据都先预处理。在Kylin中通过Cube来做数据预聚合,比如我们想做双十二某地区某品类的销售额,因为有三个维度做分析,因此在Kylin中会建立一个三维的数据表(时间、地区、品类),在数据分析时可以拆分到三维、二维、一维,三维包含地区&品类&时间,二维包含地区品类、地区时间、品类时间,一维包含地区、品类、时间,每一维度的数据都提前聚合号存储在HBase中了,因此当数据分析时,直接拿聚合好的数据处理展示。Kylin的优点就是简单、快速,缺点就是可选数据分析维度太多。
本文介绍了四款大数据分析OLAP引擎,它们所表现出来的业态有数据仓库、分析引擎、数据库,但这丝毫不影响它们作为数据分析的引擎提供服务。互联网的下半场已经进入了精细化时代,远的不多,就看最近最火的社区团购生意,如果没有背后的数据引擎做技术支撑,各互联网巨头们如何准确判断用户画像、商品售卖趋势、整体营收变化趋势呢?不过每一款数据分析引擎都有自己适合的业务场景,企业根据自己使用成本、维护成本、业务场景进行选择就好~