基于BOS的冷热数据分离

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
所有文档
menu
没有找到结果,请重新输入

Elasticsearch BES

  • 邀测版存储计算分离套餐介绍
  • 功能发布记录
  • 产品描述
    • 基本概念
    • 关键特性
    • 产品介绍
    • 产品性能
      • 4核16GB512GB通用型的3个数据节点实例基准性能指标
      • 8核16GB512GB计算型的3个数据节点实例基准性能测试
      • 16核32GB512GB计算型的3个数据节点实例基准性能指标
      • 4核8GB512GB计算型的3个数据节点实例基准性能测试
      • 8核32GB512GB通用型的3个数据节点实例基准性能指标
      • 16核64GB512GB通用型的3个数据节点实例基准性能指标
      • 概述
  • Python-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • Kibana
    • Kibana使用指南
  • Logstash
    • Logstash使用指南
    • 实例管理
      • 实例详情信息
      • 实例扩缩容
      • 管道管理
      • 创建实例
      • 实例列表
      • 删除实例
  • 开发指南
    • Elasticsearch Restful API
    • 通过其他客户端访问Elasticsearch
    • Elasticsearch Java客户端
      • Low Level REST Client
      • Rest Client操作向量索引示例
      • Java REST Client
      • High Level REST Client
  • Java-SDK
    • 实例
    • 异常
    • 日志
    • 节点配置类型
    • 版本更新记录
    • 快速入门
    • 集群
    • BesClient
    • 安装SDK工具包
    • 概述
  • 向量检索特性
    • 资源规划
    • 关键概念
    • 应用场景
    • 快速入门
    • 算法介绍
    • 能力简介
    • 向量数据库
    • 操作指南
      • 写入和查询数据
      • 训练模型
      • 向量索引缓存管理
      • 创建索引
      • 基于Reciprocal Rank Fusion的融合查询
      • 参数优化
      • 7.4版本兼容说明
    • 最佳实践
      • 调优建议
      • BES RAG 最佳实践:基于LangChain+BES的私域知识的QA问答系统
    • 迁移方案
      • ES dense vector 切换为BES方案
  • ELK
    • 基于ELK构建日志分析系统
  • 增强特性
    • 慢查询隔离
    • 百度NLP中文分词词典动态更新
    • 百度NLP中文分词插件
    • 基于段文件的主从复制
    • 基于BOS的冷热数据分离
  • 快速入门
    • 访问Elasticsearch服务
    • 导入数据并搜索
    • 创建集群
    • 集群资源评估
  • 典型实践
    • 使用BSC将BOS中的数据导入Es
    • 使用BSC将Kafka中的数据导入Es
    • 基于CCR实现多集群跨地域高可用
    • 基于节点磁盘介质的冷热数据分离
  • 服务等级协议SLA
    • 数据迁移服务协议
    • BES服务等级协议SLA(V1.0)
  • 常见问题
    • Spark访问Es常见问题
    • Elasticsearch系统常见问题
    • 常见问题总览
  • 产品定价
    • 预付费
    • 计费说明
    • 配置变更费用说明
    • 后付费
  • API文档
    • 概述
    • 自动续费相关接口
      • 续费列表
      • 查看自动续费
      • 查看自动续费规则列表
      • 续费操作
      • 更新自动续费规则
      • 删除自动续费规则
      • 创建自动续费规则
    • 插件配置接口
      • 上传自定义插件
      • 卸载系统默认插件
      • 上传nlp词典
      • 安装系统默认插件
      • 获取默认和自定义插件列表
      • 卸载自定义插件
      • 安装自定义插件
      • 删除自定义插件
      • 查看nlp词典
    • 日志管理相关接口
      • 查看日志导出任务记录
      • 创建日志导出任务
      • 日志设置
      • 日志查询
    • 标签接口
      • 查询标签列表
      • 批量新增标签
      • 单个集群更新标签
    • 智能巡检接口
      • 查看近7天已完成的巡检任务列表
      • 近七天巡检概况
      • 查看手动巡检任务的配置
      • 集群巡检授权
      • 列举所有可选巡检项
      • 查询是否可以提交巡检任务
      • 最新一次巡检概况
      • 查看集群是否开启自动巡检
      • 修改手动巡检任务的配置
      • 开启或关闭自动巡检
      • 提交手动巡检任务
      • 查询今日已执行完成的手动巡检次数
      • 查看某巡检任务的执行状态和结果
    • 集群相关接口
      • 获取操作历史信息
      • 删除集群
      • 新增节点类型
      • 开启和关闭https
      • 查看集群详情信息
      • 重置密码
      • EIP绑定
      • EIP解绑
      • 是否开启Grafana监控
      • 获取数据量观测数据
      • 查看集群列表
      • 上传NLP分词词典
      • 创建集群
      • 智能评估
      • 集群blb信息
      • 用户可用代金券列表
      • 停止集群
      • 扩容集群
      • 启动集群
      • 重启集群
    • 实例相关接口
      • 批量停止实例
      • 启动实例
      • 查看缩容节点列表
      • 数据迁移
      • 数据迁移系统建议
      • 批量启动实例
      • 数据迁移回滚
      • 停止实例
      • 数据迁移节点列表
      • 删除实例
    • 配置修改相关接口
      • 获取同义词文件列表
      • 查看集群配置
      • 删除同义词配置文件
      • 上传同义词配置文件
      • 配置修改
    • 定时调度
      • 更新定时调度任务
      • 删除定时调度任务
      • 创建和更新定时调度任务
      • 查看定时调度任务
  • API3.0
    • 集群相关接口
      • 删除集群
  • Elasticsearch
    • 用户手册
      • YML参数配置
      • 权限管理
      • 智能巡检
      • 数据迁移
      • 基于BOS的快照与恢复
      • 集群列表
      • 账号使用说明
      • 多可用区部署
      • 定时调度
      • 数据量观测
      • 日志查询
        • 日志查询(旧)
        • 日志查询(新)
        • 日志导出
        • 查询语法
      • 集群配置
        • 配置同义词
      • 插件管理
        • 上传与安装自定义插件
        • Elasticsearch插件列表
        • 系统默认插件
          • analysis-pinyin拼音分词插件
          • IK中文分词插件与动态更新词典
          • compression-zstd插件
          • CCR插件
          • 限流插件
          • 动态同义词插件
          • 简繁体转换插件
          • ingest attachment插件
          • SQL插件
      • 配置变更
        • 节点数据迁移
        • 集群变配说明与建议
        • 集群扩缩容
      • 版本升级
        • 升级版本
        • 内核版本说明
        • 升级检查
      • 集群监控报警
        • 监控查看及指标说明
        • 配置报警
      • 集群管理
        • 集群重启
        • 变更HTTPS协议用户指南
        • 节点启停
        • 查看集群信息
        • 集群创建
        • 公网绑定
        • 修改集群名称
        • 跨可用区迁移集群
        • 集群删除
        • 集群列表
        • 自动续费
        • 密码重置
        • ES服务区域代码
      • 账户管理
        • 多用户访问控制
  • 文档中心
  • arrow
  • ElasticsearchBES
  • arrow
  • 增强特性
  • arrow
  • 基于BOS的冷热数据分离
