如何用 OceanBase 的 LOAD DATA 旁路導入進行大表遷移

前言

在日常工作中,我們時常會遇到需要將某個大數據量的單表進行遷移的情況。在MySQL中,針對這樣的大表,我們通常會選擇先將原表導出為csv格式,然后利用LOAD DATA語法來導入csv文件,這種方法相較于mysqldump在效率上有一定的提升。OceanBase針對此類需求引入了一項新功能——旁路導入。最新版本的OBdumper/OBloader工具已經能夠支持旁路導入。本文將對LOAD DATA旁路導入進行解讀。

體驗版本

OceanBase 4.2.1.8 MySQL租戶

導入前準備

配置 secure_file_priv

該參數用于控制導入或導出到文件時可以訪問的路徑,MySQL也有此參數,并且MySQL需要通過配置文件修改該參數并且重啟生效,OB中可以通過命令行修改,無需重啟。需要通過本地 Unix Socket 連接本地 OBServer 節點的 Unix Socket 文件路徑,位于本地 ObServer 安裝目錄下的run/sql.sock,默認 Unix Socket 文件路徑為 /home/admin/oceanbase/run/sql.sock

[root@observer062 csv]# obclient -S /home/admin/oceanbase/run/sql.sock -uroot@obmysql -p'aaAA11__'
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221882263
Server version: OceanBase 4.2.1.8 (r108000052024072217-77f9516419866bc291fc79b950b0865f2f4194e0) (Built Jul 22 2024 17:41:00)Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.obclient [(none)]>
obclient [(none)]>
obclient [(none)]> SET GLOBAL secure_file_priv = "/backup/csv";
Query OK, 0 rows affected (0.190 sec)obclient [(none)]>
obclient [(none)]>

配置 secure_file_priv 目錄屬組

需要配置 ?secure_file_priv 目錄屬組,否則導入導出操作會報權限錯誤

[root@observer062 backup]# chown -R admin.admin csv
[root@observer062 backup]#
注意

具體使用事項參考官網說明

1731939983

LOAD DATA 旁路導入

旁路導入

旁路導入指的是導入數據時跳過數據庫的SQL引擎,直接向數據文件中寫入文件,由于減少了SQL引擎解析的時間,大大提高了導入效率。OB V4 的版本在語法上已經支持旁路導入,MySQL的 LOAD DATA 語法不支持 旁路導入,PG的旁路導入需要借助?pg_bulkload工具

官方參數解釋

參數描述
direct表示走旁路導入。
need_sort表示是否需要 OceanBase 數據庫對數據進行排序。
值為?bool?類型:
max_error表示最大的容忍的錯誤的行數。值為?INT類型,超過這個數值LOAD DATA?會報失敗。
parallel(N)加載數據的并行度,必填項,取值是大于 1 的整數。

具體使用方法可以參考官網說明

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507601

MySQL導入效率

在MySQL5.7中,導入 48021216 數據量的CSV文件,耗時6 min 3.57 sec

mysql> LOAD DATA  INFILE '/home/csv/bmsql_order_line.csv' INTO TABLE bmsql_order_line FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Query OK, 48021216 rows affected (6 min 3.57 sec)
Records: 48021216  Deleted: 0  Skipped: 0  Warnings: 0
OB旁路導入效率

使用OB導入的利器(旁路導入)加上并行導入, 導入相同數據量的CSV文件,耗時 1 min 46.812 sec。極大的提高導入效率

obclient [test]> LOAD DATA /*+direct(true,1024)  parallel(32) */ INFILE '/backup/csv/bmsql_order_line.csv' INTO TABLE bmsql_order_line FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Query OK, 48021216 rows affected (1 min 46.812 sec)
Records: 48021216  Deleted: 0  Skipped: 0  Warnings: 0obclient [test]>

總結

1.旁路導入時需要設置 secure_file_priv 參數,并且要注意路徑以及文件的權限

