Каковы общие процедуры для решения задач интеграции данных в реальном проекте больших данных на основе HDFS?
В настоящее время я работаю над проектом интеллектуального анализа данных, который обрабатывает данные, хранящиеся на hdfs
, Первым делом для этого проекта является интеграция данных из разных баз данных или таблиц в единые таблицы, хранящиеся в hdfs
,
Прочитав " Предварительную обработку данных в интеллектуальном анализе данных " Сальвадора Гарсии, Хулиана Луенго и Франциско Эрреры, я узнал, что в интеграции данных существует множество проблем или проблем, таких как следующие:
- Резервирование атрибутов:
- Пример: для
Table A
имеет атрибутindex
, а такжеTable B
имеет атрибутidentifier
в то время как эти два атрибута представляют одно и то же значение одного и того же объекта. Поэтому, если мы просто обработаем эти две таблицы с помощью наивного соединения, в объединенной таблице могут существовать избыточные атрибуты. - Решение, предлагаемое книгой: сравните
meta-data
из этих полей, чтобы устранить лишние.
- Пример: для
- Соотношение атрибутов:
- Пример: для
Table A
имеет атрибутsalary_per_month
, а такжеTable B
имеет атрибутsalary_per_year
, Но эти два атрибута взаимосвязаны, иsalary_per_month
могу сделать выводsalary_per_year
, Затем, как и в предыдущих случаях, создаются избыточные атрибуты. - Решение, предложенное в книге: применить корреляционный тест или критерий хи-квадрат, чтобы определить взаимосвязь между различными полями.
- Пример: для
Наряду с вышеупомянутыми проблемами, возможны многие случаи (только краткое описание без конкретных примеров):
- Случай 1:
- Описание: Интегрировать
table A
из MongoDB иtable B
из MySQL в одну таблицу, хранящуюся в hdfs через вид операции соединения. - Примечание. Этот случай встречается не часто, но все же возможен.
- Описание: Интегрировать
- Случай 2:
- Описание: Интегрировать
table A
а такжеB
из MongoDB (или MySQL) в одну таблицу, хранящуюся в hdfs посредством операции соединения. - Примечание: в этом случае используется только один тип базы данных.
- Описание: Интегрировать
Выше это все проблемы и возможные ситуации. Я понимаю основные понятия для проблем, описанных выше, но я не знаю, как решить вышеуказанные проблемы в реальном проекте, особенно на основе hdfs
, Кажется, что такие проблемы, как избыточность атрибутов и корреляция, могут быть решены только в том случае, когда я знаю, как создаются таблицы, так называемые жестко закодированные. Могу ли я решить их автоматически с помощью API, предоставляемого экосистемой Hadoop?
Опять же, поскольку возможны многие случаи, я хочу знать в интеграции данных, каковы общие шаги, которые следует выполнить, какие общие инструменты использовать в реальном проекте больших данных, где предварительная обработка данных очень важна? Любое руководство будет полезно для меня.
1 ответ
Для запросов полиглота (выборка данных из нескольких источников данных) я предпочитаю Spark или Drill.
Используя эти инструменты, вы можете выполнять объединения и другую агрегацию в памяти (если данные не слишком велики)
Вы можете легко записать вывод в HDFS в желаемом формате файла.
Проблемы, такие как управление транзакциями, все еще существуют. Но эти механизмы запросов решают многие проблемы легко.