【Elasticsearch】ES入门-Day1-腾讯云ES文档一览

写在前面 / 链接存档

ES的新手指引部分

熟悉ES基础知识

  • ES功能
  • ES产品性能
  • ES各个应用场景
  • ES高级特性(X-Pack)介绍
  • ES能力与限制说明

新手入门

1. 集群规格和容量配置评估

存储容量评估

计算资源评估

实例类型选择及测试

分片数量评估

腾讯云 Elasticsearch Service(ES)是分布式多节点形式的集群,每个节点均是由计算和存储两部分构成,如何根据业务的需求,选择合适的配置,以下是一些 ES 常见使用场景下,配置选择的建议。

根据业务需要进行参考,最好的方法还是需要在业务的实际使用过程中逐步去探索。

依托腾讯云 ES 提供的弹性伸缩机制,在业务规模增大,性能遇到瓶颈的时候,可以随时扩容,调整得到合适的集群规格

  1. 存储容量评估
  • 影响腾讯云 ES 服务存储容量的主要因素如下:

    • 副本数量:副本有利于增加数据的可靠性,但同时会增加存储成本

      默认和建议的副本数量为1,对于部分可以承受异常情况导致数据丢失的场景,可考虑设置副本数量为0。

    • 数据膨胀:除原始数据外,ES 需要存储索引、列存数据等,在应用编码压缩等技术后,一般膨胀10%

    • 内部任务开销:ES 占用约20%的磁盘空间,用于 segment 合并、ES Translog、日志等

    • 操作系统预留:Linux 操作系统默认为 root 用户预留5%的磁盘空间,用于关键流程处理、系统恢复、防止磁盘碎片化问题等

  • 因此,数据在 ES 中占用的实际空间可通过下面公式估算:

1
2
实际空间 = 源数据 × (1 + 副本数量) × (1 + 数据膨胀) / (1 - 内部任务开销) / (1 - 操作系统预留)
≈ 源数据 × (1 + 副本数量) × 1.45
  • 为保证服务的稳定运行,建议至少预留15%的存储空间,因此建议申请的存储容量为
1
2
存储容量 = 源数据 × (1 + 副本数量) × 1.45 × (1 + 预留空间)
≈ 源数据 × (1 + 副本数量) × 1.67
  1. 计算资源评估
  • ES 的计算资源主要消耗在写入和查询过程,而不同业务场景在写入和查询方面的复杂度不同、比重不同,导致计算资源相比存储资源较难评估。但一般情况下,存储资源会较早成为瓶颈,因此建议您优先评估存储资源量,然后参考 腾讯云 ES 节点类型 初步选择计算资源,在测试过程中确认计算资源是否足够。

  • 下面针对几种常见使用场景,介绍计算资源评估过程中的一些经验:

  • 日志场景】:日志属于典型的写多读少类场景,计算资源主要消耗在写入过程中。我们在日志场景的经验是:2核8GB内存的资源最大可支持0.5万次写入/s的写入能力,但注意不同业务场景可能有偏差。由于实例性能基本随计算资源总量呈线性扩容,您可以按实例资源总量估算写入能力。例如8核32GB内存的资源可支持2万次写入/s的写入能力。

  • Metric 及 APM 等结构化数据场景】:这也是写多读少类场景,但相比日志场景计算资源消耗较小,2核8GB内存的资源一般可支持1万次写入/s的写入能力,您可参照日志场景线性扩展的方式,评估不同规格实例的实际写入能力。

  • 站内搜索及应用搜索等搜索场景】:此类为读多写少类场景,计算资源主要消耗在查询过程,由于查询复杂度在不同使用场景差别非常大,计算资源也最难评估,建议您结合存储资源初步选择计算资源,然后在测试过程中验证、调整。

  1. 实例类型选择及测试
  • 在完成存储、计算资源评估后,您可以初步参考 腾讯云 ES 节点类型 选择实例类型,这里包含节点规格和节点数量两方面。选择实例类型的常用建议如下:

  • 建议您至少选择3个节点,避免 ES 实例出现脑裂问题,保证 ES 实例具有较高的节点故障容错能力

