如何使用 INFINI Gateway 对比 ES 索引数据

作者:极限实验室日期:2025/10/8

上一篇我们通过 极限网关(INFINI Gateway) 进行了索引数据迁移,对索引迁移结果进行了初步且直观的校验,既对比索引的文档数是否一致。今天介绍个实实在在的数据比对方法,通过网关对比索引文档的内容在两个集群是否一致,此方法适用于 Elasticsearch、Easysearch、Opensearch。话不多说,就拿上次迁移的两个索引开整。

测试环境

软件版本
Easysearch1.12.0
Elasticsearch7.17.29
INFINI Gateway1.29.2

比对步骤

操作非常简单,拢共分两步:

  1. 准备网关配置
  2. 数据比对

比对实战

  1. 准备网关比对数据的配置

老样子去 github 拿就完了,戳这里。下载完之后,稍作修改.

修改文件开头的变量,两个 ENDPOINT 分别指向两个集群。

1  1 env:
2  2   LR_GATEWAY_HOST: 127.0.0.1:8001
3  3   LR_GATEWAY_API_HOST: 127.0.0.1:9000
4  4   ELASTICSEARCH_ENDPOINT: http://127.0.0.1:9200
5  5   ELASTICSEARCH_ENDPOINT2: http://127.0.0.1:9201
6  6   SUITES_NAME: index-docs-diff
7

修改集群资源相关的配置

1 36 elasticsearch:
2 37   - name: source
3 38     enabled: true
4 39     endpoints:
5 40       - $[[env.ELASTICSEARCH_ENDPOINT]]
6 41     basic_auth:
7 42       username: elastic
8 43       password: goodgoodstudy
9 44
10 45   - name: target
11 46     enabled: true
12 47     endpoints:
13 48       - $[[env.ELASTICSEARCH_ENDPOINT2]]
14 49     basic_auth:
15 50       username: admin
16 51       password: 14da41c79ad2d744b90c
17

pipeline 部分修改要对比的索引名称为 infinilabs 和 test1,是的一次对比两个。

1pipeline:
2  - name: index_diff_service
3    auto_start: true
4    keep_running: false
5    processor:
6    - dag:
7        mode: wait_all
8        parallel:
9          - dump_hash: #dump es1's doc
10              sort_document_fields: true
11              indices: "infinilabs,test1"
12              scroll_time: "10m"
13              elasticsearch: "source"
14#              query_string: "_id:c8es70pu46lgfdgmja9g-1646117763293610802-2"
15#              fields: "doc_hash"
16              output_queue: "source_docs"
17              batch_size: 1000
18              slice_size: 1
19#              hash_func: "xxhash64"
20          - dump_hash: #dump es2's doc
21              indices: "infinilabs,test1"
22              scroll_time: "10m"
23#              fields: "doc_hash"
24#              query_string: "_id:c8es70pu46lgfdgmja9g-1646117763293610802-2"
25              batch_size: 1000
26              slice_size: 1
27#              hash_func: "xxhash64"
28              elasticsearch: "target"
29              output_queue: "target_docs"
30
  1. 执行数据比对
1# 数据比对的配置文件名为 index-diff.yml
2./gateway-mac-arm64 -config index-diff.yml
3

比对结果显示, infinilabs 和 test1 两个索引的数据在两个集群一致。如果数据不一致会是什么情况呢?这个任务交给屏幕前的你了,有问题欢迎找我交流。

关于极限网关(INFINI Gateway)

INFINI Gateway 是一个开源的面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway,可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。

官网文档:docs.infinilabs.com/gateway
开源地址:github.com/infinilabs/…


如何使用 INFINI Gateway 对比 ES 索引数据》 是转载文章,点击查看原文


相关推荐


从0-1建设数据仓库
DashingGuy2025/10/7

基于onedata,纯个人理解,不完善的会慢慢补充 整体流程 业务调研数据调研划分数据域构建总线矩阵数仓模型设计数仓模型开发数仓模型质量保障以及运维 一、业务调研 业务调研有几个内容要做: 确定目标和范围、收集业务需求、梳理业务流程和数据流向、输出物 1.1 确定目标和范围 明确业务目标:为什么建设数仓?数仓要解决什么问题?要实现哪些业务目标?例如提升数据分析能力、提高经营效率、支持精准营销、预测风险等。 确定数仓范围:数仓要包含哪些业务领域?哪些数据需要纳入数仓?需要支持哪些业务场景?例


在高并发场景下,如何平衡QPS和TPS的监控资源消耗?
IT橘子皮2025/10/5

在高并发场景下,平衡QPS(每秒查询数)和TPS(每秒事务数)的监控资源消耗,需要从监控策略、工具选型、资源分配及优化手段等多维度进行综合设计。以下是具体方案: 一、分层监控策略 ​轻量级采样与聚合​ ​高频QPS监控​:对简单请求(如API调用)采用低精度采样(如每10秒聚合一次),通过Prometheus的rate()函数计算QPS趋势,减少实时采集压力。 ​低频TPS监控​:对复杂事务(如支付流程)采用事件驱动记录,仅记录事务开始和结束时间戳,通过日志分析或消息队列(如Kafka)


