2015-10-30 1 views
0

У нас было 5 лет данных в кластере, и мы ежедневно загружаем данные. Данные, которые ежедневно добавляются, могут содержать повторяющиеся данные, частично измененные данные и т. Д.Обработка инкрементных данных - Hadoop

1. Как обращаться с дублирующимися данными - следует обрабатывать как часть высокоуровневых программных интерфейсов свиньи, улья и т. Д. Или любых других альтернатив.

  1. Скажите, есть ли указ, чтобы узнать, что изменилось между двумя записями, заданными ключом, чтобы узнать строку.

Каков наилучший способ моделирования данных с использованием компонентов системы eco system.

ответ

0

Как обрабатывать повторяющиеся данные

Это очень трудно удалить дубликаты из HDFS необработанных данных, поэтому я думаю, ваш подход является правильным: удалить с помощью pig или hive при загрузке этих данных.

Скажите, есть ли указ, чтобы узнать, что изменилось между двумя записями, заданными ключом, чтобы узнать строку.

В этом случае вы имеете в виду, что две записи имеют один и тот же ключ?

Тогда какие изменения вы хотите захватить?

+0

спасибо за быстрый ответ. Мы хотели захватить, если изменилось поле, связанное с записью, и информировать заинтересованные стороны об этом изменении. – Nag

0

Когда вы говорите, что вам нужно удалить дубликаты, а также дельта между двумя записями, когда вы знаете ключ, у вас должны быть некоторые критерии, из которых данные должны быть удалены в случае частичных измененных данных.

В обоих сценариях вы можете иметь ручку ключа и логику записи для удаления дубликатов. Карта уменьшает, кажется, хороший выбор, учитывая параллелизм, производительность и возможность управления на основе ключей. В основном ваши требования могут быть обработаны в редукторе

+0

спасибо за быстрый ответ. вы имеете в виду, что работа по сокращению карты должна быть вызвана каждый раз, когда данные загружаются и обрабатываются перед хранением в hdfs. – Nag

+0

Ну карта уменьшает работу с данными, находящимися в hdf. Более общий способ - это sqoop it в hdfs из существующей базы данных, а затем использовать сокращение карты для выполнения анализа на нем. Я не уверен, что является источником для ваших данных. – Ramzy

+0

Я имею в виду, чтобы преобразовать данные процесса из hdfs, а затем сохранить их в hdfs после обработки (удаление дубликатов). Я искал любые абстракции высокого уровня, которые сокращают время разработки и тем самым сокращают время. – Nag

0

Посмотрите, подходит ли Sqoop-merge для вашего прецедента.

Из документа: Инструмент объединения позволяет объединить два набора данных, где записи в одном наборе данных должны перезаписывать записи более старого набора данных. Например, инкрементный импорт в режиме с последним изменением генерирует несколько наборов данных в формате HDFS, где в каждом наборе данных появляются последовательно новые данные. Инструмент слияния «сгладит» два набора данных в один, используя новейшие доступные записи для каждого первичного ключа.

+0

datasource - это xml-файлы, может обрабатывать дескриптор sqoop, что – Nag

+0

@srihay sqoop merge принимает первичный идентификатор набора данных и перезаписывает новое значение на старое. Теперь это значение может быть любым (XML, JSON, текст и т. Д.), –