3

我们正在使用 Sqoop 将数据从配置单元导出到 SQL Server。新数据始终附加到 SQL Server 中的现有数据。

是否可以在开始导出之前通过 Sqoop 截断 SQL Server 表?

4

3 回答 3

8

您可以使用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假定 Hive 表使用默认分隔符。

于 2013-04-04T18:01:12.957 回答
3

Sqoop 不是通用查询工具,“eval”功能仅用于评估目的,不应在生产模式下使用。您始终可以将简单的 Java 代码放在一起,这些代码将以最适合您的用例的方式执行此操作。

于 2013-04-05T02:33:05.303 回答
0

有实现 sqoop --truncate 选项的功能请求 https://issues.apache.org/jira/browse/SQOOP-1313

如果您有兴趣,请在该 JIRA 页面上投票。

于 2016-09-28T16:44:52.767 回答