datax將mysql資料匯入hive表

2022-01-22 07:39:33 字數 2573 閱讀 3900

環境:cdh 5.12.1版本 ,mysql 5.7

1、mysql表結構

2、mysql表資料(user)

4、在datax的job目錄編寫乙個mysql2hive.json檔案a) 下面是全量匯入

],

"password": "yang156122",

"username": "root",

"where": ""}

},"writer": ,,,

],"compress": "gzip",

"defaultfs": "hdfs:",

"fielddelimiter": "\t",

"filename": "user",

"filetype": "text",

"path": "/user/datax/data/ceshi",}}

],"setting": }}

}

view code

b) 下面是按指定的時間,增量匯入

],

"password": "yang156122",

"username": "root",

"where": "create_time >= '2020-10-21'"}

},"writer": ,,,

],"compress": "gzip",

"defaultfs": "hdfs:",

"fielddelimiter": "\t",

"filename": "user",

"filetype": "text",

"path": "/user/datax/data/ceshi",}}

],"setting": }}

}

view code

c)動態傳參,增量匯入(推薦看這個)

],

"password": "yang156122",

"username": "root",

"where": "create_time >= '$date'"}

},"writer": ,,,

],"compress": "gzip",

"defaultfs": "hdfs:"

,

"fielddelimiter": "\t",

"filename": "user",

"filetype": "text",

"path": "/user/datax/data/ceshi",}}

],"setting": }}

}

5、建立hive的表

drop table if exists default

.user;

create table

default

.user(id int, name string , age int , create_time timestamp

)row format delimited fields terminated by '\t';

6、如果是增量匯入(包括動態傳參),每執行一次datax,都要進行load data

load data inpath '/user/datax/data/ceshi' into table default.user ;
7、這一步,僅針對動態傳參,增量匯入(可以忽略步驟6),vim start.sh

#! /bin/bash

echo "獲取前一天的時間,時間格式為2020-10-21"

a=`date -d yesterday -u +%y-%m-%

d`echo "開始啦"python /root/data/soft/datax/datax/bin/datax.py -p "-ddate=$" /root/data/soft/datax/datax/job/

mysql2hive.json

sleep 10echo "開始將資料入hive表"hive -e "load data inpath '/user/datax/data/ceshi' into table default.user;"

8、執行 sh start.sh9、檢視資料

hive 

use

default

;select * from user;

將Excel資料匯入MySql

將excel資料匯入mysql 1.將選中的資料快兒拷貝到乙個txt文字檔案中 記得把後面的空格消掉。假如存到 d data.txt 這個位置裡。2.根據要匯入的資料快兒建立mysql資料庫和表,然後進入命令提示符裡使用命令 load data local infile d data.txt int...

將Excel資料匯入MySql

1.將選中的資料快兒拷貝到乙個txt文字檔案中 記得把後面的空格消掉。否則匯入資料庫後會有對應的空行 假如存到 d data.txt 這個位置裡。2.根據要匯入的資料快兒建立mysql資料庫和表,然後進入命令提示符裡使用命令 load data local infile d data.txt int...

將Excel資料匯入MySql

1.將選中的資料快兒拷貝到乙個txt文字檔案中 記得把後面的空格消掉。假如存到 d data.txt 這個位置裡。2.根據要匯入的資料快兒建立mysql資料庫和表,然後進入命令提示符裡使用命令 load data local infile d data.txt into table exceltom...