分享

人工智能[3331]数据组织的五大核心技术[4]

 赵站长的博客 2024-03-28 发布于北京

5. Google Mesa数据模型

Google发表了一篇有关大数据系统的论文,讨论了一个名为Mesa的数据仓库系统,它能处理近实时数据,即使在整个数据中心断线后还能正常工作。

Mesa是一个高度可扩展的分析数据仓库系统,能存储与Google广告业务有关的关键测量数据。Mesa能满足复杂和具有挑战性的用户与系统需求,包括近实时数据提取和查询,同时在海量数据和查询量中保持高可用性、可靠性、容错率和扩展性。Mesa每秒能处理数百万行更新,每天能进行数十亿次查询,抓取数万亿行数据。Mesa能进行跨数据中心复制,即使在整个数据中心发生故障时,也能以低延迟返回一致和可重复的查询结果。

针对数分钟更新吞吐量、跨数据中心等严苛需求,已有的商业数据仓库系统(处理周期往往以天和周来计算)和Google的解决方案包括BigTable、MegaStore、Spanner和F1都无法满足要求。BigTable无法提供必要的原子性,MegaStore、Spanner和F1无法满足峰值更新需求。此外,Google自己开发的Tenzing、Dremel,以及Twitter开发的Scribe、LinkedIn的Avatara、Facebook的Hive及Hadoop DB等Web规模数据仓库处理的都是批量负载。

Mesa的主要特点如下:

近实时地更新吞吐量。支持持续更新,每秒支持数百万行更新。

同时支持低时延查询性能和批量大量查询。99%的查询在几百毫秒之内返回。

跨数据中心备份。

HDFS最早设定的是数据不更新,只增量叠加。传统数据仓库(如Greenplum、Treadata、Oracle RAC)通常会遇到两个问题:

更新的throughput不高。

更新影响查询。

为了解决这两个问题,Google的Mesa系统设计了一个MVCC的数据模型,通过增量更新和合并技术,将离散的更新I/O转变成批量I/O,平衡了查询和更新的冲突,提高了更新的吞吐量。

Mesa设计了一个多版本管理技术来解决更新的问题:

使用二维表来管理数据,每张表都要制定Schema,类似于传统的数据库。

每个字段用Key/Value来管理。Schema就是Key的集合。

每个字段指定一个聚合函数F(最常见的是SUM)。

数据更新进来的时候,按照MVCC增量更新,并给增量更新指定一个版本号N和谓词P。

查询进来的时候,自动识别聚合函数,把所有版本的更新按照聚合函数自动计算出来。

多版本如果永远不合并,则存储的代价会非常大。而且因为每次查询需要遍历所有版本号,所以版本过多会影响查询。因此,定期合并是必需的。

Mesa采用两段更新的策略。更新数据按版本号实时写入,每10个版本自动合并;每天全量合并一遍,合并成一个基础版本。

我是一位爱学习的老人!本站主要是些学习体验与分享(其中会引用一些作品的原话并结合我的一生体会与经验加工整理而成!在此一并感谢!如有不妥之处敬请与我联系,我会妥善处理,谢谢!)我写的主要是中老年人各方面应注意的事儿!退休后我希望通过这个平台广交朋友,互助交流,共筑美好生活!!!!!! 更多文章请参看http://www.赵站长的博客。期待大家的光临与指教哦^0^!欢迎大家转发! 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多