脑裂:两个节点同时认为自己是唯一处于活动状态的服务器,从而出现争用资源的情况。

  • 若您有非常大的存储容量需求,建议选择高规格的节点,避免大量低规格节点,这对大实例的性能、稳定性等有较大好处。例如,若您有40核160GB内存5TB存储容量需求,建议选择8核32GB内存1TB × 5节点的实例。同理,当您需要对实例扩容时,建议优先进行纵向扩容,把节点扩容到8核32GB或16核64GB的规格,然后再考虑横向扩容增加节点个数。

  • 当完成实例类型的初步选择后,您可以使用真实数据进行测试,通过观察 CPU 使用率、写入指标(性能、拒绝率)、查询指标(QPS、拒绝率)等监控信息,进一步确认实例类型是否合适。另外,建议针对上述监控信息配置告警,方便在线上使用时,及时发现资源不足等问题。

  1. 分片数量评估
  • 每个 ES 索引被分为多个分片,数据按哈希算法打散到不同的分片中。由于索引分片的数量影响读写性能、故障恢复速度,且通常无法轻松更改,需要提前考虑。这里给出配置分片数量的一些常用建议:

    • 建议单个分片大小保持在10GB - 50GB之间,您可以据此初步确定 Index 的分片数量。分片不宜过大或过小:过大可能使 ES 的故障恢复速度变慢;过小可能导致非常多的分片,但因为每个分片使用一些数量的 CPU 和内存,从而导致读写性能、内存不足等问题。
  • 在测试阶段,可以根据每个 Index 的实际大小、预期未来增长情况,适当调整分片数量。

  • 当分片数量超过数据节点数量时,建议分片数量接近数据节点的整数倍,方便分片在所有数据节点均匀分布。

  • 对于日志、Metric 等场景中,建议使用 ES 自带的 Rollover Index 功能,持续滚动产生新的 Index。方便在发现分片大小不合理时,通过该功能及时调整分片数量。

  • 例如,假设实例有5个数据节点,Index 当前大小为150GB,预期半年后增长50%。如果我们控制每个单分片为30GB,则大约需要150GB ×(1 + 50%)/ 30 ≈ 7个分片,考虑到有两个数据节点支撑2/7的数据压力,节点间压力相对不均匀,我们把分片数量调整到10个。

2. 创建集群
3. 访问集群

相关概念

Elasticsearch 集群一般是由多个节点共同组成的分布式集群,节点之间互通,彼此配合,共同对外提供搜索和索引服务(节点之间能够将客户端请求转向到合适的节点)

不同的节点会负责不同的角色,有的负责一个,有的可能负责多个

Elasticsearch 中有多个节点角色,如数据节点、主节点、机器学习节点和协调节点

1. 数据节点(Data Node)
  • 主要承担了数据存储和数据处理的工作,保存索引分片,处理与数据相关的操作,例如 CRUD、搜索、聚合等各种 I/O、内存和 CPU 密集型操作
  • 集群使用过程中,需要注意监控数据节点的资源使用率,并在服务过载时通过添加更多的数据节点,进行集群扩容,以保障集群的稳定性
2. 主节点(Master Node)
  • 负责轻量化整个集群范围内的操作,例如创建或删除索引跟踪哪些节点是集群的一部分以及决定将哪些分片分配给哪些节点
  • 对于集群健康来说,拥有一个稳定的主节点非常重要
3. 备选主节点(Dedicated Master Node)
  • 指有资格被选为主节点的节点,任何符合主节点条件的节点(默认情况下为所有节点)都可以通过主选择过程被选为主节点
  • 默认情况下,所有节点都是数据节点,也都是备选主节点,对于小型集群来说非常方便
  • 由于数据节点处理索引和搜索数据的请求都是 I/O、内存和 CPU 密集型工作,可能对节点的资源造成压力
  • 随着集群的增长,为了确保主节点稳定且不受压力,保障集群的稳定,需将主节点和数据节点分离
4. 专用主节点(Dedicated Master Node)
  • 指 Elasticsearch 集群中,设置了只能作为主节点的节点