本页目录
  • 实现原理
  • 优势
  • 适用场景
  • 使用方法
  • 创建BOS Bucket
  • Bucket生命周期配置
  • 配置BOS信息到BES
  • 创建冷热数据分离Index
  • 对已存在的Index启用冷热数据分离架构
  • 冷数据迁移的触发条件
  • 手动触发迁移
  • 定时调度触发迁移
  • 本地缓存淘汰策略
  • 本地缓存配置
  • 缓存的配置
  • 数据观测
  • 1、索引级观测接口
  • 2、节点级观测接口
  • 3、集群级观测接口
  • 常用API
  • 1、冷索引预热
  • 2、清理缓存
  • 性能测试
  • 结论
  • 常见问题

基于BOS的冷热数据分离

更新时间:2025-08-20

百度智能云Elasticsearch(以下简称为ES)使用不同的存储介质来存储数据,达到冷热数据分离的目的:

  • 对于读写性能要求比较高的“热数据”,使用SSD云磁盘存储,保障了高效的查询性能。
  • 对于存储量需求比较大但对查询性能要求较低的“冷数据”,使用价格更低廉的百度对象存储(BOS)存储数据,大幅度降低存储成本。

注意:目前冷热数据分离架构仅支持功能发布后新创建的7.4.2、7.10.2版本的实例。无法使用冷热数据分离功能的集群请提交工单,BES团队会协助升级集群,升级方式参见ES版本升级。

