數據庫之間數據遷移工具datax

簡介

DataX 是阿里云?DataWorks數據集成?的開源版本,在阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺。DataX 實現了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各種異構數據源之間高效的數據同步功能。

個人發現特點:數據量超過千萬的遷移速度回加快(50000/s),低于千萬的速度只有4000/s左右,目前還沒發現原因

?

特點

DataX本身作為數據同步框架,將不同數據源的同步抽象為從源頭數據源讀取數據的Reader插件,以及向目標端寫入數據的Writer插件,理論上DataX框架可以支持任意數據源類型的數據同步工作。同時DataX插件體系作為一套生態系統, 每接入一套新數據源該新加入的數據源即可實現和現有的數據源互通。

支持數據庫

類型數據源Reader(讀)Writer(寫)文檔
RDBMS 關系型數據庫MySQL讀?、寫
Oracle讀?、寫
OceanBase讀?、寫
SQLServer讀?、寫
PostgreSQL讀?、寫
DRDS讀?、寫
Kingbase讀?、寫
通用RDBMS(支持所有關系型數據庫)讀?、寫
阿里云數倉數據存儲ODPS讀?、寫
ADB
ADS
OSS讀?、寫
OCS
Hologres
AnalyticDB For PostgreSQL
阿里云中間件datahub讀 、寫
SLS讀 、寫
圖數據庫阿里云 GDB讀?、寫
Neo4j
NoSQL數據存儲OTS讀?、寫
Hbase0.94讀?、寫
Hbase1.1讀?、寫
Phoenix4.x讀?、寫
Phoenix5.x讀?、寫
MongoDB讀?、寫
Cassandra讀?、寫
數倉數據存儲StarRocks讀 、寫
ApacheDoris
ClickHouse讀?、寫
Databend
Hive讀?、寫
kudu
selectdb
無結構化數據存儲TxtFile讀?、寫
FTP讀?、寫
HDFS讀?、寫
Elasticsearch
時間序列數據庫OpenTSDB
TSDB讀?、寫
TDengine讀?、寫

前提條件

  • JDK(1.8以上,推薦1.8)
  • Python(2或3都可以)
  • Apache Maven 3.x?(Compile DataX)

原生安裝及使用

安裝

安裝包下載地址

下載后解壓至本地某個目錄,進入bin目錄,即可運行同步作業:

$ cd  {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}

?使用

配置示例:從stream讀取數據并打印到控制臺

  • 第一步、創建作業的配置文件(json格式)

    可以通過命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}

    $ cd  {YOUR_DATAX_HOME}/bin
    $  python datax.py -r streamreader -w streamwriter
    DataX (UNKNOWN_DATAX_VERSION), From Alibaba !
    Copyright (C) 2010-2015, Alibaba Group. All Rights Reserved.
    Please refer to the streamreader document:https://github.com/alibaba/DataX/blob/master/streamreader/doc/streamreader.md Please refer to the streamwriter document:https://github.com/alibaba/DataX/blob/master/streamwriter/doc/streamwriter.md Please save the following configuration as a json file and  usepython {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json 
    to run the job.{"job": {"content": [{"reader": {"name": "streamreader", "parameter": {"column": [], "sliceRecordCount": ""}}, "writer": {"name": "streamwriter", "parameter": {"encoding": "", "print": true}}}], "setting": {"speed": {"channel": ""}}}
    }

    根據模板配置json如下:

    #stream2stream.json
    {"job": {"content": [{"reader": {"name": "streamreader","parameter": {"sliceRecordCount": 10,"column": [{"type": "long","value": "10"},{"type": "string","value": "hello,你好,世界-DataX"}]}},"writer": {"name": "streamwriter","parameter": {"encoding": "UTF-8","print": true}}}],"setting": {"speed": {"channel": 5}}}
    }
  • 第二步:啟動DataX

    $ cd {YOUR_DATAX_DIR_BIN}
    $ python datax.py ./stream2stream.json 

    同步結束,顯示日志如下:

    ...
    2015-12-17 11:20:25.263 [job-0] INFO  JobContainer - 
    任務啟動時刻                    : 2015-12-17 11:20:15
    任務結束時刻                    : 2015-12-17 11:20:25
    任務總計耗時                    :                 10s
    任務平均流量                    :              205B/s
    記錄寫入速度                    :              5rec/s
    讀出記錄總數                    :                  50
    讀寫失敗總數                    :                   0

