點擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!
某核心系統(tǒng)業(yè)務(wù)部分業(yè)務(wù)遷移到國產(chǎn)數(shù)據(jù)庫OceanBase,但是歷史數(shù)據(jù)仍然需要遷移到Oracle數(shù)據(jù)庫,對數(shù)據(jù)實時性要求不高,只需要清理前完成1個月的數(shù)據(jù)遷移即可 。
DataX
DataX本身作為離線數(shù)據(jù)同步框架,采用Framework + plugin架構(gòu)構(gòu)建。
將數(shù)據(jù)源讀取和寫入抽象成為Reader/Writer插件,納入到整個同步框架中,比較簡潔。
Reader:Reader為數(shù)據(jù)采集模塊,負(fù)責(zé)采集數(shù)據(jù)源的數(shù)據(jù),將數(shù)據(jù)發(fā)送給Framework。
Writer:Writer為數(shù)據(jù)寫入模塊,負(fù)責(zé)不斷向Framework取數(shù)據(jù),并將數(shù)據(jù)寫入到目的端。
datax的使用
python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json
{
"job": {
"setting": {
"speed": {
"channel": 100,
"bytes":0
},
"errorLimit": {
"record":"",
"percentage":
}
},
"content": [
{
"reader": {
"name": "oceanbasev10reader",
"parameter": {
"username": "",
"password": "",
"column": [
"*"
],
"connection": [
{
"jdbcUrl":[ ""],
"querySql": [
"select * from ${readTb} PARTITION(${readpartition}) "
]
}
],
"batchSize": 1024
}
},
"writer": {
"name": "oraclewriter",
"parameter": {
"where": "",
"column": ["*"],
"preSql": [],
"connection": [
{
"jdbcUrl": "",
"table": ["${writeTb}"]
}
],
"username": "",
"password": ""
}
}
}
]
}
}
python /home/admin/tools/datax3/bin/datax.py
/home/admin/ob_ss/ob_to_ora_ss_tbcs5.json -p"-DreadTb=table1
-Dreadpartition=partition1 -DwriteTb=table1 "
#!/bin/bash
v_table_list=/home/admin/ob_ss/source_table.lst
v_exec_command=/home/admin/tools/datax3/bin/datax.py
v_path_json=/home/admin/ob_ss/ob_to_ora_ss_tbcs5.json
v_path_log=/home/admin/ob_ss/log/
#從table_name.txt獲取表名、分區(qū)
for table_name in `cat $v_table_list`
Do
v_source_table_name1=`echo $table_name|awk -F ":" {print $1}`
v_source_table_partition=`echo $table_name|awk -F ":" {print $2}`
v_target_table_name=`echo $table_name|awk -F ":" {print $1}|awk -F "." {print $2}`
$v_exec_command --loglevel=info -p "
-DreadTb=${v_source_table_name1}
-Dreadpartition=${v_source_table_partition}
-DwriteTb=${v_target_table_name}
" $v_path_json >> "$v_path_log"$v_source_table_name1"_"$v_source_table_partition".log
DataX的并發(fā)參數(shù)
Json配置文件讀寫數(shù)據(jù)有兩種模式:
遇到的問題
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129386.html
摘要:與大數(shù)據(jù)體系交互上報運行統(tǒng)計數(shù)據(jù)自帶了運行結(jié)果的統(tǒng)計數(shù)據(jù),我們希望把這些統(tǒng)計數(shù)據(jù)上報到元數(shù)據(jù)系統(tǒng),作為的過程元數(shù)據(jù)存儲下來?;谖覀兊拈_發(fā)策略,不要把有贊元數(shù)據(jù)系統(tǒng)的嵌入源碼,而是在之外獲取,截取出打印的統(tǒng)計信息再上報。一、需求 有贊大數(shù)據(jù)技術(shù)應(yīng)用的早期,我們使用 Sqoop 作為數(shù)據(jù)同步工具,滿足了 MySQL 與 Hive 之間數(shù)據(jù)同步的日常開發(fā)需求。 隨著公司業(yè)務(wù)發(fā)展,數(shù)據(jù)同步的場景越...
Oceanbase新版本復(fù)合分區(qū)添加分區(qū)操作 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
在社會化分工、軟件行業(yè)細(xì)分專業(yè)化的趨勢下,會真的參與到底層系統(tǒng)實現(xiàn)的人肯定是越來越少(比例上說)。真的會參與到JVM實現(xiàn)的人肯定是少數(shù)。 但如果您對JVM是如何實現(xiàn)的有興趣、充滿好奇,卻苦于沒有足夠系統(tǒng)的知識去深入,那么可以參考RednaxelaFX整理的這個書單。 showImg(http://segmentfault.com/img/bVbGzn); 本豆列的脈絡(luò)是: 1. JV...
摘要:在有贊的技術(shù)演進(jìn)。業(yè)務(wù)數(shù)據(jù)量正在不斷增大,這些任務(wù)會影響業(yè)務(wù)對外服務(wù)的承諾。監(jiān)控需要收集上執(zhí)行的的審計信息,包括提交者執(zhí)行的具體,開始結(jié)束時間,執(zhí)行完成狀態(tài)。還有一點是詳細(xì)介紹了的原理,實踐中設(shè)置了的比默認(rèn)的減少了以上的時間。 前言 有贊數(shù)據(jù)平臺從2017年上半年開始,逐步使用 SparkSQL 替代 Hive 執(zhí)行離線任務(wù),目前 SparkSQL 每天的運行作業(yè)數(shù)量5000個,占離線...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20