我有一個要求,其中我需要從mysql導入表增量配置單元,並面臨着這樣做的問題。 這是我到目前爲止所嘗試的:Sqoop:問題與增量進口
- 我已經創建了一個工作來導入下面提到的查詢表。
/sqoop工作
--create test2 -- import
--connect jdbc:mysql://URL
--username username
--password password
--table mysqlTablename
--hive-import
--hive-overwrite
--direct
--incremental lastmodified
--check-column last_modified_time
--last-value 0
第一次執行:與最小值邊界爲「0」和最大邊界,當前時間的預計導入的一切。 第二次執行:從上次運行中的所有更改都被拾取,但舊的行正在被覆蓋,只留下從上次運行中更改的行。
- 我刪除了--hive-overwrite和--hive-import選項,並使用'--target-dir'選項。 第一次執行:按照預期獲取所有內容,最小邊界爲'0',最大邊界爲當前時間,但由於Metastore沒有更新,因此不會顯示在Hive中。 第二次執行:它將引發一個錯誤,指出作爲參數提到的directoty已經存在--target-dir選項。這是在從HDFS中刪除直接數據後執行的,但不能解決目的。
我發現這個提到的問題,並沒有發現其他比把新的值到一個側面目錄,並運行sqoop上的數據合併到壓平的解決方案。我想在一個shell腳本中自動執行此操作,並想知道是否有更好的方法來處理這個增量更新。
想要檢查什麼是最好的選擇,我需要導入一個MySQL表,並根據最後一次修改時間戳的列增量更新更改爲配置單元。 即根據mysql中的更改創建,更新或刪除Hive表中的行,以使它們保持同步。
對此非常感謝。
問候 羅希特