Kudu--
入门指南
一、
介绍
、背景介绍
在
之前,大数据主要以两种方式存储;
【
】:静态数据
以
引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无
法进行随机的读写。
【
】:动态数据以
、
作为存储引擎,适用于大数据随机读写场景。 局限性是批量
读取吞吐量远不如
,不适用于批量数据分析的场景。
这两种数据在存储方式上完全不同,进而导致使用场景完全不同,但在真实的场景中,边界可能没有那么
清晰,面对既需要随机读写,又需要批量分析的大数据场景,该如何选择呢? 个场景中,单种存储引擎
无 法 满 足 业 务 需 求 , 我 们 需 要 通 过 多 种 大 数 据 工 具 组 合 来 满 足 这 一 需 求 , 如 下 图 所 示 :
如上图所示,数据实时写入
,实时的数据更新也在
完成,为了应对
需求,我
们定时将
数据写成静态的文件(如:
)导入到
引擎(如:
、
)。这
一架构能满足既需要随机读写,又可以支持
分析的场景,但他有如下缺点:
架构复杂。从架构上看,数据在
、消息队列、
间流转,涉及环节太多,运维成本很高。并
且每个环节需要保证高可用,都需要维护多个副本,存储空间也有一定的浪费。最后数据在多个系统上,
对数据安全策略、监控等都提出了挑战。
时效性低。数据从
导出成静态文件是周期性的,一般这个周期是一天(或一小时),在时效
性上不是很高。
难以应对后续的更新。真实场景中,总会有数据是延迟到达的。如果这些数据之前已经从
导出到
,新到的变更数据就难以处理了,一个方案是把原有数据应用上新的变更后重写一遍,但这代价又
很高。为了解决上述架构的这些问题,
应运而生。
的定位是
!"#
,是一个既支持随机读写、又支持
分析的大数据存
储引擎。
评论