数据仓库里面存储引擎是非常重要的,存储引擎的好坏,基本决定了整个数仓的基础。
cloudera公司最近发布了一个kudu存储引擎。按照cloudera的想法,kudu的出现是为了解决,hbase,parquet不能兼顾分析和更新的需求,所以需要一个新的存储引擎可以同时支持高吞吐的分析应用以及少量更新的应用。cloudera 的设计目标是:(http://blog.cloudera.com/blog/2015/09/kudu-new-apache-hadoop-storage-for-fast-analytics-on-fast-data/)
•Strong performance for both scan and random access to help customers simplify complex hybrid architectures
在扫描和随机访问两种场景下都有很强的性能,帮助客户简化混合架构。
•High CPU efficiency in order to maximize the return on investment that our customers are making in modern processors
高cpu利用率
•High IO efficiency in order to leverage modern persistent storage
高io效率充分利用现代存储
•The ability to update data in place, to avoid extraneous processing and data movement
支持数据原地更新
•The ability to support active-active replicated clusters that span multiple data centers in geographically distant locations
支持双活复制集群
Cloudera有一篇论文描述kudu的机制,Kudu: Storage for Fast Analytics on Fast Data 。可以从http://getkudu.io/kudu.pdf下载。这里简单说下kudu的关键机制。
为应对BI领域少量更新和大量扫描分析场景,kudu 借鉴了很多传统数仓等技术。对这个领域目前是impala+kudu/Hive/Spark SQL/Greenplum MPP数据库在混战,未来这个会走向融合,传统的mpp数据库个人认为会是一个过渡产品。