2016-07-26 3 views
0

В связи с миграцией данных из RDBMS (oracle/teradata) в HDFS (HIVE) необходимо сравнить полный набор данных из набора RDBMS в набор данных HIVE, я понимаю, что приносят огромные данные из РСУБД/HIVE - это большие сетевые издержки, но это требование, я разработал базовую инфраструктуру java в eclipse, которая будет принимать исходные и целевые запросы (с ограниченными рядами) и делать бок о бок сравнение путем выборки RDBMS и RESEVE, но сделать это более полное подтверждение я должен сравнить ключи обеих систем и проверки дубликатов как в системе, вот вещи, я пытался до сих пор:Проверка данных двух гетерогенных систем в Java

  1. Инициализировал два HashMaps для RDBMS и один для HIVE, а затем взял PK в качестве ключевых и неключевых атрибутов в arraylist как значение. Теперь с двумя хэшмапами попытался сравнить ключи/значения между ними. Но загрузка двух наборов результатов и хэш-карт в ОЗУ снизит производительность.

  2. Пытался использовать базу данных REDIS в памяти для хранения пар ключ/значение, однако, поскольку я пытаюсь получить доступ к REDIS через Java-программу, не знаю, как использовать хед-файлы REDIS/хэш-коды так, как мы используем JAVA.

  3. Написал набор результатов в два разных текстовых файла, но запись файла и чтение/обработка занимает много времени.

Для кокетливой части данных из СУБД я делал вещи, которые упомянули here и here Я думаю, может быть, какой-то инструмент для этой работы, но я пытаюсь разработать что-то в OpenSource.

ответ

0

Имеются ли у ваших данных временные метки или любое возрастающее значение, которое может использоваться для заказа данных, или один дублирующий элемент из одного источника данных находится где угодно в другом источнике? Если есть что-то упорядочить данные (например, временную метку), вы можете использовать любую систему потоковой передачи и «просто» выполнять отдельный выбор. Однако требуется дополнительная информация о типе данных, с которыми вы работаете.

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