解決sqoop匯入關係庫更新聯合主鍵的問題

2021-07-05 11:22:47 字數 1731 閱讀 4396

解決sqoop匯入關係庫更新聯合主鍵的問題,把資料從hive中匯入關係庫,如果關係庫表有聯合主鍵的情況,且需要把新匯入的資料更新原來的資料。

以下提供參考的示例:

1、建立關係庫表

[sql]view plain

copy

create

table

test123  

(  id int

notnull

,  name

varchar

(25) 

notnull

,  age int

,  primary

key(id, 

name

)  )  

engine=myisam default

charset=utf8  

2、建立hive表

[sql]view plain

copy

drop

table

default

.test123;  

create

table

default

.test123  

(  id int

,  name

string,  

age                  int

)  row format delimited fields terminated by

'\t'

stored as

textfile;  

匯入測試資料:

[sql]view plain

copy

insert

overwrite 

table

default

.test123 

select

1,'bill'

,5 from

default

.kwu_test limit 1;  

3、sqoop匯入mysql資料庫

[plain]view plain

copy

sqoop export  --connect jdbc:mysql: --update-key "id,name" --update-mode allowinsert  --username kwu  --password '123456'  --table test123  --fields-terminated-by '\t' --columns "id,name,age" --export-dir /hive/warehouse/test123  

說明: 

1)  -update-key 指定聯合主鍵的值

2)  --update-mode allowinsert 指定更新的模式為可插入,預設為 updateonly

修改測試資料:

[sql]view plain

copy

insert

overwrite 

table

default

.test123 

select

1,'bill'

,6 from

default

.kwu_test limit 1;  

檢視mysql資料庫中age已經修改為6.

解決sqoop匯入關係庫更新聯合主鍵的問題

author kwu 解決sqoop匯入關係庫更新聯合主鍵的問題,把資料從hive中匯入關係庫,如果關係庫表有聯合主鍵的情況,且需要把新匯入的資料更新原來的資料。以下提供參考的示例 1 建立關係庫表 create table test123 id int not null,name varchar ...

解決sqoop匯入關係庫更新聯合主鍵的問題

author kwu 解決sqoop匯入關係庫更新聯合主鍵的問題,把資料從hive中匯入關係庫,如果關係庫表有聯合主鍵的情況,且需要把新匯入的資料更新原來的資料。以下提供參考的示例 1 建立關係庫表 sql view plain copy create table test123 id int no...

sqoop更新匯入總結,從hive到mysql

首先語句上很簡單,sqoop export connect jdbc mysql username cxk password jinitaimei table test table columns a,b,c,d,e hcatalog database hive database01 hcatalo...