DataX初入門

目錄

關係型數據庫拉取到Hive:

mongo到hive


Sqoop存在侷限性,只能在關係型數據庫到hadoop(Hive)之間導數據,如果有noSql的場景怎麼解決?

我們用阿里開源的產品DataX來解決。目前開源版本爲dataX3。

進入阿里github倉庫拉取源碼進行編譯:注意匹配java和python版本問題。

我這裏快速入門以官方給好的tar爲例進行闡述。-->前面的頁面找到quick Start點進去。

嫌麻煩-點我直接下載dataX.tar.gz

關係型數據庫拉取到Hive:

1-首先:在Hive中創建一張表(目標表)

CREATE TABLE shop_dt0329 (
  `date` varchar(10),
  `room_id` int,
  `fanself_pay_amount` bigint
)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
WITH SERDEPROPERTIES ( 
  'field.delim'='\t', 
  'line.delim'='\n', 
  'serialization.format'='\t');

注意,上面指定了列分隔符,行分隔符,在等會的Json文件中要體現出來。

2-創建mysql中的表:

CREATE DATABASE IF NOT EXISTS fordatax;

USE fordatax;


CREATE TABLE IF NOT EXISTS shop_dt0701(`date` VARCHAR(10),room_id INT,fanself_pay_amount INT);

INSERT INTO `fordatax`.`shop_dt0701`(`date`,`room_id`,`fanself_pay_amount`) VALUES ( '2019-07-01','45','45');
insert into `fordatax`.`shop_dt0701`(`date`,`room_id`,`fanself_pay_amount`) values ( '2019-07-01','34','233');
insert into `fordatax`.`shop_dt0701`(`date`,`room_id`,`fanself_pay_amount`) values ( '2019-07-01','34','85');

3-編寫Json配置文件fortest.json:

{ 
"job": { 
"content": [ 
{ 
"reader": { 
"name": "mysqlreader", 
"parameter": { 
"column": [ 
"*" 
], 
"connection": [ 
{ 
"jdbcUrl": [ 
"jdbc:mysql://spark01:3306/fordatax" 
], 
"table": [ 
"shop_dt0701" 
] 
} 
], 
"password": "hive", 
"username": "hive" 
} 
}, 
"writer": { 
"name": "hdfswriter", 
"parameter": {
"column": [ 
{ 
"name": "date", 
"type": "VARCHAR" 
}, 
{ 
"name": "room_id", 
"type": "INT" 
}, 
{ 
"name": "fanself_pay_amount", 
"type": "INT" 
}
], 
"compress": "gzip", 
"defaultFS": "hdfs://spark01", 
"fieldDelimiter": "\t", 
"fileName": "shop_dt0701", 
"fileType": "text", 
"path": "/user/hive/warehouse/test.db/shop_dt0701", 
"writeMode": "append" 
} 
} 
} 
], 
"setting": { 
"speed": { 
"channel": "2" 
} 
} 
} 
} 

4,開始執行任務

python ${DATAX_HOME}/datax.py fortest.json

建議首次解壓之後,進入bin目錄下,執行以下命令已檢查datax

python bin/datax.py job/job.json

以上參考

BabyFish13DataX安裝部署及小試

mongo到hive

 同上面,先創建hive表,在創建mogodb的數據庫和collecrtion。上面關係型數據庫的列,對應着mongodb裏面collection的field。不重複造輪子了。量化投資的文章

 

DataX的執行流程參考-簡書網友晴天哥_374的文章-https://www.jianshu.com/p/b10fbdee7e56

感謝阿里開源的DataX~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章