2.對于數據量較大的單表遷移,建議使用OB旁路導入功能提升導入效率

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

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

相關文章

VR 互動實訓的顯著優勢?

(一)沉浸式學習,提升培訓效果? 在 VR 互動實訓中,員工不再是被動的知識接受者,而是主動的參與者。以銷售培訓為例,員工戴上 VR 設備,就能置身于逼真的銷售場景中,與虛擬客戶進行面對…

OpenCV 第6課 圖像處理之幾何變換(重映射)

1. 概述 簡單來說,重映射就是把一副圖像內的像素點按照規則映射到到另外一幅圖像內的對應位置上去,形成一張新的圖像。 因為原圖像與目標圖像的像素坐標不是一一對應的。一般情況下,我們通過重映射來表達每個像素的位置(x,y),像這樣: g(x,y)=f(h(x,y)) 在這里g()是目標圖…

Java虛擬機 - 程序計數器和虛擬機棧

運行時數據結構 Java運行時數據區程序計數器為什么需要程序計數器執行流程虛擬機棧虛擬機棧作用虛擬機棧核心結構運行機制 Java運行時數據區 首先介紹Java運行時數據之前,我們要了解,對于計算機來說,內存是非常重要的資源,因為內…

MySQL數據庫——支持遠程IP訪問的設置方法總結

【系列專欄】:博主結合工作實踐輸出的,解決實際問題的專欄,朋友們看過來! 《項目案例分享》 《極客DIY開源分享》 《嵌入式通用開發實戰》 《C語言開發基礎總結》 《從0到1學習嵌入式Linux開發》 《QT開發實戰》 《Android開發實…

CSS- 4.6 radiu、shadow、animation動畫

本系列可作為前端學習系列的筆記,代碼的運行環境是在HBuilder中,小編會將代碼復制下來,大家復制下來就可以練習了,方便大家學習。 HTML系列文章 已經收錄在前端專欄,有需要的寶寶們可以點擊前端專欄查看! 點…

排序算法之基礎排序:冒泡,選擇,插入排序詳解

排序算法之基礎排序:冒泡、選擇、插入排序詳解 前言一、冒泡排序(Bubble Sort)1.1 算法原理1.2 代碼實現(Python)1.3 性能分析 二、選擇排序(Selection Sort)2.1 算法原理2.2 代碼實現&#xff…

第十節第一部分:常見的API:Math、System、Runtime

Math類介紹及常用方法(了解知道即可) System類介紹及常用方法(了解知道即可) Runtime類介紹及常用方法(了解知道即可) 代碼: 代碼一:Math類 package com.itheima.d14_math;public …

智能體間協作的“巴別塔困境“如何破解?解讀Agent通信4大協議:MCP/ACP/A2A/ANP

AI 智能體的興起觸發了AI應用協作的新領域。這些智能體不再局限于被動的聊天機器人或獨立的系統,它們現在被設計用于推理、計劃和協作ーー跨任務、跨域甚至跨組織。但隨著這一愿景成為現實,一個挑戰很快浮出水面: 智能體如何以一種安全、可伸…

項目進度延誤,如何按時交付?

項目進度延誤可以通過加強計劃管理、優化資源分配、強化團隊溝通、設置關鍵里程碑和風險管理機制等方式來實現按時交付。加強計劃管理、優化資源分配、強化團隊溝通、設置關鍵里程碑、風險管理機制。其中,加強計劃管理尤為關鍵,因為明確而詳細的計劃能提…

詳解ip地址、子網掩碼、網關、廣播地址

1. IP 地址 定義:IP 地址是網絡設備在網絡中的唯一標識,用于標識設備的網絡位置,類似于現實中的門牌號。它分為 IPv4(如 192.168.1.5)和 IPv6(如 240e:305:3685:8100:a00:27ff:fefb:56b8)。 示…

