我們使用Sqoop將數據從配置單元導出到SQL Server。新數據總是附加到SQL Server中的現有數據。Sqoop:在從Hadoop導出數據之前截斷SQL Server表格
在開始導出之前是否可以通過Sqoop截斷SQL Server表?
我們使用Sqoop將數據從配置單元導出到SQL Server。新數據總是附加到SQL Server中的現有數據。Sqoop:在從Hadoop導出數據之前截斷SQL Server表格
在開始導出之前是否可以通過Sqoop截斷SQL Server表?
Sqoop不是一般的查詢工具,「eval」功能僅用於評估目的,不應用於生產模式。您始終可以將簡單的Java代碼放在一起,以最適合您的用例的方式進行操作。
您可以使用sqoop eval在數據庫上執行任意SQL。這將允許您在不「離開」Sqoop的情況下截斷表格。例如:
sqoop eval --connect 'jdbc:sqlserver://1.1.1.1;database=SomeDatabase;username=someUser;password=somePassword' --query "TRUNCATE TABLE some_table"
sqoop export --connect 'jdbc:sqlserver://1.1.1.1;database=SomeDatabase;username=someUser;password=somePassword' --export-dir /path/to/someTable/on/HDFS --table some_table --fields-terminated-by \001
--fields-terminated-by \001
假定蜂巢表是使用默認分隔符。
還有就是要實現sqoop --truncate選項 https://issues.apache.org/jira/browse/SQOOP-1313
請投票最多的是JIRA頁面上,如果你有興趣功能要求。
我有同樣的問題! – 2013-04-04 10:08:04
我對Squoop一無所知,但它似乎是一個命令行工具,所以大概可以將它包裝在連接到SQL Server的腳本中,並在導入運行之前截斷表格? – Pondlife 2013-04-04 14:58:22