Change Data Capture example (Debezium + StreamSets)
Запуск
- Выполните в консоли
docker-compose up
. В результате будут развернуты докер-контейнеры со всеми необходимыми сервисами. - Для запуска коннектора Debezium выполните в консоли
make register-postgres
. - Чтобы увидеть логи изменений в базе, выполните
make create-consumer
. Это запустит kafka consumer, который подключится к топику, содержащему логи.
Загрузка логов CDC в Hadoop
- Зайдите в StreamSets по адресу [localhost:18630]. Логин/пароль: admin/admin.
- Пропустите первый преветственный экран и создайте новый пайплайн, нажав Create New Pipeline.
- Перед вами откроется окно редактирования пайплайна. Создайте пайплайн для загрузки логов CDC в Hadoop. Для этого вам понадобятся:
- Kafka Consumer
- Hadoop FS
- Остальные операторы выбирайте на свое усмотрение
Дополнительная информация:
- StreamSets tutorial
- Пример StreamSets + Kafka
- Адрес Kafka -
kafka:9092
- Адрес zookeeper -
zookeeper:2181
- Адрес Hadoop -
hdfs://namenode:9000
Требования
- Пайплайн должен загружать данные об изменениях таблицы inventory.customers в Hadoop
- Пайплайн должен сохранять всю историю изменений, включая операции INSERT, UPDATE, DELETE, а также проставлять тип операции в поле act - 'I'/'U'/'D'
- Для операций DELETE должен проставляться флаг is_deleted = true
Критерий оценки
- Пайплайн записывает все записи в Hadoop в формате Avro в плоской структуре, которая содержит все поля исходной таблицы плюс специальные поля, описанные в требованиях (в качестве подтверждения - скриншот работающего пайплайна) - 3 балла
- Пайплайн обрабатывает все типы операций (в качестве подтверждения - описание алгоритма обработки каждой из операций с указанием использованных операторов StreamSets) - 1 балл
- Для операций DELETE проставляется флаг is_deleted (в качестве подтверждения - скриншот вкладки настроек соответствующего оператора StreamSets) - 1 балл
Дополнительная задача
Реализовать загрузку снепшота таблицы inventory.customers с помощью Spark в Hadoop и прислать ссылку на репозиторий с кодом.