当前,我们有一个使用父子映射的ES 5.3集群,因为我们的数据遵循此模型。父子映射是最好的选择,因为它支持集群侧连接,并通过存储在同一分片中提供性能优势。
从5.3到6.2的迁移涉及重大更改,因为ES v6.0及更高版本不再支持多种映射类型。
想知道是否值得在使用连接数据类型的新版Elasticsearch中坚持使用父子数据模型。
据我所知,有三种可能的选择
使用新的联接数据类型保留父子映射。
优点
缺点
为每种映射类型创建单独的索引
优点
缺点
单个索引,但具有用于定义文档类型的自定义字段
优点
缺点
我更倾向于具有多个索引的第二种选择。我可以看到的主要缺点是应用程序侧连接可能很昂贵。同时,elasticsearch文档说has_parent,has_child查询也很昂贵。
通过使各个索引使用路由并因此在各个索引中实现数据局部性,可以在某种程度上实现将父子文档存储在同一分片中的另一个优点。
当前集群统计
270492501总文档
1596009父文档
268896492子文档
父级/子级文档计数比例最大为1:400
36个分片(12个主副本,24个副本)
92.33 GB数据
父级文档阅读量很大。子文档读写繁重。
想知道是否还有其他我需要考虑的性能/扩展方面。谢谢
归档时间: |
|
查看次数: |
1191 次 |
最近记录: |