传统数据仓库
在企业中,传统数据仓库的技术选型,较多的还是 Oracle RAC、DB2、Teradata。选择 Greenplum 的企业也有很多。
Oracle RAC
Oracle RAC(Real Application Clusters)是 Oracle 集群版本;商业数据库;它不属于 MPP 架构。MPP 架构是非共享架构,而 Oracle 各节点之间共享磁盘资源。
Oracle 在使用上是最方便的,而且市面上学习材料众多,运维也比较简单。
但 Oracle 单个集群,基本只能支持 100 左右的节点,所以适合数据量不大的场景。
DB2 DPF
DB2 DPF 是 IBM 的商业数据库,兼容 IBM 的大型机、小型机,DB2 DPF 版本是 MPP 架构。DB2 与 IBM 的硬件兼容最优,而且一般会随着商业活动进行赠送。一般企业在数仓选型时较少选择 DB2。
Teradata
Teradata 基本上会出现在企业 MPP 数据仓库选型的清单中,属于商业并行数据库,易用性和性能很出色。
Teradata 主要以一体机的形式进行销售,可用性和高并发性能比 Greenplum 要优异。自带数据引擎和查询工具。虽然价格较贵,但性能优秀,稳定易用,是很多大型企业商业数仓的选型。
Greenplum
Greenplum 是开源 MPP 中比较出色的产品,基于 PostgreSQL,搭建成本低,是老牌 MPP 数据库的代表。
因为是开源产品,所以学习资料众多,技术更新也较快。但抛开价格因素,稳定性、易用性、性能要比 Teradata 差一些。
但性能在众多开源产品中依然很出色,属于性价比很高的 MPP 数据仓库。
大数据数据仓库
Hive
Hive 是基于 Hadoop 分布式架构的数据仓库产品,也是当下主流的数据仓库产品;它将 SQL 转化成大数据计算引擎 MapReduce 进行运算,也支持切换为 Spark 引擎。在海量数据的批处理分析计算上拥有优秀的性能,数据处理时吞吐量大, 但延时较高,适合海量数据的跑批处理场景。
但 Hive 的 SQL 支持率不高(60% 左右),使用它自己的语法 HQL,业务迁移起来较为麻烦,这也是大数据数仓的通病。虽然因延时较大被开发人员诟病,但离线批处理才是它真正的适用场景和主场。
Spark SQL
Spark SQL 是大数据另一个生态圈 Spark 的数据仓库产品,也是大数据数仓主流的选型。它诞生的原因是因为 Hive 原生支持的 MapReduce 引擎速度太慢,开源团队从而产生的 Hive On Spark 的一款产品;最后进入 Spark 生态圈,衍生为 Spark SQL。
Spark SQL 与 Hive 切换为 Spark 引擎差别不是很大,但 Hive 需要单独安装、运维,而 Spark SQL 只要有 Spark 集群就可以运行,无需单独安装。而且 Spark SQL 开发起来更为灵活,而且对 Spark 引擎的原生支持也更好,效率也更出色一些。
HBase
HBase 是一款大数据的 NoSQL 数据库;一般作为结构化数据仓库的补充,更适合存储非结构化、半结构化数据,也可以存储结构化数据;拥有高并发读的特性;因为 NoSQL 的特性,表结构 DDL 的变动对其影响很小。
经常用于实时流处理场景的数据存储、前端系统高并发业务查询、非/半结构化数据存储、DDL 变动频繁的业务。
Impala
Impala 是 MPP 架构的数据查询引擎,数据源兼容 Hive、Spark SQL、HBase 等,能提供快速交互查询。解决了 Hive、Spark SQL 这类专注于批处理分析场景的数据仓库查询慢的问题。
一般作为数据仓库的补充产品进行使用,当做数据仓库的查询接口。
HAWQ
HAWQ 是老牌 MPP 数据仓库 Greenplum 在 Hadoop 上的移植产品,属于 MPP+ 分布式批处理架构。
它兼容了两者的特性,SQL 支持率高,性能也比较出色。
TIDB
TIDB 是一个 NewSQL 数据库,架构是 MPP + SMP;底层是 NoSQL 架构,但又支持 SQL 语法(主要兼容 MySQL)。可以同时兼容 OLTP、OLAP。
但它更侧重于 OLTP,在数据仓库选型中不占优势。
小结
本篇主要介绍了一些常见的数据仓库产品,当然数据仓库产品不仅只有这些,在企业选型的时候可以多留意它们的架构、适用场景、易用性方面的情况。