Sqoop инкрементальный экспорт с использованием hcatalog?
Есть ли способ использовать sqoop для последовательного экспорта? Я использую интеграцию Hcatalog для sqoop. Я пытался использовать параметры --last-value, --check-column, которые используются для пошагового импорта, но sqoop дал мне ошибку, что эти параметры были недействительными.
2 ответа
Я не видел дополнительных параметров экспорта sqoop. Другой способ, которым вы могли бы попытаться, это создать в hive contol_table, где вы ведете журнал имени таблицы и отметки времени, когда она последний раз экспортировалась каждый раз.
create table if not exists control_table (
table_name string,
export_date timestamp
);
insert into control_table 'export_table1' as table_name, from_unixtime(unix_timestamp()) as export_date from control_table;
Если export_table1 - это таблица, которую вы хотите экспортировать пошагово, при условии, что вы уже выполнили два оператора.
--execute below at once
--get the timestamp when the table was last executed
create temporary table control_table_now as select table_name, max(export_date) as last_export_date from control_table group by table_name;
--get incremental rows
create table new_export_table1 as select field1, field2, field3, .... timestamp1 from export_table1 e, control_table_now c where c.table_name = 'export_table1' and e.timestamp1 >= c.last_export_date;
--append the control_table for next process
insert into control_table 'export_table1' as table_name, from_unixtime(unix_timestamp()) as export_date from control_table;
Теперь экспортируйте таблицу new_export_table1, которая постепенно создается с помощью команды sqoop export.
По умолчанию sqoop не поддерживает инкрементное обновление с интеграцией hcatalog, когда мы пытаемся это выдает следующую ошибку
Режим добавления для импорта не совместим с HCatalog. Удалите параметр - append-mode в org.apache.sqoop.tool.BaseSqoopTool.validateHCatalogOptions(BaseSqoopTool.java:1561).
Вы можете использовать опцию запроса, чтобы заставить его работать. как описано в этом документе hortonworks