大数据仓库-kudu

数据仓库里面存储引擎是非常重要的,存储引擎的好坏,基本决定了整个数仓的基础。

kudu目标

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

支持双活复制集群

kudu核心机制

Cloudera有一篇论文描述kudu的机制,Kudu: Storage for Fast Analytics on Fast Data 。可以从http://getkudu.io/kudu.pdf下载。这里简单说下kudu的关键机制。

  1. 模仿数据库,以二维表的形式组织数据,创建表的时候需要指定schema。所以只支持结构化数据。
  2. 每个表指定一个或多个主键。
  3. 支持insert/update/delete,这些修改操作全部要指定主键。
  4. read操作,只支持scan原语。
  5. 一致性模型,默认支持snapshot ,这个可以保证scan和单个客户端 read-you-writes一致性保证。更强的一致性保证,提供manually propagate timestamps between clients或者commit-wait。
  6. cluster类似hbase简单的M-S结构,master支持备份。
  7. 单个表支持水平分割,partitions叫tablets,单行一定在一个tablets里面,支持范围,以及list等更灵活的分区键。
  8. 使用Raft 协议,可以根据SLA指定备份块数量。
  9. 列式存储
  10. delta flushes,数据先更新到内存中,最后在合并到最终存储中,有专门到后台进程负责。
  11. Lazy Materialization ,对一些选择性谓词,可以帮助跳过很多不必要的数据。
  12. 支持和MR/SPARK/IMPALA等集成,支持Locality ,Columnar Projection ,Predicate pushdown 等。

总结

为应对BI领域少量更新和大量扫描分析场景,kudu 借鉴了很多传统数仓等技术。对这个领域目前是impala+kudu/Hive/Spark SQL/Greenplum MPP数据库在混战,未来这个会走向融合,传统的mpp数据库个人认为会是一个过渡产品。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2015-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Youngxj

QQ HD自带防撤回

48330
来自专栏程序员互动联盟

【编程基础】聊聊C语言-存储世界的奥秘

上一篇讲到了C语言的数据类型,从这篇我们开始讲讲与数据类型有这着千丝万缕联系的变量。 所有语言的变量都是存储在计算机存储系统中,C语言的变量当然也不例外。所以...

39270
来自专栏木子昭的博客

你的照片安全么?

照片元信息 我们平时拍摄的图片,不仅包含了可见的像素信息,还包含了我们看不到的隐藏信息(元信息),而这些元信息,往往会不经意间泄露我们的隐私. ---- ...

41770
来自专栏逸鹏说道

SQL vs NoSQL:如何选择?

SQL 数据库: 在表中存储相关联的数据 在使用之前需要定义表的一个模式 鼓励标准化减少数据冗余 支持从多个表中检索相关数据表连接在一个单一的命令 实现数据完整...

35050
来自专栏黑白安全

谷歌云又瘫痪:因新功能 bug 被触发

由于谷歌云平台出现了问题,昨天多个热门在线服务遇到了停机或响应缓慢的现象。经谷歌确认,它的许多工具出现了问题,而Discord、Spotify和Snapchat...

10720
来自专栏媒矿工厂

定义和测量延迟

想要优化延迟,可Latency到底是多少?延迟始终是媒体内容传输的一个重要关注点,人们也在不断尝试用新的方法来优化延迟,本文参考AWS的一些新技术,介绍了延迟的...

36730
来自专栏IT派

这一篇就够了 python语音识别指南终极版

【导读】亚马逊的 Alexa 的巨大成功已经证明:在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求。整合了语音识别的 Python 程序提供了其他...

1.1K00
来自专栏机器学习算法与Python学习

Python语音识别终极指北,没错,就是指北!

53330
来自专栏北京马哥教育

python语音识别终极指南

84270
来自专栏Debian社区

Qt5.9发布:如何评价QT-5.9的变化

5月31号Qt正式发布了新版本5.9,声明修复了大量的bug(2000多个?),增加了大量的新特性,并且更稳定。这是2015年5.6版本之后的一个LTS(长期维...

36620

扫码关注云+社区

领取腾讯云代金券