輕松遷移 Elasticsearch 數據:如何將自建索引導出并導入到另一個實例

概述

在日常的 Elasticsearch 運維和數據管理中,數據遷移是一個常見的需求。無論是為了備份、升級,還是將數據從一個集群遷移到另一個集群,導出和導入索引數據都是至關重要的操作。本文將詳細介紹如何將自建 Elasticsearch 實例中的索引數據導出,并導入到另一實例的相同索引下。通過使用 elasticdump 工具,可以高效、準確地完成這一過程,實現數據的無縫遷移。

本文將詳細介紹如何使用 elasticsearch-dump 工具進行 Elasticsearch 數據的導出和導入。

目錄

1、什么是 elasticsearch-dump?

2、 安裝 elasticsearch-dump

3、導出與導入Elasticsearch 數據

3.1 導出本地

3.1.1 導出索引數據

3.1.2 導出索引映射

3.2 導入實例

3.2.1?導入索引映射

?3.2.2?導入索引數據

3.3?從源集群導出數據到目標集群

4、驗證數據導入

5、總結


1、什么是 elasticsearch-dump?

?elasticsearch-dump 是一個基于 Node.js 的命令行工具,專門用于導出和導入 Elasticsearch 數據。它支持將索引、映射、數據等從 Elasticsearch 導出為 JSON 文件,并且可以將這些 JSON 文件導入到另一個 Elasticsearch 實例中。適用于小到中規模的數據遷移,支持簡單的導出和導入操作,適合快速遷移。

2、 安裝 elasticsearch-dump

在使用 elasticsearch-dump 之前,我們需要先安裝它。可以通過 npm(Node.js 的包管理器)來安裝 elasticsearch-dump

npm install elasticdump -g

說明:默認下載走的npm官方源,安裝較慢,這里設置成淘寶源進行下載,這樣可以大幅提高安裝包的速度,尤其是在中國大陸。

# 設置淘寶源
npm config set registry https://registry.npmmirror.com
# 確認當前使用的 npm 源
npm config get registry## 如果返回的結果是 https://registry.npmmirror.com,說明已經成功切換到淘寶源。

如安裝過程中報如下異常

npm ERR! Linux 3.10.0-1160.76.1.el7.x86_64
npm ERR! argv "/usr/local/node/bin/node" "/usr/local/node/bin/npm" "install" "elasticdump" "-g"
npm ERR! node v6.10.2
npm ERR! npm  v3.10.10npm ERR! Unsupported URL Type: npm:@search-dump/jsonstream@^1.4.0
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>npm ERR! Please include the following file with any support request:
npm ERR!     /root/npm-debug.log  報錯、

這個錯誤通常是由于你的 Node.js 和 npm 版本過低,導致它無法識別新的包的安裝方式(例如:npm:@search-dump/jsonstream@^1.4.0)。解決這個問題的辦法是升級 Node.js 和 npm

要解決這個問題,需要更新 Node.js 至至少 v10 版本,建議安裝最新的穩定版 Node.js

解決步驟:

升級 Node.js 和 npm

這里我的 Node.js 版本是 v6.10.2,而 npm 版本是 v3.10.10,這兩個版本都相對較舊。可以通過參考文章?nodejs 安裝

確認 Node.js 和 npm 是否已成功更新

node -v  # 應該返回最新的 Node.js 版本
npm -v   # 應該返回最新的 npm 版本

安裝完成后,可以通過以下命令檢查是否安裝成功:

elasticdump --help

如果看到幫助信息,說明安裝成功。

3、導出與導入Elasticsearch 數據

假設我們有一個 Elasticsearch 實例運行在 http://source_elasticsearch:9200,并且有一個名為 your_index_name 的索引,我們希望將這個索引導出到一個 JSON 文件中。

3.1 導出本地

3.1.1 導出索引數據

?使用以下命令將?your_index_name索引的數據導出到?my_index_data.json?文件中:

elasticdump \--input=http://username:password@source_elasticsearch:9200/your_index_name \--output=your_index_data.json \--type=data

3.1.2 導出索引映射

除了數據,我們還需要導出索引的映射(mapping),以確保在導入時能夠保持相同的結構。使用以下命令將 your_index_name 的映射導出到 your_index_mapping.json 文件中:

elasticdump \--input=http://username:password@source_elasticsearch:9200/your_index_name \--output=your_index_mapping.json \--type=mapping

3.2 導入實例

現在我們已經將索引的數據和映射導出為 JSON 文件,接下來我們將這些數據導入到另一個 Elasticsearch 實例中。假設新的 Elasticsearch 實例運行在 http://target_elasticsearch:9200

3.2.1?導入索引映射

首先,我們需要導入索引的映射。使用以下命令將 your_index_mapping.json 文件中的映射導入到新的 Elasticsearch 實例中:

elasticdump \--input=your_index_mapping.json \--output=http://username:password@target_elasticsearch:9200/your_index_name \--type=mapping

