2016-07-30 2 views
1

У меня есть таблица улья. Если у меня есть требование, чтобы данные ежедневно приходили в таблицу улей. Если входящие данные - это новая запись (вставки), то запись должна быть вставлена ​​в таблицу hive или если данные, которые поступают, уже существуют (обновления) в улье, тогда запись должна быть обновлена.Управление данными таблицы улья

Может кто-нибудь объяснить, как это достигается в Улье.

Я проверял онлайн Я нашел эту статью. http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/

ответ

0


Есть Serveral способов сделать это, и это зависит от:

  • Каковы ваши требования к точности,
  • Какая версия Hive вы используете (с 0,14 Hive поддерживает полный CRUD) ,
  • Что такое формат исходных данных (если это некоторые СУБД, вы могли бы использовать Sqoop incremental load)
  • Насколько велика данные, которые вы должны загрузить


Я думаю, что ссылка, которую вы опубликовали, описывает процесс довольно хорошо, вы очень конкретно относитесь к используемым технологиям. Более общий способ описать это будет:

  1. Создать внешнюю таблицу на исходных данных,
  2. Append новые данные в таблицу назначения,
  3. Удалить дубликаты на основе уникального ключа или метки времени (Fe, используя GROUP. ОТ).

Я настоятельно рекомендую вам пройти через Hive doc и выяснить сами, как сделать каждый шаг :)

Приветствия,
Karol

0

«данные будут приходить в таблицу улей ежедневно» - является частью проглатывания данных. Вы можете использовать Sqoop Incremental Import для этого же. Два способа их кодирования.

(1) - добавлять, использовать, когда вы знаете, последнее значение, входя или

(2) --last модифицирована, используйте если у вас есть столбец DATE, который может быть использован для отслеживания вставки.

Для получения обновлений вы можете использовать внешние таблицы, как описано в общей ссылке.

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