哪个网站能接施工图来做,广告平面设计工作内容,网页设计心得体会2000字,wordpress设置分类Primary Shard#xff08;主分片#xff09;
Primary Shard#xff08;主分片#xff09;是索引数据存储的基本单位#xff0c;承担着数据写入和查询的职责。以下是关于Primary Shard的一些关键点#xff1a;
1. 数据分布#xff1a;每个索引在创建时会被分成多个主分…Primary Shard主分片
Primary Shard主分片是索引数据存储的基本单位承担着数据写入和查询的职责。以下是关于Primary Shard的一些关键点
1. 数据分布每个索引在创建时会被分成多个主分片这些主分片分布在不同的节点上以此来实现数据的分布式存储和水平扩展。主分片的数量在索引创建时设定并且之后不能更改。2. 数据写入当新的文档被写入Elasticsearch时首先会被写入到对应的主分片中。这个过程涉及到文档的索引、分析以及存储。3. 容错机制主分片的存在也提供了故障恢复的能力。如果某个节点发生故障其上的主分片可以在其他节点上通过副本分片Replica Shard自动重新分配保证数据的可用性。4. 查询路由查询操作首先会路由到相关的主分片或其副本上执行然后汇总结果返回给客户端。这意味着查询负载可以被主分片及其副本共同分担提高了查询效率。5. 数据恢复与再平衡在集群扩容或缩容时Elasticsearch会自动对主分片进行再平衡以优化数据分布。此外在节点故障后未分配的主分片会触发故障转移机制确保数据的完整性和服务的连续性。6. 不可变性一旦主分片中的数据被写入它就被视为不可变的。任何更新或删除操作实际上都是通过新增一个文档版本来实现的旧版本的文档最终会在段合并过程中被标记为已删除。
ElasticSearch 索引设计
1. 基于时间对Index进行分割
根据时间间隔与数据产生时间将数据写入不同的Index中为了易于区分会在Index的名字中加上对应的时间标识。
常见的间隔有小时、天、周和月先考虑总共要存储多久的数据然后选一个既不会产生大量Index又能够满足一定灵活性的间隔比如你需要存储6个月的数据那么一开始选择“周”这个间隔就会比较合适。考虑业务增长速度假如业务增长的特别快比如上周产生了1亿数据这周就增长到了10亿那么就需要调低这个间隔来保证有足够的弹性能应对变化。
2. 分片与副本策略
合理分配分片数量过多的分片会增加管理和查询的复杂度太少则可能限制水平扩展能力。Elastic专家根据经验总结出来大家普遍认为单个Shard的存储大小不超过30GB。
评估分片数量单个Index的Primary Shard个数 k * 数据节点个数。key为小整数1~2
合理设置副本一个或多个副本可以提供高可用性和负载均衡。
3. 映射定义Mapping
生产环境下需要禁用动态映射明确定义字段的数据类型避免动态映射可能导致的性能问题和数据不一致。使用合适的数据类型例如使用keyword类型存储精确值使用text类型并配合分析器处理全文搜索。应用字段长度限制避免过大的文档导致内存溢出。利用norms、doc_values等属性优化存储和查询性能。
4. 分析器Analyzer
分词器的主要作用将用户输入的一段文本按照一定逻辑分析成多个词语的一种工具顾名思义文本分析就是把全文本转换成一系列单词term/token的过程也叫分词。
根据内容选择合适的分析器创建索引时指定分词器搜索时指定analyzer查询参数。
5. 索引模板Index Templates
把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板在创建新索引时指定要使用的模板名就可以直接重用已经定义好的模板中的设置和映射。
如果你需要每间隔一定的时间就建立一次索引你只需要配置好索引模板以后就可以直接使用这个模板中的设置不用每次都设置settings和mappings。
6. 生命周期管理ILM
设定索引的生命周期策略自动进行滚动、归档和删除管理索引的存储和成本。
所以前期投入时间进行细致的索引设计是必要的它不仅能够提升系统的整体性能还能简化后续的维护工作降低长期运营成本确保系统稳定可靠地服务于业务需求。
参考:6000字讲透ElasticSearch 索引设计 -阿里云开发者社区 (aliyun.com)