data-web本地部署

前提是安裝了datax

下載源碼? ?https://github.com/WeiYe-Jing/datax-web.git

目錄結構如下

修改admin配置文件

修改datax_admin下resources/application.yml文件

#數據源datasource:username: rootpassword: rooturl: jdbc:mysql://localhost:3306/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8driver-class-name: com.mysql.jdbc.Driver

?修改數據源配置,目前僅支持mysql

# 配置mybatis-plus打印sql日志
logging:level:com.wugui.datax.admin.mapper: errorpath: ./data/applogs/admin

修改日志路徑path

# datax-web emailmail:host: smtp.qq.comport: 25username: xxx@qq.compassword: xxxproperties:mail:smtp:auth: truestarttls:enable: truerequired: truesocketFactory:class: javax.net.ssl.SSLSocketFactory

修改郵件發送配置(不需要可以不修改)

修改excutor配置文件

修改datax_executor下resources/application.yml文件?

# log config
logging:config: classpath:logback.xmlpath: ./data/applogs/executor/jobhandler

?修改日志路徑path

datax:job:admin:### datax-web admin addressaddresses: http://127.0.0.1:8080executor:appname: datax-executorip:port: 9999### job log pathlogpath: ./data/applogs/executor/jobhandler### job log retention dayslogretentiondays: 30executor:jsonpath: /Users/mac/data/applogspypath: /Users/mac/tools/datax/bin/datax.py

修改datax.job配置

  • admin.addresses datax_admin部署地址,如調度中心集群部署存在多個地址則用逗號分隔,執行器將會使用該地址進行"執行器心跳注冊"和"任務結果回調";
  • executor.appname 執行器AppName,每個執行器機器集群的唯一標示,執行器心跳注冊分組依據;
  • executor.ip 默認為空表示自動獲取IP,多網卡時可手動設置指定IP,該IP不會綁定Host僅作為通訊實用;地址信息用于 "執行器注冊" 和 "調度中心請求并觸發任務";
  • executor.port 執行器Server端口號,默認端口為9999,單機部署多個執行器時,注意要配置不同執行器端口;
  • executor.logpath 執行器運行日志文件存儲磁盤路徑,需要對該路徑擁有讀寫權限;
  • executor.logretentiondays 執行器日志文件保存天數,過期日志自動清理, 限制值大于等于3時生效; 否則, 如-1, 關閉自動清理功能;
  • executor.jsonpath datax json臨時文件保存路徑
  • pypath DataX啟動腳本地址,例如:xxx/datax/bin/datax.py 如果系統配置DataX環境變量(DATAX_HOME),logpath、jsonpath、pypath可不配,log文件和臨時json存放在環境變量路徑下。

啟動項目

本地idea開發環境

  • 1.運行datax_admin下 DataXAdminApplication
  • 2.運行datax_executor下 DataXExecutorApplication

admin啟動成功后日志會輸出三個地址,兩個接口文檔地址,一個前端頁面地址

啟動成功

啟動成功后打開頁面(默認管理員用戶名:admin 密碼:123456)?http://localhost:8080/index.html#/dashboard?

data-web的docker安裝

前提條件安裝好mysql

docker run -d --name datax-admin -p 2020:2020  -v /newdisk/datax/log/datax-admin.log:/tmp/datax-admin.log hametan/datax-web:2.1.2 java -jar datax-admin-2.1.2.jar --PORT=2020 --MYSQL_SERVICE_HOST=192.168.31.131 --MYSQL_SERVICE_PORT=3306 --MYSQL_USER=root --MYSQL_PASSWORD=123456 --DB_DATABASE=dataxdocker run -d --name datax-executor -p 2021:2021  -v /newdisk/datax/log/:/home/applogs/executor/jobhandler/ hametan/datax-web:2.1.2 java -jar datax-executor-2.1.2.jar --PORT=2021 --ADDRESSES=http://192.168.31.131:2020

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

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

