Elasticsearch索引的架构设计

上传人:I*** 文档编号:148533005 上传时间:2020-10-20 格式:DOCX 页数:14 大小:1.15MB
返回 下载 相关 举报
Elasticsearch索引的架构设计_第1页
第1页 / 共14页
Elasticsearch索引的架构设计_第2页
第2页 / 共14页
Elasticsearch索引的架构设计_第3页
第3页 / 共14页
Elasticsearch索引的架构设计_第4页
第4页 / 共14页
Elasticsearch索引的架构设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Elasticsearch索引的架构设计》由会员分享,可在线阅读,更多相关《Elasticsearch索引的架构设计(14页珍藏版)》请在金锄头文库上搜索。

1、Elasticsearch索引的架构设计目 录1、Elasticsearch 索引的设计3注意1:不要在一个索引中定义多个type。6注意2:将Set _source设置为false。6注意3:将_all设置为false。7注意4:设置dynamic = strict。7注意5:使用keyword类型8注意6:使用别名92、Elasticsearch分片分配原则10步骤1:定义索引11步骤2:评估数据量11步骤3:评估索引大小和磁盘空间12步骤4:计算分片数12步骤5:评估索引数和类型123、数据去重的思考121、Elasticsearch 索引的设计1.1 单一索引还是基于时间的索引?单一索

2、引的问题:1)不能更新Mapping。比如:主分片数不可以修改(除非reindex)。2)无法灵活、快速地扩展。3)更适合固定、小型数据集。基于时间的索引面临的问题:1)如何确定间隔? 数据量 变更频率 默认尝试每周为单位分割建议2)如何实施? 索引模板1.2 定义索引注意事项举例:facet_internet_access_minute:template:ce-index-access-v1-*,order:0,settings:number_of_shards:5,aliases:index-query:,mappings:es_doc:dynamic:strict,_all:enable

3、d:false,_source:enabled:false,properties:CLF_Timestamp:type:long,CLF_CustomerID:type:keyword,CLF_ClientIP:type:ip,ignore_malformed:true注意1:不要在一个索引中定义多个type。6.X版本已经不支持,7.X版本彻底不支持。扩展问题:5.X版本的父子文档实际实现中是一个索引中定义了多个type,到了6.X中实现方式改变为:join方式。注意2:将Set _source设置为false。假设你只关心度量结果,不是原始文件内容。将节省磁盘空间并减少IO。这个点,需要结

4、合实际的业务场景具体问题具体分析。举例:_source:enabled:false,注意3:将_all设置为false。假设你确切地知道你对哪个field做查询操作?能实现性能提升,缩减存储。举例:_all:enabled:false ,注意4:设置dynamic = strict。假设你的数据是结构化数据。字段设置严格,避免脏数据注入。举例:dynamic:strict,注意5:使用keyword类型假设你只关心完全匹配提高性能和缩小磁盘存储空间举例:CLF_CustomerID:type:keyword,注意6:使用别名如何在不停机的前提从一个索引切换到另一个索引?举例:aliases:i

5、ndex-query:或者你通过head插件创建。2、Elasticsearch分片分配原则社区和QQ群中经常被问到的问题:1)应该分几个索引、几个分片?2)每个分片大小如何设置?3)副本多少如何设置?这里,明确给出实操可行的6个步骤。步骤1:定义索引思考索引中要大致有哪些字段?最好能列一个Excel表统计一下,包含但不限于:序号、名称、类型、作用、备注。以上对计算单条数据大小也有用。步骤2:评估数据量评估方法举例:1分钟有100条数据,1天=1006024=144000条。1月=144000条30天=432W条数据。 1年=432W12=5184W条数据。假设要保存2年,共=10368W条数

6、据。假设每条数据20KB,共需要存储:10368W*20/1024/1024/1024=1.977TB。步骤3:评估索引大小和磁盘空间步骤4:计算分片数细节考虑点:1、每个分片大小应小于30GB。2、分片数量= k *数据节点数目(k = 一个足够小的整数,举例:1,2,3)3、假设你有一个小的索引,并且你有集群中有足够的节点,请尝试使用默认值分片数5。步骤5:评估索引数和类型(此处可能会有多次反馈迭代)3、数据去重的思考方法1:指定唯一id缺点:1、唯一值无法压缩,不利于存储。2、存在高基数问题。方法2:用聚合方法实现步骤1:所有文档加一个Hash值;步骤2:检查重复;GET*_index/_searchsize:0,aggs:duplicate:terms:field:hash,min_doc_count:2,size:5000,aggs:documents:top_hits:size:2步骤3:批量删除步骤2中的重复id。以上步骤,不影响写入,可以实现异步。缺点:1. 存储量大(尤其超过3亿条+);2. 随着数据量增加,聚合受影响,越来越慢。3. 存在高基数问题。方法3:用distinct query实现14

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 云计算/并行计算

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号