华为云用户手册

  • 背景信息 云搜索服务 的词库用于对文本进行分词,使得一些特殊词语在分词的时候能够被识别出来,便于根据关键词搜索文本数据。例如,根据公司名称来查询,如“华为”;或者根据网络流行词来查询,如“喜大普奔”。也支持基于同义词词库,根据同义词搜索文本数据。 CSS 服务使用的分词器包括IK分词器和同义词分词器。IK分词器配备主词词库和停词词库;同义词分词器配备同义词词库。其中,IK分词器包含ik_max_word和ik_smart分词策略。同义词分词器使用的是ik_synonym分词策略。 ik_max_word:会将文本做最细粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨夜西风,昨夜,西风,吹折千林梢,吹折,千林梢,千,林,折千林,千林,吹”,会穷尽各种可能的分词组合。 ik_smart:会做最粗粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨夜西风,吹折千林梢”。 CS S服务给集群预置了静态主词词库、静态停词词库、Extra主词词库和Extra停词词库这四个词库。 当这些预置词库已满足集群业务的分词需求时,则集群无需配置自定义词库即可直接实现关键词搜索。 当预置词库不满足集群业务分词需求时,可以给集群添加主词词库、停词词库或同义词词库,亦或者是修改预置的四个词库,使集群能够实现关键词或同义词搜索。 CSS服务的各类词库介绍请参见表1。 表1 词库介绍 词库类型 说明 文件要求 自定义 主词词库 主词为用户希望进行分词的特殊词语,例如“智能手机”和“喜大普奔”。主词词库则是用户自定义的特殊词语的集合。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,主词文件最大支持100M。如果涉及单词,必须改成小写字母。 停词词库 停词为用户不希望进行分词或者关注的词语,例如“的”、“什么”、“怎么”等。停词词库是用户自定义的停词词语的集合。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,停词文件最大支持100M。 同义词词库 同义词为意义相同的一组词语,例如“开心”和“高兴”。同义词词库是用户自定义的同义词词语的集合。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一组同义词对,同义词对中的同义词间逗号隔开,同义词文件最大支持100MB。 预置 静态主词词库 静态主词词库是CSS服务预置的常用主词集合,当需要查看静态主词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/main.dic获取词库。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,静态主词文件最大支持100M。 静态停词词库 静态停词词库是CSS服务预置的常用停词集合,当需要查看静态停词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/stopword.dic获取词库。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,静态停词文件最大支持100M。 Extra主词词库 Extra主词词库是CSS服务预置的生僻主词集合,当需要查看Extra主词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/extra_main.dic获取词库。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,Extra主词文件最大支持100M。 Extra停词词库 Extra停词词库是CSS服务预置的生僻停词集合,当需要查看Extra停词词库时,可以单击地址https://github.com/infinilabs/analysis-ik/blob/master/config/extra_stopword.dic获取词库。 词库文件必须是UTF-8无BOM格式编码的文本文件,一行一个分词,Extra停词文件最大支持100M。
  • 通过自建Cerebro访问集群 使用自建Cerebro访问集群时,需要确保自建Cerebro与集群的网络是互通的。 获取集群的访问地址。不同网络配置的访问地址获取方式请参见网络配置。 启动自建Cerebro,填写集群的访问地址对接CSS集群。 安全模式的集群填写:https://访问地址:9200 安全模式的集群要输入集群的用户名和密码才能登录。 非安全模式的集群填写:http://访问地址:9200
  • OpenSearch使用流程 表1 OpenSearch集群的使用流程 任务分类 操作 参考文档 使用 规划集群 在创建OpenSearch集群前,需要先完成集群规划。规划时,应考虑是否多可用区部署以提高集群的高可用性,合理配置集群的节点类型与节点存储规格,以及根据业务需求选择适当的集群版本和安全模式,同时注意索引分片的优化,以确保集群的稳定性和性能。 OpenSearch集群规划建议 创建集群 基于集群规划,创建合适的OpenSearch集群。 创建OpenSearch集群 访问集群 OpenSearch集群提供多样化的访问方式,包括Kibana、Cerebro、开源API、Java、Python和Go客户端,以及通过内网和公网的多种网络配置,用户可根据编程语言偏好和网络环境选择最合适的接入方法。 OpenSearch集群访问方式 导入数据 OpenSearch集群提供多种数据导入方式,包括Logstash、开源Elasticsearch API、 云数据迁移 服务 CDM 数据复制服务 DRS,支持不同来源和格式的数据导入,以及针对关系型数据库的实时同步,用户可根据业务场景和数据特性选择最佳方法。 OpenSearch集群导入数据方式 搜索数据 CSS服务推荐使用DSL语言在OpenSearch集群中搜索数据,同时也支持使用SQL语言进行数据搜索。 使用DSL语言在OpenSearch中搜索数据 使用SQL语言在OpenSearch中搜索数据 增强集群搜索能力 CSS服务的OpenSearch集群基于社区版本提供了一系列增强特性,包括向量检索、存算分离、流量控制、大查询隔离、聚合增强、读写分离、冷热数据切换、索引回收站等,以适应不同场景下的性能和成本优化需求,增强集群稳定性和搜索能力。 OpenSearch集群搜索增强特性介绍 运维 备份与恢复 备份与恢复是通过集群快照备份OpenSearch集群数据,在数据丢失或需要历史数据时快速恢复数据,提升集群的数据可靠性。 创建快照备份OpenSearch集群数据 恢复OpenSearch集群数据 扩缩容 CSS服务提供灵活的扩容和缩容功能,支持增加节点数量、升级节点规格、增加节点类型,以及随机或指定缩容节点,以动态调整集群资源,适应不同业务需求并优化成本。 扩容OpenSearch集群 缩容OpenSearch集群 管理集群 CSS服务提供全面的集群管理功能,包括集群信息查看、集群用户授权、标签管理、安全模式更改、节点替换、企业项目绑定、可用区切换、自定义词库配置等,旨在帮助用户高效、灵活地管理OpenSearch集群,确保集群的安全性、高可用性和性能优化。 管理OpenSearch集群 管理集群索引策略 使用OpenSearch的ISM(Index State Management)插件创建和管理索引的生命周期策略,包括策略的创建、索引关联、以及策略的管理与变更,旨在优化集群性能和降低存储成本。 创建及管理OpenSearch索引策略 监控与日志管理 CSS服务提供全面的监控和日志管理功能,包括集群和节点监控指标、告警规则配置、日志备份与采集,以及智能运维工具,帮助用户有效监控、分析和维护OpenSearch集群,确保集群的稳定性和性能。 CES 中OpenSearch集群支持的监控指标 使用CES监控OpenSearch集群 设置OpenSearch集群 SMN 告警通知 智能检测OpenSearch集群风险 查询和管理OpenSearch集群日志 审计日志 通过 云审计 服务,用户可以记录和查询OpenSearch集群的关键操作事件,且操作记录在管理控制台保存最近7天,便于后续的审计和回溯。 查看OpenSearch集群审计日志 父主题: 使用OpenSearch搜索数据
  • Elasticsearch集群内核支持的监控指标 表1 集群内核支持的监控指标 指标名称 描述 支持的集群版本 相关文档 search请求的P99时延 开源Elasticsearch在监控search请求时仅提供了平均延迟指标,这不足以准确反映集群的实际搜索性能。为了改进这一点,CSS服务新增了P99延迟监控特性,能够有效地监控集群search请求的第99百分位延迟。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 监控P99时延 集群HTTP状态码 通过HTTP对Elasticsearch的访问会收到响应和相应的状态码,但开源的Elasticsearch原生不支持对这些状态码进行统计,导致无法精确掌握接口调用的具体状况,用户也无法通过监控了解集群的整个请求情况。为了改进这一点,CSS服务新增了HTTP状态码监控功能,能够获取HTTP状态码统计信息。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 监控HTTP状态码 集群索引 索引监控功能用以监测集群索引的运行状态和变化趋势,评估业务使用情况,并能够协助及时发现并处理潜在风险,确保集群稳定运行。索引监控会收集索引的stats信息,并将其存储在集群的监控索引(索引名称是“monitoring-eye-css-[yyyy-mm-dd]”)。默认情况下,这些监控索引将保留一周时间,过期会直接删除。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群索引监控 父主题: Elasticsearch集群支持的监控指标
  • 约束限制 删除集群时,会清理集群业务数据,请谨慎操作。 如果集群没有备份快照,则删除后不可恢复集群数据。当集群启用过快照功能,且OBS桶中创建的快照并未被删除,此时删除集群时,并不会释放这部分备份数据。如果有需要,可以通过OBS桶中存储的快照信息恢复数据,具体参见集群被删除后是否还能恢复?。 当集群已开通终端节点服务时,当前账号必须要有删除终端节点的权限,否则集群删除后并不会释放终端节点资源。终端节点的相关权限请参见VPCEP权限管理。
  • 场景描述 重启集群支持快速重启和滚动重启,两种方案的使用说明请参见表1。建议在业务空闲时执行重启操作。 表1 重启方案 方案 使用说明 相关文档 快速重启 所有集群都支持。 当选择“节点类型”快速重启时,所选类型的所有节点会一起重启。 当选择“节点名称”快速重启时,一次只能重启一个节点。 快速重启过程中,集群不可用。 快速重启 滚动重启 仅当集群的节点数量(含Master节点、Client节点和冷数据节点)大于等于3时,才支持滚动重启。 滚动重启只支持根据“节点类型”进行重启。选择节点类型滚动重启时,所选类型的节点会依次重启。 滚动重启过程中,只有正在重启的节点不可用,不在重启过程中的节点可以正常提供服务。 当数据量比较大时,滚动重启耗时较长。 滚动重启
  • Elasticsearch集群搜索增强特性介绍 云搜索 服务的Elasticsearch集群在开源Elasticsearch基础上增加了许多增强特性,增强特性的功能和支持的集群版本请参见表1。 表1 Elasticsearch集群搜索增强特性列表 增强特性 特性描述 支持的集群版本 相关文档 向量检索 向量检索支持对图像、视频、语料等非结构化数据提取的特征向量数据进行最近邻或近似近邻检索。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群向量检索 存算分离 存算分离支持将集群新写入的数据存储在SSD来达到最佳的查询检索性能,将历史数据存储到OBS中降低数据的存储成本。 存算分离和切换冷热数据比,更适用于对搜索性能要求不高的场景,冷数据存储在OBS中,存储成本更低一些。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群存算分离 流量控制2.0 流量控制2.0提供节点级别的流量控制功能,可提供单个节点基于黑白名单的访问限制、HTTPS并发连接数限制、HTTP最大连接数限制,基于节点内存的客户端写入流量反压控制,一键断流能力。同时也提供节点访问IP统计和URL的统计能力。开启客户端写入流量反压控制功能,会在节点堆内存过大时阻止大请求涌入节点占用内存,避免节点崩溃,减少节点不可用的风险。 说明: 2023年02月及之后创建的Elasticsearch 7.6.2和Elasticsearch 7.10.2集群仅支持流量控制2.0版本,之前创建Elasticsearch 7.6.2和Elasticsearch 7.10.2集群仅支持流量控制1.0版本。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群读写流量控制策略2.0 流量控制1.0 流量控制1.0提供节点级别的流量控制功能,可提供单个节点基于黑白名单的访问限制、HTTP并发连接数限制、HTTP最大连接数限制、基于请求Path的堆内存最大使用量流控能力、基于CPU最大占用率流控能力,一键断流能力,同时也提供节点访问IP统计和URL的采样统计能力。开启流控功能会使请求在入口处直接阻塞,可以缓解节点高并发场景下的集群压力,降低P99时延,减少节点不可用的风险。 说明: 2023年02月及之后创建的Elasticsearch 7.6.2和Elasticsearch 7.10.2集群仅支持流量控制2.0版本,之前创建Elasticsearch 7.6.2和Elasticsearch 7.10.2集群仅支持流量控制1.0版本。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群读写流量控制策略1.0 大查询隔离 大查询隔离支持对查询请求进行独立管理,将高内存、长耗时的查询请求进行隔离,保证节点内存安全。在节点堆内存使用率过高时,触发中断控制程序,根据选择的中断策略将其中一条大查询请求进行中断,取消其正在运行的查询任务。大查询隔离同时支持全局查询超时配置,用户可实时配置所有查询请求的超时时间,中断超时查询请求。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群大查询隔离 聚合增强 聚合增强在数据聚簇的情况下,利用向量化技术,批量处理数据,从而提升聚合性能,优化可观测性业务的聚合分析能力。 Elasticsearch 7.10.2 配置Elasticsearch集群聚合增强 读写分离 读写分离支持将写入主集群(Leader)的数据自动同步到从集群(Follower),实现主集群承担写入任务,从集群承担查询任务。读写分离可以将读写压力分开,提高查询的性能。当主集群无法提供服务时,可以通过主从切换使用从集群提供写入和查询服务,保证业务可以正常进行。 Elasticsearch 7.6.2、Elasticsearch 7.10.2 配置Elasticsearch集群读写分离 切换冷热数据 通过切换冷热数据,可以将部分现查要求秒级返回的数据放在高性能机器上面作为热数据,对于历史数据要求分钟级别返回的数据放在大容量低规格节点作为冷数据。冷热数据切换可以减低存储成本,提升搜索效率。 切换冷热数据和存算分离比,更适用于对搜索性能要求高的场景,冷数据存储在集群本地的冷数据节点中,存储的数据量大小依赖冷数据节点数和磁盘容量,存储成本也会比OBS高一些。 只要集群有冷数据节点就支持。 切换Elasticsearch集群冷热数据 索引回收站 索引回收站支持将删除的索引存放到回收站中,且支持从回收站中还原索引,防止误操作导致数据被删除,进而提升集群的数据可靠性。 Elasticsearch 7.10.2 配置Elasticsearch集群索引回收站 父主题: 增强Elasticsearch集群搜索能力
  • 常用的DSL查询语句 下面列举了常用的DSL查询语句,全量的DSL查询语句请参见《Elasticsearch指南》。 设置查询条件过滤,等同于SQL语言中的where。 如下命令中,查询未在“_search”前面过滤索引,所以是查询所有索引。bool为条件句,filter强制过滤“status”字段为“published”并且“publish_date”字段为“2015-01-01”以后的文档,must规定“title”字段含有“Search”并且“content”字段含有“Search”。 must和filter字段的区别在于filter等同于SQL的where会过滤字段但不参与ES搜索的打分机制,must也属于过滤必须满足的条件,但是会根据查询的匹配程度对搜索到的文档进行打分,在返回的结果中越匹配的文档会越靠前显示。 GET /_search { "query": { "bool": { "must": [ { "match": { "title": "Search" } }, { "match": { "content": "search" } } ], "filter": [ { "term": { "status": "published" } }, { "range": { "publish_date": { "gte": "2015-01-01" } } } ] } } } 聚合查询,近似于SQL语言中的Group by。 该查询是根据genre这个字段进行聚合,会根据test索引里的title字段进行分类统计。如果title为text(含keyword)类型,需要使用“title.keyword”进行聚合,默认情况下Elasticsearch和OpenSearch无法直接对text类型的字段进行聚合。其中titles仅为聚合的命名,可以根据需要命名为titles或者titleaggs等。 GET /test/_search { "aggs": { "titles": { "terms": { "field": "title.keyword" } } } } 以上聚合查询的例子包含了test索引的所有文档,即match_all查询条件为隐式条件。可以配合设置查询条件过滤中的查询条件过滤特定的文档进行聚合。
  • Elasticsearch集群导入数据方式介绍 Elasticsearch集群支持通过多种方式导入数据,基于业务使用场景可以自行选择导入数据的方式,具体请参见表1。在导入数据前可以根据需要选择是否对Elasticsearch集群进行导入性能增强,具体操作请参见增强Elasticsearch集群数据导入性能。 表1 Elasticsearch集群导入数据的方式 导入数据方式 适用场景 支持数据格式 相关文档 数据处理管道Logstash Logstash开源服务器端实时数据处理管道,支持多个来源采取数据。适用场景多,比如日志数据、监控数据、metric数据等流数据。 JSON、CSV、文本等多种格式 使用自建Logstash导入数据到Elasticsearch 开源Elasticsearch API 使用开源Elasticsearch API导入数据,使用灵活,适用于开发自己写的应用代码场景。 JSON 使用开源Elasticsearch API导入数据到Elasticsearch 云数据迁移服务CDM CDM向导式页面。适用于批数据迁移,比如数据存放在OBS或者Oracle数据库中,推荐使用CDM比较方便。 JSON 使用CDM导入数据到Elasticsearch 数据复制服务DRS DRS用于数据库在线迁移和实时同步数据的云服务。 关系型数据库 使用DRS从数据库导入数据至Elasticsearch
  • 使用DRS从数据库导入数据至Elasticsearch 数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。实时同步是指在不同的系统之间,将数据通过同步技术从一个数据源复制到其他数据库,并保持一致,实现关键业务的数据实时流动。 使用DRS支持将多种关系型数据库的数据导入至Elasticsearch集群,源数据库和目标集群的版本支持情况请参见表2。 表2 使用DRS从数据库导入数据至Elasticsearch 数据导入场景 源数据库 目标Elasticsearch集群 参考文档 将RDS for MySQL数据库的数据导入到CSS Elasticsearch集群 RDS for MySQL 5.5、5.6、5.7、8.0版本 ElasticSearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 将MySQL同步到CSS/ES 将 GaussDB (for MySQL)数据库的数据导入到CSS Elasticsearch集群 GaussDB(for MySQL)主备实例 ElasticSearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 将GaussDB(for MySQL)同步到CSS/ES 将自建MySQL数据库的数据导入到CSS Elasticsearch集群 本地或ECS自建MySQL数据库 5.5、5.6、5.7、8.0版本 ElasticSearch 5.5、6.2、6.5、7.1、7.6、7.9、7.10版本 将MySQL同步到CSS/ES
  • 计费构成分析 可以将集群的使用阶段按照计费模式分为两段: 在2023/03/18 15:30:00 ~ 2023/03/20 10:30:00期间为按需计费。 在2023/03/20 10:30:00 ~ 2023/04/20 23:59:59期间为包年/包月计费。 按需计费 在2023/03/18 15:30:00 ~ 2023/03/20 9:00:00期间按照ess.spec-4u8g规格计费,计费时长为42小时,费用计算如下: 在2023/03/20 9:00:00 ~ 2023/03/20 10:30:00期间按照ess.spec-8u16g规格计费,计费时长为2小时,费用计算如下: 包年/包月计费 在2023/03/20 10:30:00 ~ 2023/04/20 23:59:59期间为包年/包月计费,计费时长为1个月,费用计算如下: 由此可见,在3~4月份,该集群总共产生的费用为:77.78 +6.28+ 1436.34 = 1520.4元 。
  • 计费场景 某用户于2023/03/18 15:30:00购买了一个Elasticsearch类型的按需计费集群,规格配置如下: 节点规格:ess.spec-4u8g 节点存储:普通I/O,40GB Kibana公网访问带宽:6Mbit/s 用了一段时间后,用户发现集群当前规格无法满足业务需要,于2023/03/20 9:00:00扩容规格为ess.spec-8u16g。因为该集群打算长期使用下去,于2023/03/20 10:30:00将集群转为包年/包月计费,购买时长为1个月。那么在3~4月份,该集群总共产生多少费用呢?
  • 计费模式概述 云搜索服务提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照集群实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照集群实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 适用计费项 节点规格(vCPUs和内存)、节点存储、公网带宽。 节点规格(vCPUs和内存)、节点存储、公网带宽。 变更计费模式 支持变更为按需计费模式。 包年/包月资费模式到期后,按需的资费模式才会生效。更多信息,请参见包年/包月转按需。 支持变更为包年/包月计费模式。更多信息,请参见按需转包年/包月。 支付订单后,包年/包月资源将立即生效。 变更规格 支持变更实例规格。 支持变更实例规格。 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。 适用于计算资源需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
  • 计费示例 假设您在2023/03/08 15:50:04购买了一个包年/包月集群(规格:ess.spec-4u8g),计费资源包括计算资源(vCPUs和内存)、存储(普通I/O 40GB)以及Kibana公网带宽(1Mbit/s)。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 您需要为每个计费周期预先付费,各项资源单独计费,计费公式如下所示。 表3 计费公式 资源类型 计费公式 资源单价 节点规格 节点规格单价 * 购买时长 请参见云搜索服务价格计算器中的“规格价格”。 节点存储 节点存储单价 * 购买时长 请参见云搜索服务价格计算器中的“存储价格”。 公网带宽 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 请参见云搜索服务价格计算器中的“带宽价格”。 图1给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以云搜索服务价格计算器中的价格为准。 图1 包年/包月集群费用计算示例
  • 计费概述 通过阅读本文,您可以快速了解云搜索服务CSS的计费模式、计费项、续费、欠费等主要计费信息。 计费模式 云搜索服务提供包年/包月、按需计费两种计费模式,以满足不同场景下的用户需求。包年/包月是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算,因此在购买之前,您必须确保账户余额充足。按需计费是一种后付费模式,即先使用再付费,按照集群实际使用时长计费。关于两种计费模式的详细介绍请参见2.1 计费模式概述。 在购买集群后,如果发现当前计费模式无法满足业务需求,您还可以变更计费模式。详细介绍请参见6.1 变更计费模式概述。 计费项 云搜索服务的计费项由节点规格费用、节点存储费用、Kibana公网带宽和公网带宽费用组成。了解每种计费项的计费因子、计费公式等信息,请参见计费项。 如需了解实际场景下的计费样例以及各计费项在不同计费模式下的费用计算过程,请参见5 计费样例。 续费 包年/包月集群在到期后会影响云搜索服务的正常运行。如果您想继续使用云搜索服务,需要在规定的时间内为云搜索服务进行续费,否则vCPUs、内存、存储等资源将会自动释放,数据也可能会丢失。续费包括手动续费和自动续费两种方式,您可以根据需求选择。了解更多关于续费的信息,请参见续费概述。 欠费 在使用云搜索服务时,账户的可用额度小于待结算的账单,即被判定为账户欠费。欠费后,可能会影响云服务资源的正常运行,需要及时充值。详细介绍请参见9 欠费说明。 停止计费 当云搜索服务资源不再使用时,可以将集群退订或删除,从而避免继续收费。详细介绍请参见10 停止计费。 成本管理 您可以从成本构成、成本分配、成本分析和成本优化四个维度来管理成本。更多详情,请参见11 成本管理。
  • 变更配置后对计费的影响 当前包年/包月集群的规格不满足您的业务需要时,您可以在云搜索服务管理控制台发起变更规格操作,变更时系统将按照如下规则为您计算变更费用: 资源升配:新配置价格高于老配置价格,此时您需要支付新老配置的差价。 资源降配:新配置价格低于老配置价格,此时华为云会将新老配置的差价退给您。 资源降配会影响进群性能,通常不建议您这样操作。这里以资源升配且无任何优惠的场景为例,假设您在2023/04/08购买了一个包年/包月集群(ess.spec-4u8g),购买时长为1个月,计划在2023/04/18变更规格为ess.spec-8u16g。旧配置价格为614.74 元/月,新配置价格为1229.34 元/月。计算公式如下: 升配费用=新配置价格*剩余周期-旧配置价格*剩余周期 公式中的剩余周期为每个自然月的剩余天数/对应自然月的最大天数。本示例中,剩余周期=12(4月份剩余天数)/ 30(4月份最大天数)+ 8(5月份剩余天数)/ 31(5月份最大天数)=0.66,代入公式可得升配费用=1229.34*0.6581-614.74*0.6581=450.64(元)。 更多信息请参见变更资源规格费用说明。
  • 到期后影响 图3描述了包年/包月集群各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图3 包年/包月集群资源生命周期 到期预警 包年/包月集群在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 到期后影响 当您的包年/包月集群到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以正常访问集群,但以下操作将受到限制: 变更节点规格 扩容节点存储 修改带宽大小 如果您在宽限期内仍未续费包年/包月集群资源,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的包年/包月资源执行任何操作。 保留期到期后,若包年/包月集群资源仍未续费,那么计算资源(vCPUs和内存)、云硬盘和公网带宽将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
  • 计费示例 假设您在2023/03/08 15:50:04购买了一个包年/包月集群(规格:ess.spec-4u8g),计费资源包括计算资源(vCPUs和内存)、存储(普通I/O 40GB)以及Kibana公网带宽(1Mbit/s)。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 您需要为每个计费周期预先付费,各项资源单独计费,计费公式如下所示。 表2 计费公式 资源类型 计费公式 资源单价 节点规格 节点规格单价 * 购买时长 请参见云搜索服务价格计算器中的“规格价格”。 节点存储 节点存储单价 * 购买时长 请参见云搜索服务价格计算器中的“存储价格”。 公网带宽 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 请参见云搜索服务价格计算器中的“带宽价格”。 图2给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以云搜索服务价格计算器中的价格为准。 图2 包年/包月集群费用计算示例
  • 适用计费项 以下计费项支持包年/包月: 表1 适用计费项 计费项 说明 节点规格 包括vCPUs和内存。 节点存储 节点的磁盘存储类型和节点存储大小。 公网带宽 包年/包月集群开通公网访问或者Kibana公网访问功能时,会产生带宽费用,带宽的计费模式同为包年/包月。 假设您计划购买一个节点存储为高I/O 40GB的集群,且选择Kibana公网访问。在购买集群的配置确认页面,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 配置费用将包括以下部分: 节点规格:根据所选配置(包括vCPUs和内存)计算的费用。 节点存储:节点的存储费用。 Kibana公网带宽:根据所选带宽大小计算的费用。
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 变更计费模式概述 在购买集群后,如果发现当前计费模式无法满足业务需求,您可以变更计费模式。支持变更计费模式的计费项如表6-1所示。 表1 支持变更计费模式的计费项 计费项 变更说明 相关文档 节点规格 变更集群的计费模式会同时变更计算资源(vCPUs和内存)存储、公网带宽的计费模式。 将集群的计费模式从按需计费转为包年/包月,可以让您享受一定程度的价格优惠。 将集群的计费模式从包年/包月转为按需计费,可以帮助您回收部分成本,并更加灵活地使用CSS资源。 说明: 包年/包月计费模式到期后,按需计费模式才会生效。 按需转包年/包月 包年/包月转按需 节点存储 公网带宽 图1 变更计费模式 父主题: 变更计费模式
  • 变更配置后对计费的影响 如果您在购买按需计费集群后变更了实例配置,会产生一个新订单并开始按新配置的价格计费,旧订单自动失效。 如果您在一个小时内变更了集群配置,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同配置在该小时内的生效时间。 例如,您在9:00:00购买了一台按需计费实例,实例规格为ess.spec-4u8g,并在9:30:00升配为ess.spec-8u16g,那么在9:00:00 ~ 10:00:00间会产生两条计费信息。 第一条对应9:00:00 ~ 9:30:00,实例规格按照ess.spec-4u8g计费。 第二条对应9:30:00 ~ 10:00:00,实例规格按照ess.spec-8u16g计费。
  • 适用计费项 计算资源(vCPUs和内存)只有同时配合云硬盘、公网带宽,才能确定一个集群的具体服务形态。以下计费项支持按需计费。 计费项 说明 节点规格 包括vCPUs和内存。 节点存储 节点的磁盘存储类型和节点存储大小。 公网带宽 集群开通公网访问或者Kibana公网访问功能时,会产生带宽费用,带宽的计费模式同为按需计费。 假设您计划购买一个节点存储为高I/O 40GB的集群,且选择Kibana公网访问。在购买集群的配置确认页面,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 配置费用将包括以下部分: 节点规格:根据所选配置(包括vCPU和内存)计算的费用。 节点存储:节点的存储费用。 Kibana公网带宽:根据所选带宽大小计算的费用。
  • 计费周期 按需计费集群按小时计费,每一个小时整点结算一次费用(以UTC+8时间为准),不足一小时按一小时计费,结算完毕后进入新的计费周期。计费的起点以集群创建成功的时间点为准,终点以实例删除时间为准。 集群从创建到启动需要一定时长,计费的起点是创建成功的时间点,而非创建时间。您可以在集群详情页“基本信息”页签查看集群的“创建时间”。 例如,您在8:45:30购买了一个集群,相关资源包括节点规格(vCPUs和内存)、节点存储和公网带宽,然后在8:55:00将其删除,则计费周期为8:00:00 ~ 9:00:00,在8:45:30 ~ 8:55:30的计费时长不足一小时按一小时计费。
  • 计费示例 假设您在2023/04/18 9:39:30购买了一按需计费集群(规格:ess.spec-4u8g),计费资源包括节点规格(vCPUs和内存)、节点存储以及Kibana公网带宽(6Mbit/s),然后在2023/04/18 10:45:46将其删除,计费周期如下所示: 第一个计费周期为9:00:00 ~ 10:00:00,在9:39:30 ~ 10:00:00间产生费用,该计费周期内的计费时长为1小时。 第二个计费周期为10:00:00 ~ 11:00:00,在10:00:00 ~ 10:45:46间产生费用,该计费周期内的计费时长为1小时。 您需要为每个计费周期付费,各项集群单独计费,计费公式如表1所示。产品价格详情中标出了资源的每小时价格。 表1 计费公式 资源类型 计费公式 资源单价 节点规格 节点规格单价 * 计费时长 请参见云搜索服务价格计算器中的“规格价格”。 节点存储 节点存储单价 * 计费时长 请参见云搜索服务价格计算器中的“存储价格”。 公网带宽 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 请参见云搜索服务价格计算器中的“带宽价格”。 图2给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以云搜索服务价格计算器中的价格为准。 图2 按需计费集群费用计算示例
  • 续费相关的功能 包年/包月集群续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月集群从购买到被自动删除之前,您可以随时为集群续费,以延长集群的使用时间。 自动续费 开通自动续费后,集群会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在一个包年/包月集群生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体图1所示。 图1 集群生命周期 集群从购买至到期前,且处于正常运行阶段,资源状态为“运行中”。 到期后,资源状态变为“已过期”。 到期未续费时,集群首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在集群到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至集群到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 数据查询流程 图1 数据查询流程 如图1所示,以Elasticsearch集群为例,介绍客户端往Elasticsearch或OpenSearch集群发送查询请求的流程。图中的P表示主分片Primary,R表示副本分片Replica,主副分片在数据节点Node里是随机分配的,但是不能在同一个节点里。 客户端向Node1发送查询请求,此时Node1为协调节点。 节点Node1根据查询请求的索引以及其分片分布,进行分片选择;然后将请求转发到Node1、Node2、Node3。 各分片分别执行查询任务;当各分片查询成功后,将查询结果汇聚到Node1,然后协调节点向客户端返回查询结果。 对于某个查询请求,其在节点上默认可并行查询5个分片,多于5个分片时将分批进行查询;在单个分片内,通过逐个遍历各个Segment的方式进行查询。 图2 Elasticsearch的索引组成
  • 查询性能优化 基于Elasticsearch的数据查询流程分析,有以下几种性能优化方案。 表1 查询性能优化 优化方案 方案说明 通过routing减少检索扫描的分片数 在数据入库时指定routing值,将数据路由到某个特定的分片,查询时通过该routing值将请求转发到某个特定的分片,而不是相关索引的所有分片,进而提升集群整体的吞吐能力。 Elasticsearch 7.x版本中,设置命令如下: 指定routing值插入数据 PUT /{index}/_doc/1?routing=user1 { "title": "This is a document" } 根据routing值去查询数据 GET /{index}/_doc/1?routing=user1 采用index sorting减少检索扫描的Segments数 当请求落到某个分片时,会逐个遍历其Segments,通过使用index sorting,可以使得范围查询、或者排序查询在段内提前终止(early-terminate)。 Elasticsearch 7.x版本中,示例命令如下: //假设需要频繁使用字段date做范围查询。 PUT {index} { "settings": { "index": { "sort.field": "date", "sort.order": "desc" } }, "mappings": { "properties": { "date": { "type": "date" } } } } 增加query cache提升缓存命中的概率 当filter请求在段内执行时,会通过bitset保留其刷选结果,当下一个类似的查询过来时,就可以复用之前查询的结果,以此减少重复查询。 增加query cache可以通过修改集群的参数配置实现,将自定义缓存参数“indices.queries.cache.size”设置为更大的值。具体操作请参见参数配置,修改参数配置后一定要重启集群使参数生效。 提前Forcemerge,减小需要扫描的Segments数 对于定期滚动后的只读索引,可以定期执行forcemerge,将小的Segments合并为大的Segments,并将标记为“deleted”状态的索引彻底删除,提升查询效率。 Elasticsearch 7.x版本中,配置示例如下: //假设配置索引forcemerge后segments数量为10个。 POST /{index}/_forcemerge?max_num_segments=10
  • 数据写入流程 图1 数据写入流程 如图1所示,以Elasticsearch集群为例,介绍客户端往Elasticsearch或OpenSearch集群中写入数据的流程。图中的P表示主分片Primary,R表示副本分片Replica,主副分片在数据节点Node里是随机分配的,但是不能在同一个节点里。 客户端向Node1发送写数据请求,此时Node1为协调节点。 节点Node1根据数据的_id将数据路由到分片2,此时请求会被转发到Node3,并执行写操作。 当主分片写入成功后,它将请求转发到Node2的副本分片上。当副本写入成功后,Node3将向协调节点报告写入成功,协调节点向客户端报告写入成功。 Elasticsearch中的单个索引由一个或多个分片(shard)组成,每个分片包含多个段(Segment),每一个Segment都是一个倒排索引。 图2 Elasticsearch的索引组成 如图3所示,将文档插入Elasticsearch时,文档首先会被写入缓冲区Buffer中,同时写入日志Translog中,然后在刷新时定期从该缓冲区刷新文档到Segment中。刷新频率由refresh_interval参数控制,默认每1秒刷新一次。更多写入性能相关的介绍请参见Elasticsearch的官方介绍Near Real-Time Search。 图3 文档插入Elasticsearch的流程
  • 写入性能优化 基于Elasticsearch的数据写入流程分析,有以下几种性能优化方案。 表1 写入性能优化 优化方案 方案说明 使用SSD盘或升级集群配置 使用SSD盘可以大幅提升数据写入与merge操作的速度,对应到CSS服务,建议选择“超高IO型”存储,或者超高IO型主机。 采用Bulk API 客户端采用批量数据的写入方式,每次批量写入的数据建议在1~10MB之间。 随机生成_id 如果采用指定_id的写入方式,数据写入时会先触发一次查询操作,进而影响数据写入性能。对于不需要通过_id检索数据的场景,建议使用随机生成的_id。 设置合适的分片数 分片数建议设置为集群数据节点的倍数,且分片的大小控制在50GB以内。 关闭副本 数据写入与查询错峰执行,在数据写入时关闭数据副本,待数据写入完成后再开启副本。 Elasticsearch 7.x版本中关闭副本的命令如下: PUT {index}/_settings { "number_of_replicas": 0 } 调整索引的刷新频率 数据批量写入时,可以将索引的刷新频率“refresh_interval”设置为更大的值或者设置为“-1”(表示不刷新),通过减少分片刷新次数提高写入性能。 Elasticsearch 7.x版本中,将更新时间设置为15s的命令如下: PUT {index}/_settings { "refresh_interval": "15s" } 优化写入线程数与写入队列大小 为应对突发流量,可以适当地提升写入线程数与写入队列的大小,防止突发流量导致出现错误状态码为429的情况。 Elasticsearch 7.x版本中,可以修改如下自定义参数实现写入优化:thread_pool.write.size,thread_pool.write.queue_size。 设置合适的字段类型 指定集群中各字段的类型,防止Elasticsearch默认将字段猜测为keyword和text的组合类型,增加不必要的数据量。其中keyword用于关键词搜索,text用于全文搜索。 对于不需要索引的字段,建议“index”设置为“false”。 Elasticsearch 7.x版本中,将字段“field1”设置为不建构索引的命令如下: PUT {index} { "mappings": { "properties": { "field1":{ "type": "text", "index": false } } } } 优化shard均衡策略 Elasticsearch默认采用基于磁盘容量大小的Load balance策略,在多节点场景下,尤其是在新扩容的节点上,可能出现shard在各节点上分配不均的问题。为避免这类问题,可以通过设置索引级别的参数“routing.allocation.total_shards_per_node”控制索引分片在各节点的分布情况。此参数可以在索引模板中配置,也可以修改已有索引的setting生效。 修改已有索引的setting的命令如下: PUT {index}/_settings { "index": { "routing.allocation.total_shards_per_node": 2 } }
共100000条