大数据仓库-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 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

分级告警策略,人性化系统监控?

要介绍统一监控平台,得先从告警策略聊起,后续再聊不同维度监控的架构与实现细节。 一、啥是告警? 监控平台发现系统异常,向系统负责人发出文字(例如,邮件/短信),...

3715
来自专栏美图数据技术团队

美图分布式Bitmap实践:Naix

大数据技术和应用系统目前已经在各个行业中发挥着巨大的作用,各种各样的开源技术也给大数据从业人员带来了很大的便利。Bitmap 作为一种大数据需求下产生的计算体系...

551
来自专栏大数据学习笔记

Hadoop基础教程-第10章 HBase:Hadoop数据库(10.1 NoSQL介绍)(草稿)

第10章 HBase:Hadoop数据库 10.1 NoSQL介绍 10.1.1 NoSQL简介 随着互联网技术(互联网+,物联网)发展,特别是大数据时代到来,...

1749
来自专栏曾钦松的专栏

万亿级调用下的优雅:微信序列号生成器架构设计及演变 ( 上 )

微信同步机制的背后,需要一个高可用、高可靠的序列号生成器来产生同步数据用的版本号。这个序列号生成器我们称之为 seqsvr ,本文会重点介绍 seqsvr 的架...

2.1K1
来自专栏沃趣科技

容器化RDS|计算存储分离 or 本地存储

随着交流机会的增多(集中在金融行业, 规模都在各自领域数一数二), 发现大家对 Docker + Kubernetes 的接受程度超乎想象, 并极有兴趣将这套架...

4258
来自专栏IT技术精选文摘

微信后台异步消息队列的优化升级实践分享

1073
来自专栏架构师之路

单KEY业务,数据库水平切分架构实践 | 架构师之路

提醒,本文较长,可提前收藏/转发。 本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: ...

3616
来自专栏ATYUN订阅号

数据虚拟化:为人工智能和机器学习解锁数据

在可靠性、准确性和性能方面,人工智能和机器学习都严重依赖于大型设备。因为数据池越大,你就越能对模型进行训练。这就是为什么重要的数据平台能够高效地处理不同的数据流...

35611
来自专栏张善友的专栏

IBM网站 构建您的SOA 系列文章

本系列文章包含三个部分,将在行业采用的流程和方法与 SOA 之间建立紧密的联系,并演示如何将其一起使用。  1. 构建您的 SOA: 第 1 部分,成熟度与...

1815
来自专栏数据库

开放的计算能力为数据库瘦身

开放的计算能力为数据库瘦身 计算封闭性导致臃肿的数据库 我们在上一期谈到,数据库的臃肿,也就是过多的中间表以及相关存储过程,是由于其计算封闭性造成的。如果能够实...

1679

扫描关注云+社区