专用主节点配置建议
  • 设置专用主节点主要是为了保障集群增大时的稳定性,建议专用主节点个数至少为3个
    • 专用主节点个数为1:只有1个备选主节点,discovery.zen.minimum_master_nodes 设置为1,网络发生故障时缺少备份。
    • 专用主节点个数为2:有2个备选主节点,minimum_master_nodes 设置为1,有备份节点,但网络发生故障,在重新选主时,有发生脑裂的风险(每个备选主节点都将自己设置为主节点);minimum_master_nodes 设置为2,发生故障时,可选主节点个数达不到要求,不能选出主节点。
    • 专用主节点个数为3:有3个备选主节点,discovery.zen.minimum_master_nodes 设置为2,网络发生故障时,丢失一个可选主节点,在重新选主时,能有效选出主节点。
5. 机器学习节点(Machine Learning Node)
  • 机器学习节点用于创建机器学习任务
  • 自动进行数据分析识别异常数据,也可在此节点加载向量模型,提升向量生成和向量检索能力,同时可以与业务进行隔离,提升集群稳定性
6. 协调节点(Coordinating Node)
  • 协调节点主要负责协调客户端的请求,如搜索请求或批量索引请求,将接收到的请求分发给合适的数据节点,每个数据节点在本地执行请求,并把结果汇集到协调节点
  • ES 每个节点都可以承担协调节点的角色,在高并发读写、多聚合查询等 CPU 密集型场景,设立独立的协调节点将有益于降低主节点和数据节点负担。

产品功能【】

用户可以将 CVM、TencentDB、容器服务等其他云产品的实时日志、业务的存量及增量业务数据,汇聚传输到 ES 集群,进行数据的分布式存储、查询分析

1. 数据采集与同步
  • 用户通过 Elasticsearch 中的 Beats 功能,可以把数据传输到 Elasticsearch 中进行存储,也可以传输到 Logstash 中进行自定义转换和解析后,再传输到 Elasticsearch 中
  • Elasticsearch 提供了易用的 RESTful API,用户可以自行开发客户端,调用数据存储 API,存储数据到 Elasticsearch 集群中
  • ES 构建在 VPC 内,用户可以非常方便地使用各种数据同步插件,将已有云产品的数据,同步到 ES 集群中
2. 数据存储
  • 腾讯云 ES 提供了多种规格的节点类型和高性能 SSD 磁盘,有效保障数据的读写性能
  • 支持弹性扩展到上百个节点,能达到 PB 级数据的存储,满足用户不同类型的业务场景
  • 支持故障节点探测及替换,保障集群高可用性
  • 具备全文检索、向量检索以及两者混合搜索功能
3. 数据查询分析可视化
  • Elasticsearch 拥有全文检索结构化搜索数据过滤指标统计等搜索功能,可应用于信息搜索和数据分析等多种场景
  • Elasticsearch 提供了简单易用的 RESTful API 以及各种语言的客户端,用户可以很方便地**构建自己的搜索服务**
  • 使用 Kibana,用户可以方便地在浏览器里对集群的数据进行搜索和统计分析

应用场景【】

1. 日志分析
  • 业务系统运行过程中,服务器、数据库和容器等会产生大量日志和监控数据,而且存储分散、种类繁多、规模庞大,很难进行检索和分析。
  • ES 通过丰富的数据采集工具和分布式存储,方便日志统一管理和指标实时监控,通过一站式全观测优势,帮助用户快速定位问题,提升运维效率
2. 信息检索
  • ES 非常适合应用于网站搜索、移动应用搜索等场景,特别是针对大数据量、高并发以及对搜索灵活性和相关度要求比较高的情况
  • 通过灵活的关键字、查询条件、模糊匹配等方式,可以从 PB 级的结构化和非结构化数据中毫秒级返回搜索结果
3. 向量检索
  • 向量检索是一种基于向量空间模型的检索技术
  • 它通过将文本、图像、视频等数据转换为数值向量,在向量空间进行相似性搜索,从而突破传统文本搜索只能基于关键字,不能基于语义搜索的限制
  • ES 提供从向量生成、到向量索引、存储、检索的一站式解决方案,帮助用户高效构建语义搜索、图片搜索、商品推荐等应用场景
