Hologres底层支持行存储和列存储两种文件格式,行存适用于基于主键(PK)的点查场 景,列存适用于OLAP复杂查询场景。Hologres对两种存储格式在底层的处理也有略微不 同。
数据写入的时候先写Log,Log存储在分布式文件系统,保证整个服务的数据不会丢失, 因为即便服务器宕机也可以从分布式系统中恢复。Log写完之后再写MemTable,就是内存 表,这样系统才认为是数据写入成功。MemTable有一定的大小,写满了之后会将其中的数 据逐渐Flush到文件中,文件是存储在分布式系统中的。而行存储和列存储的区别就在Flush 到文件的这个过程中,会将行存表Flush成行存储的文件,列存表Flush成列存文件。在Flush 的过程中会产生很多小文件,后台会将这些小文件合并成一个大文件。
以上内容摘自《阿里云实时数仓Hologres最佳实践合集》电子书,点击https://developer.aliyun.com/topic/download?id=996 可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975