当前位置: 首页 > news >正文

ES 数据迁移最佳实践

ES 数据迁移最佳实践与讲解

       数据迁移是 Elasticsearch 运维管理和业务需求中常见的操作之一。以下是不同数据迁移方法的最佳实践和讲解:

一、数据迁移需求梳理

二、数据迁移方法梳理

三、各方案对比

方案

优点

缺点(限制)

适用场景

是否有版本要求

开发程序

灵活,方便,可以定制。例如es的搜索快照是一个付费API,可以用程序实现同样的功能,把不需要的索引关闭掉,节省资源,减缓堆压力。等需要的时候再逐个打开,取出数据。

  1. 开发成本大
  2. 最大迁移速度,为滚动查询的速度。
  3. 跨版本开发比较麻烦。
  1. 同版本,在数据迁移过程中,需要大量的额外操作
  2. 跨集群
  3. 在业务上数据导出需求,使用滚动API。方便控制

有版本要求,通常不同版本客户端可能会不一样

dump工具

  1. 使用方便,其提供了灵活的API。
  2. 无版本要求。其使用的是rest API 滚动查询。
  3. 可以加入条件过滤数据
  1. 不算太大的缺点,只是需要安装这个工具,需要node环境,需要安一些包。
  2. 最大迁移速度,为滚动查询的速度。如果对速度有极高的要求,则不适用。
  1. 跨版本(同一个工具,可以做不同版本之间的数据迁移)
  2. 不需要额外的代码去做版本兼容

无,测过从7.x把数据迁移到8.x版本集群上。

logstash工具

  1. 在一个技术体系内。
  2. 可以在过程中做一些数据处理。这里和开发程序类似。
  3. 同时又和dump工具很像,可以做跨版本迁移。

速度相对较慢

迁移全量或增量数据,且对实时性要求不高的场景

需要对迁移的数据通过 es query 进行简单的过滤的场景

需要对迁移的数据进行复杂的过滤或处理的场景

版本跨度较大的数据迁移场景

无版本要求

快照

数据迁移速度极快。取决于磁盘的IO速度,默认下可以40M/s

  1. 只能做跨集群迁移。
  2. 只能做同版本迁移。
  3. 两个不同的集群需要有相同的快照仓库。可以使共享目录,可以是文件存储系统,前提是都能访问到。
  4. 无法通过条件过滤数据

跨集群同版本快速迁移数据。数据量大的场景(GB、TB、PB 级别)

对迁移速度要求较高的场景

有严格版本要求

文件拷贝

速度极快。甚至可以比快照更快。

  1. 存在风险,官方不建议这么操作。es的文件相对脆弱。很可能存在文件损坏的问题。导致不能恢复。
  2. 操作麻烦,需要把一个节点的数据拷贝到另外一个集群的节点上。

跨集群同版本快速迁移数据。

有严格版本要求,必须是同版本。

利用节点平衡

一种新思路,适合跨集群,跨机房,跨网络迁移。

  1. 操作相对麻烦
  2. 只能做同版本
  3. 需要两个集群网络互通

例如需要将大量的数据从一个机房迁移到另外一个机房集群上。这是一个很好的思路,在网络互通下,可以把节点先组成同一个集群,然后利用节点的平衡机制,将数据排到另外一个机房。

有严格版本要求

四、总结

存在即合理,每种迁移方式都有其适用的场景。每个方式各有所长,取决于迁移需求的具体要求。如果追求速度,推荐用快照。如果要跨版本,推荐用dump工具,或者logstash。如果要跨机房,大量数据同步,利用节点平衡机制也可以,相对简单一些。请注意,数据迁移时务必考虑版本兼容性和数据完整性,以确保成功迁移和数据安全。

相关文章:

ES 数据迁移最佳实践

ES 数据迁移最佳实践与讲解 数据迁移是 Elasticsearch 运维管理和业务需求中常见的操作之一。以下是不同数据迁移方法的最佳实践和讲解: 一、数据迁移需求梳理 二、数据迁移方法梳理 三、各方案对比 方案 优点 缺点(限制) 适用场景 是否有…...

C++中低级内存操作

C中低级内存操作 C相较于C有一个巨大的优势,那就是你不需要过多地担心内存管理。如果你使用面向对象的编程方式,你只需要确保每个独立的类都能妥善地管理自己的内存。通过构造和析构,编译器会帮助你管理内存,告诉你什么时候需要进…...

Linux硬盘大小查看命令全解析 (linux查看硬盘大小命令)

Linux操作系统是一款广泛应用于服务器和嵌入式设备的操作系统,相比于Windows等其他操作系统,Linux的优点之一就是支持强大的命令行操作。在日常操作中,了解和掌握一些简单但实用的命令可以提高工作效率。比如硬盘大小查看命令,在L…...

