Потоковая передача данных из двоичного журнала MySQL в Kinesis
У нас есть таблица с интенсивной записью (в AWS RDS MySQL) из устаревшей системы, и мы хотели бы передавать каждое событие записи (вставка или обновление) из этой таблицы в kinesis. Идея состоит в том, чтобы создать канал для разогрева кешей и обновления поисковых систем.
В настоящее время мы делаем это с помощью рудиментарной архитектуры опроса, в основном с использованием SQL, но идеальным вариантом было бы использование push-архитектуры, считывающей события непосредственно из журнала транзакций.
Кто-нибудь пробовал это? Любая предлагаемая архитектура?
3 ответа
Я работал с некоторыми клиентами, которые уже занимались этим в Oracle. Кажется также, что LinkedIn часто использует эту технику для потоковой передачи данных из баз данных в другое место. Они создали платформу под названием Databus для независимой реализации этого - https://github.com/linkedin/databus/wiki/Databus-for-MySQL.
В Github есть публичный проект, следуя принципам LinkedIn, который уже транслирует binlog из Mysql в Kinesis Streams - https://github.com/cmerrick/plainview
Если вы хотите вникнуть в мельчайшие подробности подхода LinkedIn, есть действительно хороший (и обширный) пост в блоге - https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying.
И последнее, но не менее важное, Yelp делает то же самое, но с Kafka - https://engineeringblog.yelp.com/2016/08/streaming-mysql-tables-in-real-time-to-kafka.html
Если не вдаваться в основы Kinesis Streams, ради краткости, если мы добавим Kinesis Streams в игру, я не понимаю, почему она не должна работать. На самом деле, он был построен для этого - журнал транзакций вашей базы данных - это поток событий. Заимствование выдержки из публичной документации Amazon Web Services: Amazon Kinesis Streams позволяет обрабатывать данные в режиме реального времени. С помощью Amazon Kinesis Streams вы можете непрерывно собирать данные по мере их генерирования и оперативно реагировать на важную информацию о вашем бизнесе и операциях.
Надеюсь это поможет.
Используйте сервис AWS Database Migration для потоковой передачи данных об изменениях в Amazon Kinesis Data Streams
Сервис aws DMS предлагает миграцию данных из базы данных SQL в kinesis.