相關文章

解決ODOO12 恢復數據庫提示內存不夠報錯

1. 現象 點擊 ‘restore database’ 控制臺報錯: 2. 解決措施 a. 進入啟動腳本的文件夾 cd odoo/odoo-12.0/輸入命令 ./odoo-bin --addons-pathaddons --databaseodoo --db_userodoo --db_passwordodoo --db_hostlocalhost --db_port5432 -i INITb. 刷新頁面…

達夢數據庫基礎操作(五): 索引操作

達夢數據庫基礎操作(五): 索引操作 1. 索引操作 1.1 創建索引 # 使用 CREATE INDEX 語句創建普通索引。 CREATE INDEX ind_emp_salary ON employee(salary);1.2 查看創建的索引 # 通過字典表 user_indexes 查看已創建索引的名稱、類型。SELECT table_name, index…

CentOS部署FastDFS+Nginx并實現遠程訪問本地服務器中文件

文章目錄 前言1. 本地搭建FastDFS文件系統1.1 環境安裝1.2 安裝libfastcommon1.3 安裝FastDFS1.4 配置Tracker1.5 配置Storage1.6 測試上傳下載1.7 與Nginx整合1.8 安裝Nginx1.9 配置Nginx 2. 局域網測試訪問FastDFS3. 安裝cpolar內網穿透4. 配置公網訪問地址5. 固定公網地址5.…

CHI協議學習

原始文檔:https://developer.arm.com/documentation/102407/0100/?langen CHI 總線拓撲結構 CHI總線拓撲是實現自定義的,可以是RING/MESH/CROSSBAR的類型; RING 一般適用于中等規模芯片MESH 一般適用于大規模芯片CROSSBAR 一般適用于小規模…

中科數安 | 公司文檔數據如何才能防止他人泄密?

為了防止公司文檔數據被他人泄密,中科數安提供了一系列綜合性的解決方案和服務。 www.weaem.com 以下是一些關鍵策略和措施: 訪問控制:首先,實施嚴格的文件訪問控制是至關重要的。中科數安提供身份驗證和權限管理系統&#xff0c…

hnust 湖南科技大學 2022 數據挖掘課設 完整代碼+報告+圖源文件+指導書

hnust 湖南科技大學 2022 數據挖掘課設 完整代碼報告圖源文件指導書 目錄 實驗一 Apriori算法設計與應用 - 1 - 一、 背景介紹 - 1 - 二、 實驗內容 - 1 - 三、 實驗結果與分析 - 2 - 四、 小結與心得體會 - 3 - 實驗二 KNN算法設計與應用 - 4 - 一、 背景介紹 - 4 - 二、 實…

解鎖智慧之門:自然語言處理與神奇的語言模型

在數字化浪潮席卷全球的今天,自然語言處理(NLP)已成為人工智能領域最璀璨的明珠之一。而在這顆明珠中,語言模型(LM)更是閃耀著奪目的光芒。它們不僅讓機器能夠理解和生成人類的語言,更在智能助手、搜索引擎、翻譯工具等眾多應用中發揮著不可或缺的作用。今天,就讓我們一…

SAP VT01N創建Shipment Number

調用BAPI:BAPI_SHIPMENT_CREATE創建裝運單本身很簡單,但是如果是第一次使用的話,可能會對抬頭的一些日期感到困惑 BAPI_SHIPMENT_CREATE抬頭日期字段處理代碼:Include程序:LV56I_BAPIHEA,子程序:set_heade…

論如何采用神秘顧客工具提升營業廳的服務質量?

神秘顧客工具能進一步提升營業廳的服務質量,對于這方面深圳神秘顧客(SMS)公司有以下建議: 1、建立顧客反饋機制:除了神秘顧客的反饋外,營業廳還可以建立其他顧客反饋渠道,如在線調查、顧客滿意…

