Hologres 定位是能够做离线数据和实时数据的存储。对于典型的 Lambda 架构,是 将实时数据通过实时数据的链路写入到实时数据存储中,离线数据通过离线数据的链路写入 到离线存储中,然后将不同的 Query 放到不同的存储中,再做一个 Merge。对于 Hologres,如下图所示,数据收集之后可以走不同的处理链路,但是处理完成之后的结果 都可以写入 Hologres 中,这样就解决了数据的异质性问题,也不需要去区分离线表和实时 表,降低了复杂度,也大大降低了使用者的学习成本。Hologres 底层支持行存储和列存储两种文件格式,对于两者的处理也有略微不同,具 体如下图所示。数据写入的时候先写 log,log 是存储在分布式文件系统中的,保证整个服 务的数据不会丢失,因为即便服务器挂掉也可以从分布式系统中恢复。Log 写完之后再写 MemTable,就是内存表,这样子才认为是数据写入成功。MemTable 有一定的大小,写 满了之后会将其中的数据逐渐 Flash 到文件中,文件是存储在分布式系统中的。而对于行 存储和列存储的区别就在 Flash 到文件的这个过程中,这个过程会将行存表 Flash 成行存 储的文件,列存表会 Flash 成列存文件。在 Flash 的过程中会产生很多小文件,后台会将 这些小文件合并成一个大文件,这里也会有所不同。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975