数据仓库服务 GAUSSDB(DWS)-HStore表使用优秀实践:基本原理
基本原理
在 GaussDB (DWS)中,CU是列存表存储数据的最小单元。列存表每列默认存储60000行数据为一个CU,CU生成后数据固定不可更改。无论是向列存表中插入1条还是60000条数据,都只会生成一个CU,在多次插入少量数据时,由于不能有效利用列存压缩能力,从而导致数据膨胀影响查询性能和磁盘使用率。
由于CU文件数据不能更改只能追加写,对CU中的数据做更新或删除都不会真正更改这个CU。删除是将老数据在字典中标记为作废,更新是标记老数据删除后,再写入一条新记录到新CU。在对列存表进行多次更新/删除操作,会导致列存表空间膨胀,大量空间无法有效利用。
列存Delta表解决了小批量入库产生的小CU问题,但无法解决同一个CU上的并发更新产生的锁冲突问题。而实时入库的场景下,需要将insert+upsert+update操作实时并发入库,数据来源于上游的其他数据库或者应用,同时要求入库后的数据要能及时查询,且对于查询的效率要求很高。
HStore表则采用附加delta表的形式,批量插入的数据会直接写入CU,具有与列存一致的压缩优势,而被更新的列、小批量插入的数据会序列化后压缩,同时定期merge到主表CU。
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- 大数据应用范围有哪些_大数据技术与应用要学习什么课程
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控