用 Easysearch 帮助大型车企降本增效

最近某头部汽车集团需要针对当前 ES 集群进行优化,背景如下:
ES 用于支撑包括核心营销系统、管理支持系统、财务类、IT 基础设施类、研发、自动驾驶等多个重要应用,合计超 50 余套集群,累计数据超 1.5PB 。
本文针对其中一个 ES 集群进行分享,该集群原本使用的是 ES 7.3.2 免费版,数据已经 130TB 了,14 个节点。写入数据时经常掉节点,写入性能也不稳定,当天的数据写不完。迫切需要新的解决方案。
分析业务场景后总结需求要点:主要是写,很少查。审计需求,数据需要长期保存。
这个需求比较普遍,处理起来也很简单:

  • 使用 Easysearch 软件,只需少量节点存储近两天的数据。
  • 索引设置开启 ZSTD 压缩功能,节省磁盘空间。
  • 每天索引数据写完后,第二天执行快照备份存放到 S3 存储。
  • 备份成功后,删除索引释放磁盘空间。
  • 需要搜索数据时,直接从快照搜索。


将近期的数据,存放到本地磁盘,保障写入速度。写入完毕的索引,在执行快照备份后,可删除索引,释放本地磁盘空间。

Easysearch 配置要点

path.repo: ["/S3-path"]
node.roles: ["data","search"]
node.search.cache.size: 500mb
  • path.repo : 指定 S3 存储路径,上传快照用。
  • node.roles : 只有 search 角色的节点,才能去搜索快照中的数据。
  • node.search.cache.size : 执行快照搜索时的,缓存大小。

更多信息请参考官方文档。

旧数据迁移

通过 console 将原 ES 集群的数据,迁移到新 Easysearch 集群。迁移时,复制 mapping 和 setting,并在 setting 中添加如下设置。

"codec": "ZSTD",
"source_reuse": true,


 


原索引数据量大,可拆分成多个小任务。
 


迁移完,索引存储空间一般节省 50% 左右。
原索引 279GB ,迁移完后 138GB。

搜索快照数据

挂载快照后,搜索快照里的索引和搜索本地的索引,语法完全一样。
 


如何判断一个索引是在快照还是本地磁盘呢?可以查看索引设置里的 settings.index.store.type
 


如果是 remote_snapshot ,说明是快照中的数据。如果是空值,则是集群本地的数据。
这次迁移,节省了 6 台主机资源。更重要的是,用上对象存储后,主机磁盘空间压力骤减。

关于 Easysearch

about easysearch

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。

官网文档:INFINI Easysearch | INFINI Labs

下载地址:下载 | INFINI Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

升级 FATFS 笔记

最近有朋友希望 AWTK demo 中的 FATFS 能升级到最新版本,在升级的过程中遇到一些小问题,这里做个记录。 1. 升级 FATFS 从官网下载最新代码。更新下面的文件到AWTK项目中: ff.cff.hffsystem.cffunicode.c 下面的文件不需要更新&#xff1…

Compose | UI组件(十二) | Lazy Layout - 列表

文章目录 前言LazyListScope作用域 用来干什么?LazyColumn组件含义?LazyColumn的基本使用LazyColumn Padding设置边距LazyColumn 设置边距 (contentPadding)LazyColumn 为每个子项设置边距 (Arrangement.spacedBy())LazyColumn 根据 rememberLazyListSta…

React从 EMAScript5编程规范到 EMAScript6编程规范过程中的几点改变

在从ECMAScript 5 (ES5)编程规范转换到ECMAScript 6 (ES6)编程规范的过程中,有几个主要的改变: 块级作用域:ES6引入了let和const关键字,允许在块级作用域中声明变量。在ES5中,变量的作用域仅限于函数内部。 箭头函数&…

a-upload——实现上传功能——基础积累

最近在写后台管理系统&#xff0c;遇到了上传功能&#xff0c;之前写过很多次&#xff0c;再次记录一下&#xff1a; <a-upload:file-list"fileList":remove"handleRemove":before-upload"beforeUpload":customRequest"customRequest&qu…

计算机毕业设计 | SSM 旅游网站后台管理系统(附源码)

1&#xff0c;概述 1.1 背景分析 随着人们生活水平的提高和对休闲旅游的日益重视&#xff0c;旅游业已成为全球最大的经济产业之一。越来越多的人选择通过在线方式进行旅行预订&#xff0c;这种趋势为旅游网站提供了巨大的商机。用户体验是决定旅游网站成功与否的关键因素。良…

Flutter 仿抖音 TikTok 上下滑动 播放视频

Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架&#xff0c;视频播放使用 video_player github&#xff1a;GitHub - PangHaHa12138/TiktokVideo: Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架 实现功能&#xff1a; 1.上下滑动自动播放切换视频&#xff0c;loading 封面…

bash脚本学习笔记

