java架构师吧 关注:258贴子:17,887
  • 0回复贴,共1

目前支持混合负载技术架构大致有哪几种?

只看楼主收藏回复

第一种是行存为主,内存列存为辅。针对有需要的表会同时存在一份行存储和列存储,在列存储上做分析操作,在行存储上进行更新,定期同步到列存储里,可以灵活指定需要采用行存与列存的表。技术难点在于哪些数据转为列存、如何用行存和列存回答查询。第二种是列存为主,行存为辅。增量数据通过delta表定期转为列存,主列存主要处理OLAP类分析查询,增量行存负责OLTP类事务操作,并直接将更新数据定期合并到主列存中。缺点是OLTP处理性能中等,扩展性也不高,负载隔离性很低。第三种是主机行存、备机内存列存。备机通过日志复制转为内存的列存提供分析能力,查询基于代价估计后决定是否下推到内存列引擎中执行,常被访问的热数据将会留在内存中,冷数据将会被压缩后持久化到外存中。第四种是多副本行列共存。通过多副本进行存储,主采用行存,副本采用列存,通过异步复制Raft log的方式将更新从行存节点同步到列存节点,具有较高负载隔离性和扩展性,数据分析新鲜度偏低。具体来说,就像柏睿的RapidsDB,是通过统一的行列混存架构同时支持OLAP、OLTP实时分析处理。用户可以通过标准的SQL DDL语法创建列式表或者行式表,并可以通过使用行式存储表和列式存储表的组合来达到在一个查询任务中合并实时数据和历史数据的目的,从而简化技术堆栈。


1楼2022-05-30 12:40回复