建表
存储选择
表的存储类型及场景
存储类型 | 适用场景 |
---|---|
行存 | 1. 点查询(返回记录少,基于索引的简单查询)。 2. 增、删、改操作较多的场景。 |
列存 | 1. 统计分析类查询 (关联、分组操作较多的场景)。2. 即席查询(查询条件不确定,行存表扫描难以使用索引) |
数据分布方式选择
数据存储分布主要是hash 均匀分布和副本分布。
水平分表策略
策略 | 描述 | 适用场景 |
---|---|---|
散列(Hash)方式 | 根据元组中指定字段的值计算出哈希值,根据节点与哈希值的映射关系获得该元组的目标存储位置。 | 适用于表数据量较大、需要提升查询性能的场景 |
复制(Replication)方式 | 将元组复制到所有节点上 | 适用于表数据量较小、需要提升并发分析性能的场景。 |
图中显示了两种数据分布的存储情况
合适的分布式列的选择
使用hash分布方式时,需要在建表时指定分布列,不然会导致数据倾斜,数据倾斜会导致系统不稳定。