一、扫盲 脚本文件是一种文本文件&#xff0c;其中包含了一系列的命令和指令&#xff0c;可以被操作系统解释器直接解释执行。脚本文件通常被用来完成特定的任务或执行重复性的操作。 脚本文件通常以某种编程语言的语法编写&#xff0c;例如 Bash、Python、Perl、Ruby 等等。…

二叉树的层平均值

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[3.00000,14.50000,11.00000] 解释&#xff1a;第 0 层的平均值为 …

微服务架构风格

1 引言 微服务是一种架构风格&#xff0c;它将应用构建位为一个小型自治服务的集合&#xff0c;以业务领域为模型。通俗地说&#xff0c;就像蜜蜂通过对蜡制的等边六边形单元来构建它们的蜂巢。它们最初从使用材料的小单元开始&#xff0c;一点点的搭建出一个大型蜂巢。这些小单…

【OpenCV学习笔记27】- OpenCV 中的直方图 - 直方图 - 1:查找,绘图,分析

这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子&#xff0c;也会给出自己根据官方的例子完成的更改代码&#xff0c;同样彩蛋的实现也会结合多个知识点一起实现一些小功能&#xff0c;来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔…

1895_分离进程的能力

1895_分离进程的能力 全部学习汇总&#xff1a; g_unix: UNIX系统学习笔记 (gitee.com) 有些理念可能在控制类的嵌入式系统中不好实施&#xff0c;尤其是没有unix这样的系统搭载的情况下。如果是考虑在RTOS的基础上看是否有一些理念可以做尝试&#xff0c;我觉得还是可以有一定…

快速傅里叶变换 算法与实现

强烈推荐李家同教授 Communications engineering essentials for computer scientists and electrical engineers 一书 该部分关于离散傅里叶变换的讲解是我目前见过最好的 讲得十分清楚&#xff0c;严谨又不过分深入 直觉和物理动机也很明确 对于工程应用完全足够 书籍下载地…

npm 淘宝镜像正式到期,更新使用成功

npm 淘宝镜像原网址&#xff1a;https://registry.npm.taobao.org/ npm 淘宝镜像更新后网址&#xff1a;https://registry.npmmirror.com 过程&#xff1a; 部署 nuxt docker 容器的时候&#xff0c;报以下错&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CE…

跟着pink老师前端入门教程-day17

2、CSS3 动画 动画&#xff08;animation&#xff09;是CSS3中就要有颠覆性的特征之一&#xff0c;可通过设置多个节点来精确控制一个或一组动画&#xff0c;常用来实现复杂的动画效果 相比较过渡&#xff0c;动画可以实现更多变化&#xff0c;更多控制&#xff0c;连续自动播…

【Simulink系列】——动态系统仿真 之 简单系统

引入 不同的系统具有不同的输入与输出。一般来说&#xff0c;输入输出数目越多&#xff0c;系统越复杂。最简单的系统只要一个输入一个输出&#xff08;SISO&#xff09;&#xff0c;且其任意时刻的输出只与当前时刻的输入有关。 一、简单系统定义 对于满足下列条件的系统&a…

重新配置vue项目时出现的:连接已断开问题

在新机器上配置完node.js、vue-cli&#xff0c;配置了node_modules后&#xff0c;命令行运行vue ui后&#xff0c;出现了如下报错&#xff1a; C:\Users\LEN>vue ui &#x1f680; Starting GUI... &#x1f320; Ready on http://localhost:8000 node:events:496throw e…

揭秘店铺详情API接口:提升顾客信任与购物体验的利器

在电商领域&#xff0c;了解店铺的详细信息对于提升顾客的信任和忠诚度至关重要。为了帮助开发者获取和管理特定店铺的信息&#xff0c;电商平台通常提供店铺详情API接口。本文将指导你如何使用这个API接口来获取店铺的名称、描述、地址、评分等详细信息&#xff0c;并将这些信…

通过 ChatGPT 的 Function Call 查询数据库

用 Function Calling 的方式实现手机流量包智能客服的例子。 def get_sql_completion(messages, model"gpt-3.5-turbo"):response client.chat.completions.create(modelmodel,messagesmessages,temperature0,tools[{ # 摘自 OpenAI 官方示例 https://github.com/…

未定义基类问题解决

基类A, 子类B 原因 出现了超前部署&#xff0c;循环依赖&#xff0c;即A.h中包含了B.h &#xff0c;B.h中包含了A.h从而出现错误。 解决 将基类中的包含头文件#include"B.h"删除即可

想打游戏 可是windows一直出问题 应该如何解决呢 我来告诉你

如何你想让系统一直不出问题 你需要按照我的方法: 1 用 users 用户组用户 不登陆管理员账户 特别不登陆windows默认创建的那个用户 安装软件时 输密码安装 2 不安装国产软件 和 杀毒软件 3 使用firefox这个浏览器 或 google浏览器&#xff08;但gogole不保证安全&…