Справочная информация:Как создать конвейер данных из таблицы hive в реляционную базу данных
У меня есть таблица с улей, содержащая информацию журнала. Эта таблица загружается новыми данными журнала каждый час. Я хочу сделать некоторую быструю аналитику в журналах за последние 2 дня, поэтому я хочу извлечь последние 48 часов данных в свою реляционную базу данных.
Чтобы решить вышеуказанную проблему, я создал таблицу утиных утилит, которая загружается запросом HIVE SQL. После загрузки новых данных в промежуточную таблицу я загружаю новые журналы в реляционную базу данных с помощью sqoop Query.
Проблема в том, что sqoop загружает данные в реляционную базу данных в BATCH. Поэтому в любой момент времени у меня есть только частичные журналы в течение определенного часа.
Это приводит к ошибочному выводу аналитики.
Вопросы:
1). Как сделать транзакционную транзакцию данных Sqoop, т. Е. Либо экспортируются все записи, либо ни одна из них не экспортируется.
2). Каков наилучший способ построения этого конвейера данных, где весь этот процесс таблицы Hive -> Staging Table -> Relational Table.
Технические детали:
Hadoop версия 1.0.4
Hive- 0.9.0
Sqoop - 1.4.2
У меня есть мастер-таблица (Master), в которой я запрашиваю и храню данные во второй таблице улей, которая так же как и реляционная база данных. Теперь, если я использую параметр -staging-table, тогда он создаст еще одну временную таблицу.ИМХО, это будет большой успех, поскольку я занимаюсь большим объемом данных. Есть ли лучший способ сделать это? – SleepyThread