什么是供应链金融?

一、供应链金融产生背景 供应链金融兴起的起源来自于供应链管理一个产品生产过程分为三个阶段:原材料 - 中间产品 - 成产品。由于技术进步需求升级,生产过程从以前的企业内分工,转变为企业间分工。那么整个过程演变了如今的供应链管理流程&a…...

Qt之实现支持多选的QCombobox

一.效果 1.点击下拉列表的复选框区域 2.点击下拉列表的非复选框区域 二.实现 QHCustomComboBox.h #ifndef QHCUSTOMCOMBOBOX_H #define QHCUSTOMCOMBOBOX_H#include <QLineEdit> #include <QListWidget> #include <QCheckBox> #include <QComboBox>…...

【UI设计】Figma_“全面”快捷键

目录 1.快捷键与键位&#xff08;mac与windows&#xff09;2.基础快捷键3.操作区快捷键3.1视图3.2文字3.3选项3.4图层3.5组件 4.特殊技巧 Figma 是一个 基于浏览器 的协作式 UI 设计工具。【https://www.figma.com/】 Figma Sketch&#xff08;UI 设计&#xff09; InVision&a…...

计算机网络(谢希仁)第八版课后题答案(第一章)

1.计算机网络可以向用户提供哪些服务 连通性:计算机网络使上网用户之间可以交换信息&#xff0c;好像这些用户的计算机都可以彼此直接连通一样。 共享:指资源共享。可以是信息、软件&#xff0c;也可以是硬件共享。 2.试简述分组交换的要点 采用了存储转发技术。把报文(要发…...

argparse模块介绍

argparse是一个Python模块&#xff1a;命令行选项、参数和子命令解析器。argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义了所需的参数&#xff0c;而 argparse 将找出如何从 sys.argv &#xff08;命令行&#xff09;中解析这些参数。argparse 模块还会自动生成…...

分布式、集群、微服务

分布式是以缩短单个任务的执行时间来提升效率的&#xff1b;而集群则是通过提高单位时间内执行的任务数来提升效率。 分布式是指将不同的业务分布在不同的地方。 集群指的是将几台服务器集中在一起&#xff0c;实现同一业务。 分布式中的每一个节点&#xff0c;都可以做集群…...

Android Studio的debug和release模式及签名配置

Android Studio的两种模式及签名配置 使用Android Studio 运行我们的app&#xff0c;无非两种模式&#xff1a;debug和release模式。 https://www.cnblogs.com/details-666/p/keystore.html...

【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--笔记

0. 内容 1. 时间戳同步问题及意义 时间戳同步的原因&#xff1a;如果不同步&#xff0c;由于IMU频率高&#xff0c;可能由于时间戳不同步而导致在两帧camera之间的时间内用多了或者用少了IMU的数据&#xff0c;且时间不同步会导致我们首尾camera和IMU数据时间不同&#xff0c;…...

【Java集合类面试二十一】、请介绍TreeMap的底层原理

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;请介绍TreeMap的底层原理…...

Go语言Channel

在本教程中&#xff0c;我们将讨论Channel以及 Goroutines 如何使用Channel进行通信。 什么是Channel Channel可以被认为是 Goroutine 用来进行通信的管道。与水在管道中从一端流向另一端的方式类似&#xff0c;可以使用Channel从一端发送数据并从另一端接收数据。 声明Chan…...

java 编译 引用 jar 包进行编译和执行编译后的class文件

编译java文件 javac -encoding UTF-8 -Djava.ext.dirs./ -d . ./FtpTest.java 执行编译class文件 java -Djava.ext.dirs./ com.util.FtpTest com.util为包路径...

Linux系统之部署Tale个人博客系统

Linux系统之部署Tale个人博客系统 一、Tale介绍1.1 Tale简介1.2 Tale特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、部署Tale个人博客系统4.1 下载Tale源码4.2 查看Tale源码目录4.3 查看安装脚本内…...

【跟小嘉学 Rust 编程】三十三、Rust的Web开发框架之一: Actix-Web的基础

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

算法通关村|黄金挑战|K个一组进行反转

