Hologres支持哪些数据格式?
Hologres支持多种数据格式,包括但不限于行存、列存、行列共存及JSON和JSONB等半结构化数据类型。
Hologres作为一个高性能的实时数据仓库,设计目标是处理和分析大量数据,因此其对数据格式的支持十分广泛,适应多样化的数据分析需求。具体如下:
- 行存储(Row-oriented):
- 适用于基于主键(Primary Key)的点查询场景[^2^]。例如,查询语句为
SELECT * FROM tablename WHERE pk = xxx;
。 - 建议不超过3000列。行存默认仅对主键创建索引,适用于快速点查查询[^4^]。
- 适用于基于主键(Primary Key)的点查询场景[^2^]。例如,查询语句为
- 列存储(Column-oriented):
- 适合OLAP(联机分析处理)场景,适用于各种复杂查询、数据关联、扫描、过滤和统计[^2^]。
- 建议不超过300列。列存会默认创建更多索引,包括字符串类型的bitmap索引,提升查询过滤和统计的速度[^4^]。
- 行列共存(Mixed):
- 支持行存和列存的所有场景,以及非主键点查的场景[^2^]。
- 建议不超过300列。行列共存适用场景更广,但会带来更多的存储开销和内部数据状态同步的开销[^4^]。
- JSON和JSONB类型:
- JSON存储文本格式数据,插入速度快,查询速度慢;JSONB存储Binary格式数据,插入速度稍慢,但查询速度快[^3^]。
- Hologres支持通过操作符如
->>
、#>>
等进行JSON和JSONB数据的查询和处理[^3^]。
Hologres还支持多种数据类型,例如INTEGER、BIGINT、BOOLEAN、REAL、DOUBLE PRECISION、TEXT、TIMESTAMP WITH TIME ZONE、DECIMAL、DATE等[^1^]。这些丰富的数据类型使得Hologres可以灵活地适应不同的数据存储和查询需求。
综上所述,Hologres不仅在数据存储格式上提供了行存、列存和行列共存的选项,还支持JSON和JSONB这类半结构化数据类型,满足了多样化的数据处理需求。结合具体的使用场景选择合适的存储格式和数据类型,将显著提升Hologres数据处理和查询的效率。