2014-05-08 12 views
1

如何根據多列導入Oracle的增量數據?Sqoop Incremental在檢查欄中導入多列

sqoop import --connect jdbc:oracle:thin:ip/dbname --username sqoop --password sqoop \ 
--query 'SELECT * FROM tablename WHERE $CONDITIONS' \ 
--check-column column1,column2 \ 
--incremental lastmodified \ 
--last-value "2010-05-22 01:01:01" \ 
-fields-terminated-by \| \ 
--target-dir /directoryname` --split-by id -m 1 

當我使用這個,column2不能識別,它會引發錯誤。需要幫助。

回答

1

這真的取決於Sqoop增量應與兩列做...

你想抓住所有行COLUMN1比去年價值更大? COLUMN2?以較大者爲準?哪一個較小?

由於sqoop不知道如何組合它們,它不支持多列。

但是,您可以自己組合它們並使用函數作爲--check-column。

例如: --check列NVL(列1,列2) 或 --check列最大(列1,列2)

+0

感謝。我會試一試。 – user3501743

0

--check列不支持SQL函數, 你可以創建一個視圖,就像

create view <view_name> as (
 
    col2, 
 
    col2, 
 
    col1+col2 as col3 
 
)