K个一组进行反转 1.头插法 public ListNode reverseKGroup(ListNode head, int k) {ListNode dummyNode new ListNode(0);dummyNode.next head;ListNode cur head;// 计算链表长度int len 0;while (cur ! null) {len;cur cur.next;}// 计算有几组int n len / k;ListNod…...

【Android Studio】工程中文件Annotate with Git Blame 不能点击

问题描述 工程文件中想要查看代码提交信息但是相关按钮不可点击 解决方法 Android Studio -> Preferences -> Version Control-> 在Unregistered roots里找到你想要的工程文件 点击左上角➕号 然后右下角Apply即可...

Ant Design Vue

2222222222222...

ATA-P2010压电叠堆功率放大器-直流偏置对压电叠堆测试的重要性

随着科技的发展和应用领域的扩展&#xff0c;压电技术在许多领域中得到了广泛的应用。在压电器件的研究和开发过程中&#xff0c;压电叠堆测试是非常重要的一环。本文通过对功率放大器的直流偏置功能在压电叠堆测试中的应用进行了深入研究&#xff0c;探讨了功率放大器直流偏置…...

基于imfindcircles函数的圆形检测实战:从原理到MATLAB实现

1. 霍夫变换与圆形检测原理 第一次接触圆形检测时&#xff0c;我也被各种数学公式绕得头晕。直到把霍夫变换想象成"投票游戏"&#xff0c;才真正理解它的精妙之处。想象一张布满黑白点的图纸&#xff0c;每个黑点都可能属于某个潜在的圆。霍夫变换就像让每个黑点为所…...

staticFunctional:嵌入式零堆内存的std::function替代方案

1. staticFunctional&#xff1a;嵌入式系统中零动态内存开销的 std::function 替代方案1.1 设计动因与工程痛点在资源受限的嵌入式系统&#xff08;如 ARM Cortex-M0/M4、AVR、ESP32、Teensy 系列&#xff09;中&#xff0c;std::function的标准实现存在根本性兼容障碍。其典型…...

PX4飞控开发实战指南:从环境搭建到自主飞行

PX4飞控开发实战指南&#xff1a;从环境搭建到自主飞行 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 一、认知铺垫&#xff1a;无人机大脑如何工作&#xff1f; 你是否好奇无人机如何在空中保持…...

从Kinect到奥比中光:为什么我的深度学习项目选了Gemini 2L?附Python SDK踩坑实录

从Kinect到奥比中光&#xff1a;为什么我的深度学习项目选了Gemini 2L&#xff1f;附Python SDK踩坑实录 深度视觉技术正在重塑人机交互的边界。当我的团队启动一个需要实时三维重建的农业机器人项目时&#xff0c;我们面临着一个关键抉择&#xff1a;在众多深度相机品牌中&…...

物联网水产养殖监控系统:智能联动,实现养殖设备自动调控

一、应用背景 水产养殖是我国农业经济的重要组成部分&#xff0c;传统养殖模式长期依赖人工巡检、经验判断&#xff0c;存在诸多难以破解的行业痛点&#xff0c;严重制约养殖效益与产业可持续发展。随着物联网、大数据、边缘计算、无线通信技术的成熟&#xff0c;搭建智能化、数…...

LuckyLilliaBot:NTQQ的终极OneBot协议插件完整指南

LuckyLilliaBot&#xff1a;NTQQ的终极OneBot协议插件完整指南 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot LuckyLilliaBot是一个基于TypeScript开发的NTQQ插件&#xff0c;为QQ客户端提供完整的…...

游戏原画效率提升50%:Pixel Fashion Atelier在角色装备概念图批量生成中的应用

游戏原画效率提升50%&#xff1a;Pixel Fashion Atelier在角色装备概念图批量生成中的应用 1. 传统游戏原画设计的痛点 游戏开发过程中&#xff0c;角色装备设计往往是最耗时的环节之一。传统工作流程中&#xff0c;美术团队需要&#xff1a; 手工绘制数十种装备变体反复修改…...

从游戏报错到完美运行 DirectX修复工具实际应用案例展示

评价一款工具软件的优劣&#xff0c;最具有说服力的方式莫过于通过真实的实际案例来直观展示其效果和价值。 对于系统修复类工具来说&#xff0c;更是如此&#xff0c;因为用户最关心的就是它能否真正解决自己的问题。 DirectX相关问题一直是Windows游戏玩家最常遇到的技术难题…...

AI原生推荐:如何实现端到端的训练?

AI原生推荐&#xff1a;如何实现端到端的训练&#xff1f;关键词&#xff1a;AI原生推荐、端到端训练、深度学习推荐系统、推荐模型架构、多模态融合摘要&#xff1a;本文将从“AI原生推荐”的核心需求出发&#xff0c;用“快递物流”“餐厅点菜”等生活化类比&#xff0c;逐步…...

SpringBoot WebSocket 客户端断线重连:从心跳检测到优雅恢复

1. WebSocket与实时通信的挑战 想象一下你正在玩一款多人在线游戏&#xff0c;突然网络卡顿导致角色掉线&#xff0c;重新登录后发现之前的战斗进度全部丢失——这种糟糕体验正是WebSocket重连机制要解决的问题。WebSocket作为HTTP的"升级版"&#xff0c;确实解决了服…...