HIVE資料匯入MYSQL實現方式

2021-10-05 21:22:18 字數 1992 閱讀 7832

*以下內容均**其他csdn博主的優秀內容

一、python指令碼導數

import os

import pymysql

hive_sql = """

beeline -u jdbc:hive2: -n 使用者名稱 -p 密碼 --showheader=false --outputformat=csv2 -e "

select * from table名;

""""

result = os.popen(hive_sql)

values = [x[:-1].split(',') for x in result]

db = pymysql.connect('ip位址', '使用者名稱', '密碼', '庫名')

cursor = db.cursor() #建立乙個游標物件

mysql_sql = "insert into 庫名.表名(col2, col2, col3, col4) values {}".format(

",".join('("{}", "{}", {}, "{}")'.format(x[0], x[1],x[2],x[3]) for x in values) )

cursor.execute(mysql_sql)

db.commit()

res = cursor.fetchall()

print(res)

db.close()

二、shell指令碼導數

#1、hive執行查詢把資料儲存到本地的檔案中

hive_sql="select * from table1 "

hive -i $base/init.sql -e "$hive_sql" > $base/date.data

# - i 引入hive查詢引數的設定,map、reduce的個數,資料庫的選擇等;

# - e 執行寫好的select查詢

#2、把從hive中查詢出來的資料匯入到mysql中(按照天先刪除後新增),需要注意雙引號別漏了

mysql -h127.0.0.1 -p3306 -uroot -p111111 -dtest -e "

set names utf8;

delete from detail  where date=$date;

load data local infile '$base/date.data' into table detail

fields escaped by '' (date,field1,,field2);

"#3、校驗資料以及插入倒數標記位

#獲取匯入到mysql的資料的條數

#mysql -h127.0.0.1 -p3306 -uroot -p111111 -dtest -e "select count(1) from detail  where #date=$date"|awk 'nr > 1' > $base/detail_check_date.data

#一旦有數則表明資料匯入成功進行資料匯入標記表插入標記(通過awk提取標記位)

#flag=`awk ' else } ' $base/detail_check_date.data`

#插入標記位

#mysql -h127.0.0.1 -p3306 -uroot -p111111 -dtest -e "

#set names utf8;

#delete from monitor where date = $date and table_name ='detail';

#insert into monitor (date,table_name,complete_flag) values ($date,'detail',$flag)

#"#刪除臨時檔案

#/bin/rm -rf $base/date.data

#/bin/rm -rf $base/detail_check_date.data

sqoop 增量mysql匯入hive資料

1.實現過程包括兩步。第一步將mysql的資料通過條件語句增量匯入匯入到hive的乙個臨時表中。第二步將臨時表中的資料通過動態分割槽的方式匯入到最終的結果表。增量匯入hive臨時表 可以不使用分割槽表,需要設定了資源佇列 sqoop import d mapred.job.queue.name ro...

HIVE資料匯入

1.text資料檔案匯出text資料表中 資料格式 建立相應的資料表 create table if not exists text table id int,count int comment table desc partitioned by date int row format delimi...

Hive資料匯入

1.操作準備資料來源 drop table if exists b create table b as select id,name,tel,age from b 2.複製檔案 如果資料檔案恰好是使用者需要的格式,那麼只需要複製檔案或資料夾就可以 hadoop fs cp source path t...