Как кормить пришлось oop периодически - PullRequest
1 голос
/ 07 марта 2020

Моя компания генерирует около 6 миллионов записей в день, и я видел, что oop является хорошим решением для обработки больших объемов данных. Я нашел, как загрузить данные из mysql, но он экспортирует полную базу данных. Есть ли способ сохранить данные syn c между моей рабочей mysql БД и Had oop?

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Одним из лучших решений, которое вы можете использовать, является Debezium. Debezium построен на основе Apache Kafka Connect API и предоставляет коннекторы, которые контролируют определенные c базы данных.

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

Архитектура будет выглядеть примерно так:

MySQL -> Debezium (плагин Kafka Connect) -> Kafka Topi c -> HDFS Sink

Вы можете найти больше информации и документации о Debezium Здесь .

Кроме того, Apache NiFi имеет процессор с именем CaptureChange MySQL, вы можете создать поток NiFi, как показано ниже:

MySQL -> CaptureChange MySQL (Процессор) -> PutHDFS (Процессор)

Вы можете узнать больше о CaptureChange MySQL Здесь .

0 голосов
/ 11 марта 2020

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

Дебезий:

Дебезий является распределенной платформой, развернутой через Apache Kafka Connect, которая может помочь в постоянном мониторинге различных баз данных вашей системы и позволяет приложениям транслировать каждое изменение на уровне строк в том же порядке, в котором они были зафиксированы в базе данных. Он превращает ваши существующие базы данных в потоки событий, благодаря чему приложения могут видеть и соответственно реагировать на каждое изменение уровня строки в базах данных.

Kafka Connect - это инфраструктура и среда выполнения для реализации и эксплуатации коннекторов источника, таких как Debezium, которые вводят данные в Kafka и коннекторы приемника, которые распространяют данные из тем Kafka в другие системы.

В случае MySQL, Разъем Дебезиума *1016* может помочь в мониторинге и записи всех изменений на уровне строк в базах данных на сервере MySQL. Все события для каждой таблицы записываются в отдельную топику Kafka c, и клиентские приложения могут читать разделы Kafka, соответствующие таблицам базы данных, в которых он заинтересован, и реагировать на каждое событие уровня строки, которое оно видит в этих темах. в соответствии с требованием.

Как только интересующие вас данные будут доступны в темах, можно использовать соединитель *1020* Kafka Connect HDFS Sink для экспорта данных из тем Kafka в файлы HDFS различных типов. форматирует в соответствии с вашим вариантом использования или требованием и интегрируется с Hive и когда он включен. Этот разъем помогает приложению периодически запрашивать данные у Apache Kafka и записывать их в HDFS . Этот соединитель также автоматически создает внешнюю секционированную таблицу Hive для каждого Kafka topi c и обновляет таблицу в соответствии с доступными данными в HDFS.

Демон Максвелла:

Демон Maxwell - это приложение CD C (Change Data Capture), которое читает MySQL binlogs (события из базы данных MyQ SQL) и записывает обновления строк как JSON на Kafka или другие потоковые платформы. Как только интересующие вас данные становятся доступны в темах kafka, можно использовать коннектор Kafka Connect HDFS Sink для экспорта данных из тем Kafka в файлы HDFS.

NiFi :

Apache NiFi помогает автоматизировать обмен данными между системами. Apache NiFi CD C (изменение сбора данных) также использует MySQL журналы бинов (через CaptureChange MySQL) для создания копии таблицы и обеспечения ее синхронизации c с изменениями уровня строки в источнике. Этот inturn может использоваться NiFi PutHDFS для записи данных в HDFS.

...