大數據面試經驗分享

隨著大數據技術的快速發展,大數據相關職位的需求也日益增長。對于想要進入大數據領域的求職者來說,面試是通往理想職位的重要一關。下面我將分享一些大數據面試的經驗,希望能夠幫助大家在面試中脫穎而出。 一、面試前準備 了解公司背景和業…

(已解決)emoji及其特殊符號在vue中的使用

問題敘述 使用問題&#xff1a;在表情庫中點擊后無法展示對應的emoji表情&#xff0c;僅僅顯示Unicode代碼編號&#xff0c;按照vue eslint規則更改添加分號后&#xff0c;沒有報錯但是依舊無法正確渲染。 問題源碼&#xff1a; <template><div><!-- 被點擊的…

Git Bash中安裝tree

文章目錄 問題描述解決辦法A備選辦法BRef 問題描述 在Git Bash中使用tree報錯&#xff1a; tree # bash: tree: command not found解決辦法A 下載二進制文件&#xff1a; https://gnuwin32.sourceforge.net/packages/tree.htm -> 選binary。下載后解壓.zip 把解壓后的tre…

全新攻擊面管理平臺

首頁大屏 內測階段&#xff0c;免費試用一個月 有興趣體驗的師傅&#xff0c;來長亭云圖極速版群里找我 py

AI通識教育:可能是我們領先于世界AI的關鍵

在人工智能時代&#xff0c;要想在全球AI競爭中占據一席之地&#xff0c;擺脫對外部先進機構如OpenAI的依賴&#xff0c;減少對英偉達等公司在GPU等硬件技術上的制約&#xff0c;以及盡快縮小與世界最前沿AI技術水平之間的差距&#xff0c;這是一項艱巨而又緊迫的任務。 實現這…

如何保證 HTTPS 證書的有效性?

隨著互聯網的蓬勃發展&#xff0c;保障用戶在網絡上的隱私和安全成為至關重要的任務。HTTPS證書&#xff0c;作為一種安全套接字層協議&#xff0c;扮演著網站安全的守護者。 1. 什么是HTTPS 證書&#xff1f; HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff…

vue 安裝各種問題

新下載了個項目模板&#xff0c;安裝包就遇到了各種各樣問題 電腦&#xff1a;mac 使用npm i 等命令一直安裝項目&#xff0c;然后一直報錯 2534 info run canvas2.11.2 install node_modules/canvas node-pre-gyp install --fallback-to-build --update-binary 2535 info r…

vscode + visual studio keymap插件

備注&#xff1a;主要推薦代碼遞歸折疊代碼展開單個函數折疊單個代碼展開。原因&#xff1a;vscode中的visual studio keymap插件對于代碼折疊支持不充分&#xff0c;查看大型項目時不方便。 一、個人快捷鍵推薦 1、前進&#xff1a;ctrl shift - 2、回退&#xff1a;ctrl…

uni-app webview 打開baidu.com

在uni-app中&#xff0c;你可以使用web-view組件來打開外部網頁&#xff0c;比如百度首頁。以下是一個簡單的示例代碼&#xff0c;展示了如何在uni-app中使用web-view組件打開百度首頁&#xff1a; <template> <view> <web-view :src"baiduUrl">&l…

【new IntersectionObserver】vue3 數據懶加載

new IntersectionObserver js方法描述步驟 實現邏輯&#xff1a;通過監視底部節點可視情況&#xff0c;獲取新數據進行渲染&#xff0c;如果獲取不到最新數據則顯示暫無其他數據 new IntersectionObserver 是用于監視元素可見度&#xff0c;所以我們只需要監視數據下方的dom是…

ubuntu docker deamon無法連接的問題

現象 ubuntu 下使用docker&#xff0c;禿然一天報了一個錯誤 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 排查 排查了半天&#xff0c;是dockerd啟動的時候指定的API listen 和默認的不一致。 systemctl 啟動的時…