4. 检索增强生成RAG
  • 大语言模型 LLM 在企业应用中遇到不少挑战,包括缺乏企业私域知识、幻觉和知识更新等
  • RAG 可以结合检索和生成技术,通过企业知识库的输入,提高 LLM 回答的准确性
  • ES 围绕 RAG 提供从数据切片、向量检索、文本和向量混合搜索、rerank、大模型集成等一站式服务,超越传统向量数据库的单点方案,助力企业轻松构建 AI 助手、知识问答等场景
5. 数据分析
  • 在数据驱动运营的行业背景下,电子商务、移动应用、广告媒体等业务都需要借助数据分析和数据挖掘辅助商业决策,而规模庞大的业务数据对数据的统计分析带来了很大的挑战
  • ES 拥有结构化查询的能力,支持复杂的过滤和聚合统计功能,帮助客户对海量数据进行高效地个性化统计分析、发现问题与机会、辅助商业决策,让数据产生真正的价值
6. 数据库查询加速
  • 关系型数据库更偏向事务型查询,在海量数据规模的场景下,容易遇到查询性能不足、可扩展性差的挑战
  • ES 提供了弹性扩展及海量数据下的高并发低延时查询能力,通过数据同步工具保持与数据库同步,并支持 SQL 能力,满足客户数据库加速查询的需求,弥补了传统数据库的不足

腾讯云ES产品简介

目前大部分是看不懂……

腾讯云ES的优势

产品概述

  • Elasticsearch Service 产品概述-产品简介-文档中心-腾讯云

  • 主要组件有:

  • Elasticsearch

    分布式搜索引擎,可以对海量数据进行存储、全文检索、统计分析等,提供了 RESTful API 以及各类语言客户端,可以灵活地按照业务需求进行开发

  • Kibana

    数据可视化工具,可以方便地对存入 Elasticsearch 集群的数据进行查询和分析

  • 高级特性(X-Pack)

    Elasticsearch 官方高级商业插件,提供了多项高级功能,

    包括数据权限管控,可以配置字段级别的权限控制;

    SQL、JDBC 的连接方式,可以很方便地同原有的业务系统进行集成;

    机器学习和告警,可以针对存入集群的数据,进行分析和波动趋势的学习,预测数据变化趋势,并在数据出现大的波动时进行告警

产品版本

产品功能

1. 数据采集与同步
  • 用户通过 Elasticsearch 中的 Beats 功能,可以把数据传输到 Elasticsearch 中进行存储,也可以传输到 Logstash 中进行自定义转换和解析后,再传输到 Elasticsearch 中
  • Elasticsearch 提供了易用的 RESTful API,用户可以自行开发客户端,调用数据存储 API,存储数据到 Elasticsearch 集群中
  • ES 构建在 VPC 内,用户可以非常方便地使用各种数据同步插件,将已有云产品的数据,同步到 ES 集群中
2. 数据存储
  • 腾讯云 ES 提供了多种规格的节点类型和高性能 SSD 磁盘,有效保障数据的读写性能
  • 支持弹性扩展到上百个节点,能达到 PB 级数据的存储,满足用户不同类型的业务场景
  • 支持故障节点探测及替换,保障集群高可用性
  • 具备全文检索、向量检索以及两者混合搜索功能
3. 数据查询分析可视化
  • Elasticsearch 拥有全文检索结构化搜索数据过滤指标统计等搜索功能,可应用于信息搜索和数据分析等多种场景
  • Elasticsearch 提供了简单易用的 RESTful API 以及各种语言的客户端,用户可以很方便地**构建自己的搜索服务**
  • 使用 Kibana,用户可以方便地在浏览器里对集群的数据进行搜索和统计分析

产品性能相关

看不懂,目前不知道有啥用,先放这

高级特性(X-Pack)

  • Elasticsearch Service 高级特性(X-Pack)-产品简介-文档中心-腾讯云

  • 其中有关于SQL的支持部分:

    • SQL 提供了通过传统数据库 SQL 工具 ,实现对 Elasticsearch 数据进行全文本检索、数据统计分析功能,支持 CLI、REST 等接入方式,白金版还支持 JDBC 连接。可以实现同原有业务系统的无缝对接,降低新技术学习成本