?3.2.2?導入索引數據

接下來,我們將?your_index_data.json?文件中的數據導入到新的 Elasticsearch 實例中:

elasticdump \--input=your_index_data.json \--output=http://username:password@target_elasticsearch:9200/your_index_name \--type=data

3.3?從源集群導出數據到目標集群

將數據從本地文件導入到目標 Elasticsearch 中的相同索引。

確保在運行 elasticdump 時提供了正確的 Elasticsearch 實例地址,并且該地址是有效的。假設在從源集群導出數據到目標集群,確保命令格式正確,類似如下:

elasticdump \--input=http://username:password@source_elasticsearch:9200/your_index_name \--output=http://username:password@target_elasticsearch:9200/your_index_name \--type=data

在使用 elasticdump 進行數據導入導出時,如果?Elasticsearch 實例啟用了基本認證(需要用戶名和密碼),如上方式指定。這里,username password 應該替換為實際的 Elasticsearch 賬號和密碼。

確保以下幾點:

  • http://source_elasticsearch:9200 http://target_elasticsearch:9200 這兩個地址正確,且可以訪問。
  • your_index_name 是實際存在的索引名稱。

將數據從本地文件導入到目標 Elasticsearch 中的相同索引。

4、驗證數據導入

導入完成后,我們可以通過以下命令驗證數據是否成功導入:

curl -X GET -u username:password "http://target_elasticsearch:9200/your_index_name/_search?pretty"

如果返回的結果與原始索引中的數據一致,說明數據遷移成功。

5、總結

通過 elasticsearch-dump 工具,我們可以輕松地將 Elasticsearch 索引從一個實例導出并導入到另一個實例。無論是數據遷移、備份還是環境同步,elasticsearch-dump 都是一個非常實用的工具。希望本文能夠幫助大家順利完成 Elasticsearch 數據的遷移工作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73201.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73201.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73201.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM 類加載器之間的層次關系,以及類加載的委托機制

JVM 類加載器之間存在一種層次關系&#xff0c;通常被稱為雙親委派模型 (Parent Delegation Model)。這種層次關系和委托機制是 Java 類加載機制的核心&#xff0c;對于保證 Java 程序的安全性和避免類沖突至關重要。 1. 類加載器的層次關系: JVM 中的類加載器&#xff08;Cl…

基于 Vue 3 的PDF和Excel導出

以下是基于 Vue 3 Composition API 的完整實現&#xff0c;包括 PDF 和 Excel 導出。 一、PDF 導出 (Vue 3) 安裝依賴 在項目中安裝相關庫&#xff1a; npm install html2canvas jspdf Vue 3 代碼實現 <template><div><div ref"pdfContent" cla…

【Jupyter】notebook無法顯示tqdm進度條

錯誤描述 from tqdm.notebook import tqdm 用的時候報錯&#xff1a; Error displaying widget解決方式 # 先裝nodejs conda install -c conda-forge nodejs20# 重裝ipywidgets pip uninstall ipywidgets pip install ipywidgets jupyter labextension install jupyter-wid…

ubuntu20如何升級nginx到最新版本(其它版本大概率也可以)

前言&#xff1a; Nginx非常常用&#xff0c;所以在網絡安全方面備受“關注”。其漏洞非常多&#xff0c;要經常保持軟件更新版本才能更好的保證安全。但是Ubuntu官網適配nginx非常慢&#xff0c;所以nginx官方也會推出針對主流Linux操作系統的包管理工具安裝方式。 步驟&…

word插入Mathtype公式居中和自動更新

word插入公式自動更新 前提&#xff1a;安裝Mathtype 1.word中查看頁的寬度 出現如下 2.設置樣式 出現這個窗口 給樣式隨便起個名字 3.修改樣式 3.1 設置兩個制表位 第二個 3.2 修改公式字體 如下所示 4. 修改公式格式 4.1在word中打開 Mathtype 4.2 修改公式的格式 變成…

如何從后端實現頁面跳轉?

例&#xff1a;請求轉發 例&#xff1a;重定向 例&#xff1a;區別&#xff1a;攜帶參數的后端跳轉 例&#xff1a;是否可以訪問外部資源 請求轉發&#xff1a;客戶端發起一個請求到服務端&#xff0c;服務端把這個請求轉發至其他地方 重定向&#xff1a;客戶端發起一個請求…

APIJSON快速入門

作者 版本 時間 內容 備注 Allen V1.0.0 2021/08/19 初稿完成 AllenV1.0.1 2021/08/22 添加常見問題 1.流程說明 一個接口的開發,比如Java用SpringBoot,Mybatis來開發一般來說就像下面這個流程 部署上這個項目后,流程變成了這樣 如果使用 apijson-framework,還可進一步簡化…

STM32八股【3】------RAM和片上FLASH

1、RAM和FLASH構成 1.RAM ┌──────────────────────────┐ │ 棧區 (Stack) │ ← 從RAM頂端向下擴展&#xff08;存儲局部變量、函數調用信息&#xff09; │--------------------------│ │ 堆區 (Heap) │ ← …