深入理解 3D 火焰着色器:从 Shadertoy 到 Three.js 的完整实现解析
excel2025/10/4

本文由 AI 生成,结合 GLSL 原理与 Three.js 实践,旨在帮助初学者逐行理解代码,而不是仅仅“照抄能跑”。我会用直观类比、数值例子、代码注释来拆解整个火焰效果。 示例地址 一、前言:从 Shadertoy 到 Three.js Shadertoy 上有很多绚丽的着色器,但它们常常让新手望而生畏:几十行数学公式,cos/sin 嵌套,光线行进(raymarching)循环一堆看不懂的变量。 其实这些代码是有逻辑脉络的: 定义相机 → 每个像素对应一条射线 沿射线逐步前进(ray


Vue3和element plus在el-table中使用el-tree-select遇到的change事件坑
fxshy2025/10/3

1. 在el-tree-select中change事件使用 如果直接传递row, 拿到的不是最新的row的数据, 使用$index结合tableData来拿row <el-table-column prop="directory" label="所属目录树"> <template #default="scope"> <el-tree-select v-model="scope.row.areaTreeNodeId" :data="dir


贪心算法 | 每周8题(一)
小邓儿◑.◑2025/10/2

目录 0.0引言 1.0贪心算法介绍 1.1什么是贪心算法 2.0例题详解(来源力扣) 2.1 柠檬水找零 2.2将数组和减半的最少操作次数 2.3 最大数 2.4 K 次取反后最大化的数组和 2.5最长递增子序列 2.6摆动序列 2.7递增的三元子序列 2.8最长连续递增序列 3.0小结 0.0引言 从本周起,小编儿将带大家一起进入算法(^▽^)的学习当中。废话不多说,咱们从贪心走起儿😄😄😄 1.0贪心算法介绍 1.1什么是贪心算法 贪心算法(


风力发电机输出功率模型综述
less is more_09302025/10/2

摘要:在设计最优系统时,准确的建模是十分重要的。影响风机性能的主要因素是风速分布、轮毂高度以及所选风力机的功率输出曲线,故在进行风机建模时必须适当考虑这些因素。本文对风机输出功率建模的各种方法进行了详细的介绍。基于风能基本方程的建模方法使用时较繁琐,而且无法正确地复现实际风机的特性。基于假定功率曲线的建模方法虽然使用较为简单,但也缺乏准确性,不过当年平均风速较高时,表现出较为满意的响应。采用风机实际功率曲线建立特征方程的建模方法,当风机功率曲线光滑时,最小二乘法和三次样条插值法均能得到准确的结果


分布式光纤声波振动与AI的深度融合:开启智慧感知新时代
无锡布里渊10/2/2025

未来,随着AI算法的持续创新、算力的提升以及多源数据融合技术的发展,分布式光纤传感与AI的结合必将在更广阔的领域绽放异彩,为构建更安全、高效、智能的未来社会贡献核心力量。人工智能(AI),特别是机器学习与深度学习算法的迅猛发展,为解决这些难题提供了强大的工具,二者的深度融合正催生着智慧感知的新范式,前景广阔,优势显著。AI通过对大量标注数据的学习,能够精准识别不同物理事件(如不同类型的入侵行为、设备异常振动、管道泄漏等)的细微模式差异,大幅提高事件分类和识别的准确率,降低误报率和漏报率。


Word和WPS文字中的题注没有更新?全选按F9刷新
揭老师高效办公9/30/2025

在Word文档和WPS文字中有多个图片或表格等对象时,一个好的习惯是给这些图片和表格添加标题并编号,这些标题不要手动编号,要使用程序自带的“题注”功能,以实现自动更新序号。如果插入、删除或调整图片、表格后,题注的编号没有更新,可全选整个文档,按F9刷新实现自动编号。


电子电气架构 --- 汽车智能座舱发展供应链痛点
汽车电子实验室9/30/2025

摘要 智能座舱作为汽车智能化核心载体,正经历从机械控制到数字生态的转型,硬件架构向多屏联动与感知融合升级,软件层面通过域控制器与操作系统实现功能整合。然而,技术跃迁带来成本激增,单车价值量从千元级跃升至万元级,迫使车企采取硬件预埋+软件订阅、供应链整合、场景化精简等策略平衡成本与体验。当前市场面临车机芯片供应单一问题,高通芯片凭借高性能占据主导地位。未来竞争焦点将从硬件参数转向体验深度,车企需在性价比与个性化体验间找到平衡,通过场景化设计满足差异化需求,以&quot;体验经济&quot;赢得市场。


Python 的内建函数
hubenchang05152025/10/9

#Python 的内建函数 此文档创建于 Python 3.13,可能未及时更新,请以 Python 官方文档 为准。 虽然称为内建函数,但部分 API 并不是函数,例如 object 是类。 函数名详情简介__import__查看导入模块abs查看计算绝对值aiter查看获取异步可迭代对象的迭代器all查看判断可迭代对象内容是否全部为真值anext查看获取异步迭代器的下一数据项any查看判断可迭代对象内容是否存在真值ascii查看转换为字符串,非 ASCII 字符将被转义bin查看将一

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0