為 Windows 和 Ubuntu 中設定代理服務器的詳細方法

有時下載大模型總是下載不出來,要配置代理才行 一、Windows代理設置 ① 系統全局代理設置 打開【設置】→【網絡和Internet】→【代理】。 在【手動設置代理】下,打開開關,輸入: 地址:10.10.10.215 端口:…

鴻蒙OSUniApp 實現的表單驗證與提交功能#三方框架 #Uniapp

UniApp 實現的表單驗證與提交功能 前言 在移動端應用開發中,表單是用戶與應用交互的重要媒介。一個好的表單不僅布局合理、使用方便,還應該具備完善的驗證與提交功能,以確保用戶輸入的數據準確無誤。本文將分享如何在 UniApp 中實現表單驗證…

前端的面試筆記——HTMLJavaScript篇(二)前端頁面性能檢測

前端頁面性能檢測和判定是優化用戶體驗的核心環節,需要結合實驗室數據(Lab Data)、現場數據(Field Data)和行業標準綜合評估。以下是主流方法、工具及判定標準的詳細解析: 一、性能檢測的核心維度與指標 …

再來1章linux系列-19 防火墻 iptables 雙網卡主機的內核 firewall-cmd firewalld的高級規則

學習目標: 實驗實驗需求實驗配置內容和分析 (每一個設備的每一步操作)實驗結果驗證其他 學習內容: 實驗實驗需求實驗配置內容和分析 (每一個設備的每一步操作)實驗結果驗證其他 1.實驗 2.實驗需求 圖…

LLM-Based Agent綜述及其框架學習(五)

文章目錄 摘要Abstract1. 引言2. 文本輸出3. 工具的使用3.1 理解工具3.2 學會使用工具3.3 制作自給自足的工具3.4 工具可以擴展LLM-Based Agent的行動空間3.5 總結 4. 具身動作5. 學習智能體框架5.1 CrewAI學習進度5.2 LangGraph學習進度5.3 MCP學習進度 參考總結 摘要 本文圍繞…

游戲引擎學習第298天:改進排序鍵 - 第1部分

關于向玩家展示多個房間層所需的兩種 Z 值 我們在前一天基本完成了為渲染系統引入分層 Z 值的工作,但還沒有完全完成所有細節。我們開始引入圖形渲染中的分層概念,即在 Z 軸方向上擁有多個獨立圖層,每個圖層內部再使用一個單獨的 Z 值來實現…

一些C++入門基礎

關鍵字 圖引自 C 關鍵詞 - cppreference.com 命名空間 命名空間解決了C沒辦法解決的各類命名沖突問題 C的標準命名空間:std 命名空間中可以定義變量、函數、類型: namespace CS {//變量char cs408[] "DS,OS,JW,JZ";int cs 408;//函數vo…

學習筆記:黑馬程序員JavaWeb開發教程(2025.4.6)

12.4 登錄校驗-JWT令牌-介紹 JWT(JSON Web Token) 簡潔是指JWT是一個簡單字符串,自包含指的是JWT令牌,看似是一個隨機字符串,但是可以根據需要,自定義存儲內容 Header是JSON數據格式,原始JSO…

香港科技大學物理學理學(科學計算與先進材料物理與技術)碩士招生宣講會——深圳大學

香港科技大學物理學理學(科學計算與先進材料物理與技術)碩士招生宣講會——深圳大學專場 🕙時間:2025年5月23日(星期五)14:30 🏫地點:深圳大學滄海校區致原樓1101 &#x1f9d1…

數據庫優化技巧:MySQL 重復數據查詢與刪除(僅保留一條)的性能優化策略

目錄 一、查詢重復數據 二、刪除重復數據 方法 1:創建臨時表,操作完成后再刪除臨時表(安全可靠,適合大表) 步驟 1:創建臨時表存儲需刪除的 ID 步驟 2:根據臨時表刪除數據 方法 2&#xff1a…