2013-04-04 3 views
3

Мы используем Sqoop для экспорта данных из улья на SQL Server. Новые данные всегда добавляются к существующим данным в SQL Server.Sqoop: обрезать таблицу SQL Server перед экспортом данных из Hadoop

Возможно ли усечь таблицу SQL Server через Sqoop до начала экспорта?

+1

У меня такая же проблема! –

+2

Я ничего не знаю о Squoop, но, похоже, это инструмент командной строки, поэтому, возможно, вы могли бы обернуть его в скрипт, который подключается к SQL Server и обрезает таблицу до запуска импорта? – Pondlife

ответ

3

Sqoop - это не общий инструмент запросов, функциональность «eval» предоставляется только для целей оценки и не должна использоваться в производственном режиме. Вы всегда можете составить простой Java-код, который будет делать это таким образом, который лучше всего подходит для вашего случая использования.

5

Вы можете использовать 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 использует стандартные разделители.

Смежные вопросы