基于springboot的星之語明星周邊產品銷售網站(050)

摘要 隨著信息互聯網信息的飛速發展&#xff0c;無紙化作業變成了一種趨勢&#xff0c;針對這個問題開發一個專門適應洗衣店業務新的交流形式的網站。本文介紹了星之語明星周邊產品銷售網站的開發全過程。通過分析企業對于星之語明星周邊產品銷售網站的需求&#xff0c;創建了一…

Android Launcher3 HotSeat文件夾創建禁止方案全解析

一、技術背景與實現原理 在Android 13 Launcher3定制開發中&#xff0c;需屏蔽HotSeat區域的文件夾創建功能。該功能涉及的核心事件處理流程如下&#xff1a; 復制 [拖拽事件] -> [Workspace.onDrop()] -> [CellLayout.performReorder()]└─> [createUserFolderIf…

從零到一開發一款 DeepSeek 聊天機器人

AI聊天機器人 目標設計方案系統架構技術選型功能模塊 實現代碼環境配置安裝依賴 核心代碼API 請求函數主循環函數 功能擴展1. 情感分析2. 多語言支持3. 上下文記憶4. 用戶身份識別 總結附錄 目標 開發一個智能聊天機器人&#xff0c;旨在為用戶提供自然、流暢的對話體驗。通過…

OpenCV-Contrib常用擴展模塊

?一、高頻使用模塊? ?aruco 模塊? ?功能?&#xff1a;用于生成與檢測二維碼&#xff08;如 ArUco Marker、AprilTag&#xff09;&#xff0c;支持增強現實&#xff08;AR&#xff09;中的物體定位與姿態估計?。?典型應用?&#xff1a;AR 應用中的場景錨定、機器人導航…

pfsense部署三(snort各版塊使用)

在上篇文章上我們已經進行了snort的基礎配置了&#xff0c;接下來需要進行snort的具體配置&#xff0c;其中包括各板塊的設置&#xff0c;例&#xff1a;白名單&#xff0c;警報&#xff0c;規則設置等 規則庫配置 點擊 service > snort > Global Settings ,在code值…

汽車制造MES

一、整體生產工序 整車的車間主要分為4個部分&#xff1a;沖壓、焊裝、涂裝、總裝、整車入庫 系統架構 二、車間概括 1.沖壓車間 2.焊裝車間 3.涂裝車間 4.總裝車間 1.整車裝配的部件都要可追溯、數據實時性要求高、涉及分裝與總裝的協調、物流配送的協調、質量批處理的協調、…

python接口自動化pytest+request+allure

自己自學接口自動化過程遇到的問題及解決方法記錄 首先是一個簡單的請求 import requests#這是一個簡單是get請求 def test_get():geturl https://so.csdn.net/api/v1/relevant-search?querypycharm%E5%AE%89%E8%A3%85requests%E5%BA%93&platformpcgetr requests.get(…

CompletableFuture的使用

CompletableFuture 是 Java 8 引入的異步編程工具&#xff0c;通過鏈式調用和非阻塞操作簡化多線程任務編排。 創建異步任務 1.帶返回值的任務 CompletableFuture<String> future CompletableFuture.supplyAsync(() -> "Hello");2. ?無返回值的任務 使…

GLB文件介紹

GLB文件是由支持glTF&#xff08;GL Transmission Format&#xff09;標準的軟件或工具生成的。glTF是一種開放的3D模型傳輸格式&#xff0c;而GLB是其二進制版本&#xff0c;通常用于嵌入紋理和模型數據。以下是常見的生成GLB文件的軟件和工具&#xff1a; 1. 3D建模軟件 ? …

計算機網絡的分類及其性能指標

一. 計算機網絡的分類 1. 按分布范圍分類 廣域網&#xff08;WAN&#xff09; 也稱遠程網。廣域網提供長距離通信&#xff0c;通常是幾十千米到幾千千米的區域&#xff0c;比如跨國通信。連接廣域網的各結點交換機的鏈路一般是高速鏈路&#xff0c;具有較大的通信容量城域網&…

gralloc usage flags

下面這些示例主要說明了 gralloc usage flags 在圖像處理和多媒體應用中如何影響性能和正確性。讓我們逐個詳細分析每個問題的 根因 和 修復方案&#xff0c;并深入解析 gralloc 標志對 緩存管理 和 數據流 的影響。 ? Example 1: 長曝光快照耗時異常 &#x1f4cc; 問題描述…

關于kafka的一些知識總結

Kafka 1. 基本知識 1.1 前置知識 topic表示一個類型/業務的數據的組為方便擴展&#xff0c;提高吞吐率&#xff0c;一個topic分為多個partition。配合分區的設計&#xff0c;提出消費者組的概念&#xff0c;每個消費者并行消費&#xff0c;同時&#xff0c;一個分區的數據&a…