实现原理

image.png

优势

  • 冷热数据分离:热数据使用SSD云磁盘存储,保证性能,冷数据使用价格低廉的BOS存储,更经济的满足用户的需求。
  • 高性价比:使用BOS作为存储介质,扩大了ES单节点的存储容量,用户可以使用较少的ES节点存储大量的数据,大幅度降低存储成本。

适用场景

  • 历史日志分析场景:历史数据量大,查询频率相对低,使用冷热数据分离可以大幅降低存储成本。

使用方法

最开始使用基于BOS冷热分离架构时,首先创建BOS Bucket的并配置,然后将BOS相关信息配置到ES中。最后就可以在ES中创建冷热数据分离Index,在业务需要时 手动 或通过管控平台 定时调度功能 进行索引置冷,将Index迁移到BOS。

创建BOS Bucket

冷热数据分离使用BOS来做冷数据的共享存储,因此在使用冷热数据分离架构前,需要先新建BOS Bucket。

用户可以通过 Console 控制台创建BOS Bucket:

  1. 登录 对象存储 BOS 管理控制台
  2. 在控制台左侧的导航栏中找到并点击 + 按钮(“新建 Bucket”按钮),在弹出框中按照提示创建Bucket。
  3. 新建Bucket配置项说明:
  • 默认存储类型:选择“标准存储”
  • CDN官方加速:关闭

其他配置项用户可根据业务需求选择。创建Bucket详细方式参见:创建Bucket

image.png

Bucket生命周期配置

使用BOS创建Bucket后,强烈建议配置Bucket生命周期。

  1. 登录 对象存储 BOS 管理控制台。
  2. 在左侧Bucket列表中,选择需要设置权限的 Bucket,点击 Bucket 名称进入 Bucket 管理目录。
  3. 在上方导航栏选择 配置管理 标签。
  4. 在 配置管理 页面中选择 基础配置,在 生命周期配置 区域点击 新增配置 ,对该Bucket的生命周期进行配置。默认情况下该功能不开启。

image.png

  1. 配置规则:
  • 不可启用删除Object规则,避免冷数据被删除
  • 启用删除Part规则,保存天数设为1天,防止未上传完整的数据块占用存储空间,造成多余存储费用

image.png

配置BOS信息到BES

通过如下API可以设置BOS存储信息:

Plain Text
1PUT /_cluster/settings
2{
3  "persistent": {
4    "bpack.remote_storage.bos.access_key": "xxxxxxxx",
5    "bpack.remote_storage.bos.secret_key": "xxxxxxxx",
6    "bpack.remote_storage.bos.bucket": "es_remote_bucket",
7    "bpack.remote_storage.bos.endpoint": "bj.bcebos.com",
8    "bpack.remote_storage.bos.base_path": "es_shared_data"
9  }
10}

参数说明:

参数 含义
bpack.remote_storage.bos.access_key 访问BOS需要的access key, 可以在百度智能云的控制台上获得。
bpack.remote_storage.bos.secret_key 访问BOS需要的secret access key,可以在百度智能云的控制台上获得。
bpack.remote_storage.bos.bucket BOS上建立的bucket的名称,需要提前创建。
bpack.remote_storage.bos.endpoint BOS的访问地址,一般情况下每个地区有不同的地址,您可以参考BOS的使用文档来获得每个地域的地址。
bpack.remote_storage.bos.base_path 百度智能云Elasticsearch存放数据的目录。

冷热分离引擎会定期请求BOS,扫描并清理BOS上的过期数据,因此配置的AK、SK需要拥有该bucket的write、read、list权限。

创建冷热数据分离Index

在创建Index时,需要特别指定index.store.type为bosfs,这样百度智能云Elasticsearch才会使用冷热分离的架构来管理Index。

Plain Text
1PUT /{index_name}
2{
3  "settings": {
4    "index.store.type": "bosfs"
5  }
6}

在以上操作结束后,用户可以和访问普通Index一样来对冷热数据分离的Index进行写入、查询数据。

对已存在的Index启用冷热数据分离架构

对于之前已经建好的索引,也可以使用基于bos的冷热分离功能。

前提条件:完成BOS Bucket创建和配置,已经将BOS信息配置到BES。

操作说明:

首先关闭索引:

Plain Text
1POST /{index_name}/_close

然后将store.type设置为bosfs :