ES的SQL支持

SQL 支持方面,开源版集成了其他的 SQL 插件,详细了解和使用可查看 elasticsearch-sql

应用场景【值得重点分析】

1. 日志分析
  • 业务系统运行过程中,服务器、数据库和容器等会产生大量日志和监控数据,而且存储分散、种类繁多、规模庞大,很难进行检索和分析。
  • ES 通过丰富的数据采集工具和分布式存储,方便日志统一管理和指标实时监控,通过一站式全观测优势,帮助用户快速定位问题,提升运维效率
2. 信息检索
  • ES 非常适合应用于网站搜索、移动应用搜索等场景,特别是针对大数据量、高并发以及对搜索灵活性和相关度要求比较高的情况
  • 通过灵活的关键字、查询条件、模糊匹配等方式,可以从 PB 级的结构化和非结构化数据中毫秒级返回搜索结果
3. 向量检索
  • 向量检索是一种基于向量空间模型的检索技术
  • 它通过将文本、图像、视频等数据转换为数值向量,在向量空间进行相似性搜索,从而突破传统文本搜索只能基于关键字,不能基于语义搜索的限制
  • ES 提供从向量生成、到向量索引、存储、检索的一站式解决方案,帮助用户高效构建语义搜索、图片搜索、商品推荐等应用场景
4. 检索增强生成RAG
  • 大语言模型 LLM 在企业应用中遇到不少挑战,包括缺乏企业私域知识、幻觉和知识更新等
  • RAG 可以结合检索和生成技术,通过企业知识库的输入,提高 LLM 回答的准确性
  • ES 围绕 RAG 提供从数据切片、向量检索、文本和向量混合搜索、rerank、大模型集成等一站式服务,超越传统向量数据库的单点方案,助力企业轻松构建 AI 助手、知识问答等场景
5. 数据分析
  • 在数据驱动运营的行业背景下,电子商务、移动应用、广告媒体等业务都需要借助数据分析和数据挖掘辅助商业决策,而规模庞大的业务数据对数据的统计分析带来了很大的挑战
  • ES 拥有结构化查询的能力,支持复杂的过滤和聚合统计功能,帮助客户对海量数据进行高效地个性化统计分析、发现问题与机会、辅助商业决策,让数据产生真正的价值
6. 数据库查询加速
  • 关系型数据库更偏向事务型查询,在海量数据规模的场景下,容易遇到查询性能不足、可扩展性差的挑战
  • ES 提供了弹性扩展及海量数据下的高并发低延时查询能力,通过数据同步工具保持与数据库同步,并支持 SQL 能力,满足客户数据库加速查询的需求,弥补了传统数据库的不足

能力与限制说明

腾讯云 ES 是基于开源软件 Elasticsearch 开发的云上 PaaS 服务。通过腾讯云 ES 您可以快速搭建 Elasticsearch 集群服务,开发日志分析、数据搜索等应用

ES Serveless 服务指南

到目前都是很懵的状态……

数据应用指南

ES 集群指南

Logstash 指南

Beats 指南

实践教程【!懵了半天终于来了!】

数据迁移和同步

自建/其他云厂商集群迁移

应用场景构建

索引设置

【】SQL支持

企业机器人微信接收Watcher告警

HTTPS集群访问通信实践教程

十亿级高性能向量检索实践教程

【】腾讯云 ES RAG 实践教程:百行代码轻松实现 ES 帮助文档的智能问答

【】基于腾讯云 ES 的RAG应用实践,让企业知识触手可及

腾讯云ES Serverless x TKE,分钟级低门槛实现一套可观测日志分析

【】RAG实践:基于腾讯云ES与混元大模型,十分钟构建专属 AI 助手

【】API文档

目前链接先存着吧。。。目前实在无法理解。。。

更新历史

简介

API 概览

调用方式

实例相关接口

Serverless实例相关接口

Logstash相关接口

数据结构

错误码

【】视频专区

  • Copyrights © 2024-2025 brocademaple
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信