Значение данных зависит от времени. Обработка в режиме реального времени делает решения на основе данных точными и действенными за секунды или минуты, а не часы или дни. Сбор данных об изменениях (CDC) относится к процессу идентификации и регистрации изменений, внесенных в данные в базе данных, а затем к доставке этих изменений в режиме реального времени в нижестоящую систему. Фиксация всех изменений транзакций в исходной базе данных и перемещение их в целевую базу данных в режиме реального времени обеспечивает синхронизацию систем и помогает в сценариях использования аналитики в реальном времени и миграции базы данных с нулевым временем простоя. Вот несколько преимуществ CDC:
- Это устраняет необходимость в массовом обновлении загрузки и неудобных пакетных окнах, позволяя выполнять добавочную загрузку или потоковую передачу изменений данных в реальном времени в ваш целевой репозиторий.
- Это гарантирует синхронизацию данных в нескольких системах. Это особенно важно, если вы принимаете срочные решения в среде с высокой скоростью передачи данных.
Кафка Коннект — это компонент Apache Kafka с открытым исходным кодом, который работает как централизованный концентратор данных для простой интеграции данных между базами данных, хранилищами ключей и значений, поисковыми индексами и файловыми системами. Реестр схем AWS Glue позволяет централизованно обнаруживать, контролировать и развивать схемы потоков данных. Kafka Connect и Schema Registry интегрируются для сбора информации о схеме из соединителей. Kafka Connect предоставляет механизм преобразования данных из внутренних типов данных, используемых Kafka Connect, в типы данных, представленные в виде схемы Avro, Protobuf или JSON. AvroConverter, ProtobufConverter и JsonSchemaConverter автоматически регистрируют схемы, созданные соединителями Kafka (источник), которые передают данные в Kafka. Соединители (приемники), которые потребляют данные из Kafka, получают информацию о схеме в дополнение к данным для каждого сообщения. Это позволяет соединителям приемника знать структуру данных, чтобы предоставлять такие возможности, как поддержание схемы таблицы базы данных в каталоге данных.
В посте показано, как создать сквозной CDC с помощью Амазон МСК Коннект, управляемый AWS сервис для развертывания и запуска приложений Kafka Connect и AWS Glue Schema Registry, который позволяет централизованно обнаруживать, контролировать и развивать схемы потоков данных.
Обзор решения
На стороне производителя для этого примера мы выбираем MySQL-совместимый Амазон Аврора база данных в качестве источника данных, и у нас есть Дебезиум Соединитель MySQL для выполнения CDC. Соединитель Debezium постоянно отслеживает базы данных и отправляет изменения на уровне строк в тему Kafka. Соединитель извлекает схему из базы данных, чтобы сериализовать записи в двоичную форму. Если схемы еще нет в реестре, она будет зарегистрирована. Если схема существует, но сериализатор использует новую версию, реестр схем проверяет Режим совместимости схемы перед обновлением схемы. В этом решении мы используем режим обратной совместимости. Реестр схемы возвращает ошибку, если новая версия схемы несовместима с предыдущими версиями, и мы можем настроить Kafka Connect для отправки несовместимых сообщений в очередь недоставленных сообщений.
На стороне потребителя мы используем Простой сервис хранения Amazon (Amazon S3) коннектор приемника для десериализации записи и сохранения изменений в Amazon S3. Мы создаем и развертываем коннектор Debezium и приемник Amazon S3 с помощью MSK Connect.
Схема примера
Для этого поста мы используем следующую схему в качестве первой версии таблицы:
Предпосылки
Перед настройкой соединителей производителя и потребителя MSK нам необходимо сначала настроить источник данных, кластер MSK и новый реестр схемы. Мы предоставляем AWS CloudFormation шаблон для создания вспомогательных ресурсов, необходимых для решения:
- MySQL-совместимая база данных Aurora в качестве источника данных. Для выполнения CDC мы включаем двоичное ведение журнала в Группа параметров кластера БД.
- Кластер МСК. Для упрощения сетевого подключения мы используем один и тот же VPC для базы данных Aurora и кластера MSK.
- Два реестра схем для обработки схем для ключа сообщения и значения сообщения.
- Одно ведро S3 в качестве приемника данных.
- Для этой демонстрации необходимы подключаемые модули MSK Connect и рабочая конфигурация.
- один Эластичное вычислительное облако Amazon (Amazon EC2) для выполнения команд базы данных.
Чтобы настроить ресурсы в своей учетной записи AWS, выполните следующие действия в регионе AWS, который поддерживает Amazon MSK, MSK Connect и реестр AWS Glue Schema:
- Выберите Стек запуска:
- Выберите Следующая.
- Что касается Название стека, введите подходящее имя.
- Что касается Пароль базы данных, введите пароль, который вы хотите для пользователя базы данных.
- Остальные значения оставьте по умолчанию.
- Выберите Следующая.
- На следующей странице выберите Следующая.
- Просмотрите подробности на последней странице и выберите Я признаю, что AWS CloudFormation может создавать ресурсы IAM.
- Выберите Создать стек.
Пользовательский подключаемый модуль для исходного и целевого коннектора
Пользовательский подключаемый модуль — это набор файлов JAR, содержащих реализацию одного или нескольких соединителей, преобразований или преобразователей. Amazon MSK установит подключаемый модуль на рабочие процессы кластера MSK Connect, в котором работает соединитель. В рамках этой демонстрации для исходного соединителя мы используем открытый исходный код. JAR-файлы соединителя Debezium MySQL, а в качестве целевого соединителя мы используем лицензию сообщества Confluent. JAR-файлы коннектора приемника Amazon S3. Оба плагина также дополнены библиотеками для Сериализаторы и десериализаторы Avro реестра схем AWS Glue. Эти настраиваемые подключаемые модули уже созданы как часть шаблона CloudFormation, развернутого на предыдущем шаге.
Используйте реестр AWS Glue Schema с коннектором Debezium на MSK Connect в качестве производителя MSK.
Сначала мы развертываем исходный коннектор с помощью подключаемого модуля Debezium MySQL для потоковой передачи данных из Amazon Aurora, совместимая с MySQL, версия базу данных в Amazon MSK. Выполните следующие шаги:
- В консоли Amazon MSK на панели навигации в разделе МСК Коннект, выберите Соединители.
- Выберите Создать соединитель.
- Выберите Использовать существующий пользовательский плагин а затем выберите пользовательский плагин с именем, начинающимся
msk-blog-debezium-source-plugin
. - Выберите Следующая.
- Введите подходящее имя, например
debezium-mysql-connector
и необязательное описание. - Что касается Кластер Apache Kafka, выберите Кластер МСК и выберите кластер, созданный шаблоном CloudFormation.
- In Конфигурация разъема, удалите значения по умолчанию и используйте следующие пары "ключ-значение" конфигурации с соответствующими значениями:
- имя – Имя, используемое для соединителя.
- база данных.hostsname – Выход CloudFormation для Конечная точка базы данных.
- база данных.пользователь и база данных.пароль – Параметры, переданные в шаблоне CloudFormation.
- база данных.история.kafka.bootstrap.servers – Выход CloudFormation для Кафка Bootstrap.
- key.converter.region и value.converter.region – Ваш регион.
Некоторые из этих параметров являются общими и должны быть указаны для любого соединителя. Например:
- Connector.class — это Java-класс коннектора.
- tasks.max — максимальное количество задач, которые должны быть созданы для этого коннектора.
Некоторые настройки (database.*
, transforms.*
) относятся к соединителю Debezium MySQL. Ссылаться на Свойства конфигурации коннектора источника Debezium MySQL чтобы получить больше информации.
Некоторые настройки (key.converter.*
и value.converter.*
) специфичны для реестра схем. Мы используем AWSKafkaAvroConverter
из Библиотека реестра AWS Glue Schema как конвертер форматов. Чтобы настроить AWSKafkaAvroConverter
, мы используем значение свойств строковой константы в Константы AWSSchemaRegistry учебный класс:
key.converter
иvalue.converter
управлять форматом данных, которые будут записываться в Kafka для соединителей-источников или считываться из Kafka для соединителей-приемников. Мы используемAWSKafkaAvroConverter
для формата Авро.key.converter.registry.name
иvalue.converter.registry.name
определить, какой реестр схемы использовать.key.converter.compatibility
иvalue.converter.compatibility
определить модель совместимости.
Обратитесь к Использование Kafka Connect с реестром схемы AWS Glue чтобы получить больше информации.
- Далее настраиваем Емкость разъема. Мы можем выбрать Предоставлено и оставьте другие свойства по умолчанию
- Что касается Конфигурация рабочего, выберите пользовательскую рабочую конфигурацию с именем, начинающимся
msk-gsr-blog
созданный как часть шаблона CloudFormation. - Что касается Права доступа, использовать Управление идентификацией и доступом AWS (IAM) роль, созданная шаблоном CloudFormation
MSKConnectRole
. - Выберите Следующая.
- Что касается Безопасность, выберите значения по умолчанию.
- Выберите Следующая.
- Что касается Доставка журнала, наведите на Доставка в журналы Amazon CloudWatch и найдите группу журналов, созданную шаблоном CloudFormation (
msk-connector-logs
). - Выберите Следующая.
- Просмотрите настройки и выберите Создать соединитель.
Через несколько минут соединитель перейдет в рабочий статус.
Используйте реестр AWS Glue Schema с коннектором приемника Confluent S3, работающим на MSK Connect в качестве потребителя MSK.
Мы развертываем коннектор приемника с помощью подключаемого модуля приемника Confluent S3 для потоковой передачи данных из Amazon MSK в Amazon S3. Выполните следующие шаги:
-
- В консоли Amazon MSK на панели навигации в разделе МСК Коннект, выберите Соединители.
- Выберите Создать соединитель.
- Выберите Использовать существующий пользовательский плагин и выберите пользовательский плагин с именем, начинающимся
msk-blog-S3sink-plugin
. - Выберите Следующая.
- Введите подходящее имя, например
s3-sink-connector
и необязательное описание. - Что касается Кластер Apache Kafka, выберите Кластер МСК и выберите кластер, созданный шаблоном CloudFormation.
- In Конфигурация разъема, удалите предоставленные значения по умолчанию и используйте следующие пары "ключ-значение" конфигурации с соответствующими значениями:
-
- имя – То же имя, что и для соединителя.
- s3.bucket.name – Выход CloudFormation для Название ковша.
- s3.region, key.converter.region и value.converter.region – Ваш регион.
-
- Далее настраиваем Емкость разъема. Мы можем выбрать Предоставлено и оставьте другие свойства по умолчанию
- Что касается Конфигурация рабочего, выберите пользовательскую рабочую конфигурацию с именем, начинающимся
msk-gsr-blog
созданный как часть шаблона CloudFormation. - Что касается Права доступа, используйте роль IAM, сгенерированную шаблоном CloudFormation
MSKConnectRole
. - Выберите Следующая.
- Что касается Безопасность, выберите значения по умолчанию.
- Выберите Следующая.
- Что касается Доставка журнала, наведите на Доставка в журналы Amazon CloudWatch и найдите группу журналов, созданную шаблоном CloudFormation.
msk-connector-logs
. - Выберите Следующая.
- Просмотрите настройки и выберите Создать соединитель.
Через несколько минут коннектор работает.
Протестируйте сквозной поток журналов CDC.
Теперь, когда коннекторы приемника Debezium и S3 настроены и работают, выполните следующие шаги, чтобы протестировать сквозной CDC:
- На консоли Amazon EC2 перейдите к Группы безопасности стр.
- Выберите группу безопасности
ClientInstanceSecurityGroup
, а затем выбрать Изменить правила для входящих подключений. - Добавьте входящее правило, разрешающее SSH-подключение из вашей локальной сети.
- На Экземпляры страницу, выберите экземпляр
ClientInstance
, а затем выбрать Свяжитесь. - На Подключение инстанса EC2 , выберите Свяжитесь.
- Убедитесь, что ваш текущий рабочий каталог
/home/ec2-user
и у него есть файлыcreate_table.sql
,alter_table.sql
,initial_insert.sql
иinsert_data_with_new_column.sql
. - Создайте таблицу в своей базе данных MySQL, выполнив следующую команду (укажите имя хоста базы данных из выходных данных шаблона CloudFormation):
- При запросе пароля введите пароль из параметров шаблона CloudFormation.
- Вставьте некоторые образцы данных в таблицу с помощью следующей команды:
- При запросе пароля введите пароль из параметров шаблона CloudFormation.
- На консоли AWS Glue выберите Реестры схем в области навигации, затем выберите Схемы.
- Перейдите в
db1.sampledatabase.movies
версии 1, чтобы проверить новую схему, созданную для таблицы фильмов:
Для каждого раздела топика Kafka создается отдельная папка S3, и данные для топика записываются в эту папку.
- На консоли Amazon S3 проверьте наличие данных, записанных в формате Parquet, в папке для вашей темы Kafka.
Эволюция схемы
После того как исходная схема определена, приложениям может потребоваться ее дальнейшее развитие. Когда это происходит, для нижестоящих потребителей критически важно иметь возможность беспрепятственно обрабатывать данные, закодированные как по старой, так и по новой схеме. Режимы совместимости позволяют вам контролировать, как схемы могут или не могут меняться с течением времени. Эти режимы формируют контракт между приложениями, производящими и потребляющими данные. Подробную информацию о различных режимах совместимости, доступных в реестре AWS Glue Schema Registry, см. Реестр схем AWS Glue. В нашем примере мы используем обратную прочесываемость, чтобы гарантировать, что потребители могут читать как текущую, так и предыдущую версии схемы. Выполните следующие шаги:
- Добавьте новый столбец в таблицу, выполнив следующую команду:
- Вставьте новые данные в таблицу, выполнив следующую команду:
- На консоли AWS Glue выберите Реестры схем в области навигации, затем выберите Схемы.
- Перейти к схеме
db1.sampledatabase.movies
версии 2, чтобы проверить новую версию схемы, созданной для фильмов таблицы фильмов, включая столбец страны, который вы добавили:
- На консоли Amazon S3 проверьте наличие данных, записанных в формате Parquet, в папке темы Kafka.
Убирать
Чтобы предотвратить нежелательные списания средств с вашей учетной записи AWS, удалите ресурсы AWS, которые вы использовали в этом сообщении:
- В консоли Amazon S3 перейдите к корзине S3, созданной с помощью шаблона CloudFormation.
- Выберите все файлы и папки и выберите Удалить.
- Введите безвозвратно удалить как указано и выберите Удалить объекты.
- В консоли AWS CloudFormation удалите созданный стек.
- Подождите, пока статус стека изменится на DELETE_COMPLETE.
Заключение
В этом посте показано, как использовать Amazon MSK, MSK Connect и AWS Glue Schema Registry для создания потока журналов CDC и развития схем для потоков данных по мере изменения потребностей бизнеса. Вы можете применить этот шаблон архитектуры к другим источникам данных с другими соединителями Kafka. Для получения дополнительной информации см. Примеры подключения MSK.
Об авторе
Кальян Джанаки является старшим специалистом по большим данным и аналитике в Amazon Web Services. Он помогает клиентам проектировать и создавать высокомасштабируемые, производительные и безопасные облачные решения на AWS.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/big-data/build-an-end-to-end-change-data-capture-with-amazon-msk-connect-and-aws-glue-schema-registry/
- :является
- $UP
- 1
- 10
- 11
- 7
- 8
- a
- в состоянии
- О нас
- доступ
- Учетная запись
- точный
- признавать
- добавленный
- дополнение
- Все
- Позволяющий
- позволяет
- уже
- Amazon
- Amazon EC2
- Amazon Web Services
- аналитика
- и
- апаш
- Апач Кафка
- Приложения
- Применить
- соответствующий
- архитектура
- МЫ
- AS
- Aurora
- автоматически
- доступен
- AWS
- AWS CloudFormation
- Клей AWS
- BE
- до
- Преимущества
- между
- большой
- Big Data
- Начальная загрузка
- строить
- бизнес
- by
- CAN
- возможности
- захватить
- Захват
- случаев
- каталог
- CDC
- централизованная
- изменение
- изменения
- расходы
- проверка
- Проверки
- Выберите
- класс
- Кластер
- Column
- сообщество
- совместимость
- совместим
- полный
- компонент
- Вычисление
- Конфигурация
- Переход
- Свяжитесь
- связи
- Консоли
- постоянная
- потреблять
- потребитель
- Потребители
- непрерывно
- контракт
- контроль
- страна
- Создайте
- создали
- критической
- Текущий
- изготовленный на заказ
- Клиенты
- данным
- Интеграция данных
- управляемых данными
- База данных
- базы данных
- Дней
- решения
- По умолчанию
- по умолчанию
- определенный
- доставки
- Демо
- убивают
- демонстрирует
- развертывание
- развернуть
- описание
- назначение
- подробный
- подробнее
- различный
- направленный
- обнаружить
- не
- Падение
- каждый
- ликвидирует
- позволяет
- впритык
- обеспечивать
- обеспечивает
- Enter
- Окружающая среда
- ошибка
- особенно
- Эфир (ETH)
- Каждая
- развивается
- пример
- существующий
- существует
- несколько
- Поля
- Файл
- Файлы
- окончательный
- First
- после
- Что касается
- форма
- формат
- от
- порождать
- генерируется
- группы
- Группы
- обрабатывать
- Управляемость
- происходит
- Есть
- помощь
- помогает
- очень
- история
- кашель
- ЧАСЫ
- Как
- How To
- HTML
- HTTP
- HTTPS
- хаб
- IAM
- идентифицирующий
- Личность
- реализация
- важную
- in
- В том числе
- Индексы
- информация
- начальный
- устанавливать
- пример
- вместо
- интегрировать
- интеграции.
- в нашей внутренней среде,
- IT
- Java
- JPG
- JSON
- Кафка
- Основные
- Знать
- Оставлять
- библиотеки
- Лицензирована
- такое как
- загрузка
- погрузка
- локальным
- Длинное
- сделанный
- ДЕЛАЕТ
- Создание
- управляемого
- мастер
- Макс
- максимальный
- механизм
- сообщение
- Сообщения
- может быть
- минут
- модель
- Режимы
- Мониторы
- БОЛЕЕ
- Кино
- перемещение
- с разными
- MySQL
- имя
- Откройте
- Навигация
- Необходимость
- необходимый
- потребности
- сеть
- Новые
- следующий
- номер
- of
- Старый
- on
- ONE
- с открытым исходным кодом
- Другое
- выходной
- страница
- пар
- хлеб
- параметр
- параметры
- часть
- Прошло
- Пароль
- шаблон
- выполнять
- постоянно
- выбирать
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- плагин
- плагины
- После
- предотвращать
- предыдущий
- процесс
- обработка
- производит
- производитель
- свойства
- обеспечивать
- при условии
- приводит
- Читать
- реальные
- реального времени
- Получать
- запись
- учет
- понимается
- область
- зарегистрироваться
- зарегистрированный
- реестра
- хранилище
- представленный
- Полезные ресурсы
- Возвращает
- Роли
- Правило
- Run
- Бег
- то же
- масштабируемые
- легко
- Поиск
- секунды
- безопасный
- безопасность
- старший
- чувствительный
- отдельный
- обслуживание
- Услуги
- набор
- настройки
- должен
- просто
- упростить
- Решение
- Решения
- некоторые
- Источник
- Источники
- специалист
- конкретный
- указанный
- стек
- Начало
- Статус:
- Шаг
- Шаги
- диск
- магазин
- магазины
- поток
- потоковый
- потоки
- Структура
- подходящее
- поддержки
- Поддержка
- синхронизации.
- система
- системы
- ТАБЛИЦЫ
- цель
- задачи
- шаблон
- тестXNUMX
- который
- Ассоциация
- Источник
- Их
- Эти
- время
- чувствительный ко времени
- Название
- в
- тема
- Сделки
- ОЧЕРЕДЬ
- Типы
- под
- нежелательный
- обновление
- использование
- Информация о пользователе
- ценностное
- Наши ценности
- версия
- Web
- веб-сервисы
- который
- будете
- окна
- работник
- рабочие
- работает
- работает
- письменный
- ВАШЕ
- зефирнет