Plain Text
1put /{index_name}/_settings
2{
3    "index.store.type": "bosfs"
4}

再重新打开索引:

Plain Text
1POST /{index_name}/_open

在以上操作结束后,就将此Index设置成了冷热数据分离的Index。

冷数据迁移的触发条件

冷热数据分离的Index中的数据在满足以下2种情况之一时,会触发数据迁移到BOS。

手动触发迁移

当这个Index中的数据不再写入,并且读取频率比较低的时候,用户可以把Index设置为Cold状态,手动触发数据迁移。设置方式如下:

Plain Text
1POST /_bpack/migrate/{index_name}/cold

注意:Cold状态的Index为只读状态,不能再写入数据。已经置为Cold状态的Index,不可以再改为普通状态。

定时调度触发迁移

用户可以使用定时调度-索引置冷来触发迁移,在定时置冷任务执行后,Index会置为Cold,并触发数据迁移,效果与上文手动触发迁移一致。

image.png

建议用户使用手动触发迁移或定时调度触发迁移来进行索引置冷。

本地缓存淘汰策略

当本地磁盘使用率超过了缓存最大磁盘限制,本地数据会被删除。缓存最大磁盘限制默认为75%,用户可以通过修改设置项bpack.bosfs.cache.disk.limit来修改缓存最大磁盘限制,修改方式如下:

Plain Text
1PUT /_cluster/settings
2{
3    "persistent": {
4        "bpack.bosfs.cache.disk.limit" : "50%"
5    }
6}
7or
8PUT /_cluster/settings
9{
10    "persistent": {
11        "bpack.bosfs.cache.disk.limit" : "0.5"
12    }
13}

本地缓存配置

数据置冷后,为了提升ES的查询性能,冷热分离架构将会缓存部分数据,减少对BOS的访问请求。在检索时,第一次获取数据会直接访问BOS,之后将获取到的数据缓存在本地,后续访问会先检查是否有缓存。

缓存的配置

仅在7.10.2版本支持

配置 说明 默认值 类型
bpack.migrate.max_bytes_per_sec 置冷数据时数据上传bos速率限制值 40m 字符串
bpack.bosfs.cache.custom_cache_names 缓存系统支持多级缓存,分别用来缓存不同访问粒度的数据。此配置列出所有缓存的名字,即使不配置,系统也会默认有2个缓存,名字为default和dic。如果自定义配置,可以配置除default和dic外的其他缓存类型。 ["default","dic"] 字符串数组
bpack.bosfs.cache.{cache_name}.expiry_time 缓存中的文件在最后一次读或者写入后开始计时,在指定的时间后过期。使用TimeUnit格式表示,例如『10s』、『10m』、『3h』等,不可设置为小数值,如『1.5h』。 60m 字符串
bpack.bosfs.cache.{cache_name}.disk_limit 缓存的最大容量。当缓存尝试加载数据时超过了缓存的最大容量限制,它将触发驱逐操作。该值可以设置为一个带有存储容量单位的值,例如『10kb』、『10mb』、『3g』等,不建议设置为小数值,如『1.5g』。 disk的10% 字符串
bpack.bosfs.cache.{cache_name}.file.types 文件缓存的文件后缀名。 - 字符串数组
bpack.bosfs.cache.default.expiry_time 默认文件缓存的过期时间 60m 字符串
bpack.bosfs.cache.default.disk_limit 默认文件缓存的最大容量 disk的30% 字符串
bpack.bosfs.cache.default.file.types 默认文件缓存的文件后缀名。会缓存除其他缓存外的所有文件。 - 字符串数组
bpack.bosfs.cache.dic.expiry_time 默认文件缓存的过期时间 120m 字符串
bpack.bosfs.cache.dic.disk_limit 默认文件缓存的最大容量 disk的10% 字符串
bpack.bosfs.cache.dic.file.types 默认文件缓存的文件后缀名。会缓存除其他缓存外的所有文件。 ["tvx", "si", "tip", "tim", "tvb", "fdx", "doc", "dim"] 字符串数组

数据观测

提供数据观测接口,方便使用者观察数据分布情况。

1、索引级观测接口

接口命令:

Plain Text
1GET /_bpack/migration/stats?v

响应结果说明:

属性 说明
index 索引名称
uuid 索引uuid
status bosfs类型索引的冷热状态
active.shard 索引活跃分片数
finished.shard 完成bos数据上传的分片数
waiting.shard 等待bos数据上传的分片数
running.shard 进行bos数据上传的分片数
hot.data 本地索引数据大小
cold.data bos上索引数据大小
cache.data 本地索引缓存数据大小

响应示例:

image.png

2、节点级观测接口

仅在7.10.2版本支持

接口命令:

Plain Text
1GET /_bpack/node/migration/stats?v

响应结果说明:

属性 说明
id es节点id
ip es节点ip
shards 节点上bosfs索引的分片的总量
hot.data 本地索引数据大小
cold.data bos上索引数据大小
cache.data 本地索引缓存数据大小

响应示例:

image.png

3、集群级观测接口

仅在7.10.2版本支持

接口命令:

Plain Text
1GET /_bpack/cluster/migration/stats?v

响应结果说明:

属性 说明
shards 节点上bosfs索引的分片的总量
hot.data 本地索引数据大小
cold.data bos上索引数据大小
cache.data 本地索引缓存数据大小

响应示例:

image.png

常用API

仅在7.10.2版本支持

1、冷索引预热

在初次收到搜索请求时,由于冷数据均保存在BOS,初次请求会存在较高延迟。为了避免这种情况,用户可以使用冷索引预热APi对目标索引进行预热,下载对应文件进入缓存,加快检索效率。

Plain Text
1POST /_bpack/bosfs/{index}/_pre_hot

2、清理缓存

用户可以使用清理缓存APi手动清理缓存文件。

Plain Text
1POST /_bpack/bosfs/_clear_cache
2POST /_bpack/bosfs/{index}/_clear_cache

性能测试

  • 测试工具:Elasticsearch 官方的esrally工具
  • 数据集:pmc
  • 数据量:

    • 总文档数:14,354,975
    • 存储总量:约500GB
  • 集群规格:

    • 节点数:3
    • shard数:12
    • 副本数:0

针对不同的查询种类,分别设置一定的吞吐量进行压测,测试结果如下:

高性能云盘集群 冷热架构集群
节点配置 cpu:8
内存:32G
cpu:8
内存:32G
term查询 吞吐量(ops/s) 397.25 396.06
延迟(ms) 90%分位值 32.04 16.11
平均值 14.61 12.05
查询耗时(ms) 90%分位值 12.05 13.70
平均值 11.16 11.02
phrase查询 吞吐量(ops/s) 199.21 199.14
延迟(ms) 90%分位值 30.88 31.78
平均值 25.83 27.25
查询耗时(ms) 90%分位值 26.16 30.53
平均值 24.24 26.27
agg查询 吞吐量(ops/s) 9.98 9.98
延迟(ms) 90%分位值 425.30 462.42
平均值 388.61 428.12
查询耗时(ms) 90%分位值 424.45 461.20
平均值 387.63 426.92
scroll查询 吞吐量(pages/s) 37.64 37.65
延迟(ms) 90%分位值 396.26 350.29
平均值 375.37 340.43
查询耗时(ms) 90%分位值 394.86 348.52
平均值 373.68 338.66

结论

在集群配置相同的情况下,在进行各种查询时,冷热数据架构的耗时与高性能云盘查询耗时基本持平。其中,在term查询和scroll查询时,冷热数据架构的查询性能更高。

价格方面,冷热数据架构使用BOS作为存储介质,单价比高性能云盘存储低很多,而且是按量付费,无须提前创建存储容量。

因此,冷热数据架构可以做到更好的做到降本增效。

常见问题

  • Q:已经置为bosfs的Index还能改为其他的存储类型(如hybridfs、niofs等)吗?

    A:如果改为其他存储类型,由于数据存储目录不同,数据将失效。所以不可以改变为其他存储类型。

  • Q:对于已经存在的Index可以启用基于BOS的冷热分离结构吗?

    A:可以,操作方式如上文《对已存在的Index启用冷热数据分离架构》章节。

  • Q:已经置为Cold状态的Index还能改回普通状态吗?

    A:不可以。且Cold状态的Index是只读状态,不能再写入数据了。

  • Q:没有设置BOS信息,或BOS信息有误,可以创建bosfs的Index吗?

    A:可以创建成功,但Index不可用。更正BOS信息后,需要重新创建索引。

上一篇
基于段文件的主从复制
下一篇
快速入门