Цінність даних залежить від часу. Обробка в режимі реального часу робить рішення на основі даних точними та дієвими за секунди чи хвилини замість годин чи днів. Запис змінених даних (CDC) відноситься до процесу ідентифікації та фіксації змін, внесених до даних у базі даних, а потім доставки цих змін у режимі реального часу до системи, що йде далі. Запис кожної зміни транзакцій у вихідній базі даних і переміщення їх до цільової бази даних у режимі реального часу забезпечує синхронізацію систем і допомагає в аналітиці в режимі реального часу та міграції бази даних без простоїв. Нижче наведено кілька переваг CDC:
- Це усуває потребу в оновленні масового завантаження та незручних пакетних вікнах, дозволяючи поступове завантаження або потокову передачу змін даних у цільове сховище в реальному часі.
- Це забезпечує синхронізацію даних у кількох системах. Це особливо важливо, якщо ви приймаєте чутливі до часу рішення в середовищі високошвидкісної передачі даних.
Kafka Connect це компонент Apache Kafka з відкритим вихідним кодом, який працює як централізований центр даних для простої інтеграції даних між базами даних, сховищами ключ-значення, пошуковими індексами та файловими системами. The Реєстр схем AWS Glue дозволяє централізовано виявляти, контролювати та розвивати схеми потоку даних. Kafka Connect і Schema Registry інтегровані для отримання інформації про схему з конекторів. Kafka Connect надає механізм для перетворення даних із внутрішніх типів даних, які використовуються Kafka Connect, у типи даних, представлені як Avro, Protobuf або JSON Schema. AvroConverter, ProtobufConverter і JsonSchemaConverter автоматично реєструють схеми, згенеровані конекторами Kafka (джерело), які створюють дані для Kafka. Конектори (приймачі), які споживають дані з Kafka, отримують інформацію про схему на додаток до даних для кожного повідомлення. Це дозволяє з’єднувачам-приймачам знати структуру даних, щоб забезпечити такі можливості, як підтримка схеми таблиці бази даних у каталозі даних.
Пост демонструє, як створити наскрізний CDC за допомогою Amazon MSK Connect, керований сервіс AWS для розгортання та запуску програм Kafka Connect і AWS Glue Schema Registry, який дозволяє централізовано виявляти, контролювати та розвивати схеми потоку даних.
Огляд рішення
З боку виробника для цього прикладу ми вибираємо MySQL-сумісний Амазонська Аврора база даних як джерело даних, і ми маємо a дебезій Конектор MySQL для виконання CDC. Конектор Debezium постійно стежить за базами даних і надсилає зміни на рівні рядків до теми Kafka. З’єднувач отримує схему з бази даних для серіалізації записів у двійкову форму. Якщо схема ще не існує в реєстрі, схема буде зареєстрована. Якщо схема існує, але серіалізатор використовує нову версію, реєстр схеми перевіряє Режим сумісності схеми перед оновленням схеми. У цьому рішенні ми використовуємо режим зворотної сумісності. Реєстр схеми повертає помилку, якщо нова версія схеми не є зворотно сумісною, і ми можемо налаштувати Kafka Connect для надсилання несумісних повідомлень до черги мертвих листів.
З боку споживачів ми використовуємо Служба простого зберігання Amazon (Amazon S3) роз’єм приймача для десеріалізації запису та збереження змін до Amazon S3. Ми створюємо та розгортаємо конектор Debezium і приймач Amazon S3 за допомогою MSK Connect.
Приклад схеми
Для цієї публікації ми використовуємо таку схему як першу версію таблиці:
Передумови
Перш ніж налаштовувати конектори виробника та споживача MSK, нам потрібно спочатку налаштувати джерело даних, кластер MSK і новий реєстр схем. Ми надаємо AWS CloudFormation шаблон для створення допоміжних ресурсів, необхідних для вирішення:
- База даних Aurora, сумісна з MySQL, як джерело даних. Щоб виконати CDC, ми вмикаємо двійкове журналювання в Група параметрів кластера БД.
- Кластер MSK. Щоб спростити підключення до мережі, ми використовуємо той самий VPC для бази даних Aurora та кластера MSK.
- Два реєстри схем для обробки схем для ключа та значення повідомлення.
- Одне відро S3 як приймач даних.
- Для цієї демонстрації необхідні плагіни MSK Connect і робоча конфігурація.
- Один Обчислювальна хмара Amazon Elastic (Amazon EC2) для запуску команд бази даних.
Щоб налаштувати ресурси у своєму обліковому записі AWS, виконайте такі дії в регіоні AWS, який підтримує Amazon MSK, MSK Connect і реєстр AWS Glue Schema Registry:
- Вибирати Запустити стек:
- Вибирати МАЙБУТНІ.
- для Назва стека, введіть відповідне ім'я.
- для Пароль бази даних, введіть потрібний пароль для користувача бази даних.
- Зберегти інші значення за замовчуванням.
- Вибирати МАЙБУТНІ.
- На наступній сторінці виберіть МАЙБУТНІ.
- Перегляньте деталі на останній сторінці та виберіть Я визнаю, що AWS CloudFormation може створювати ресурси IAM.
- Вибирати Створити стек.
Спеціальний плагін для з’єднувача джерела та призначення
Користувацький плагін — це набір файлів JAR, які містять реалізацію одного або кількох конекторів, трансформацій або конвертерів. Amazon MSK встановить плагін на робочих кластері MSK Connect, де запущено конектор. У рамках цієї демонстрації для вихідного конектора ми використовуємо відкритий код JAR-файли конектора Debezium MySQL, а для конектора призначення ми використовуємо ліцензію спільноти Confluent JAR-роз’єм для раковини Amazon S3. До обох плагінів також додано бібліотеки для Серіалізатори та десеріалізатори Avro реєстру AWS Glue Schema Registry. Ці спеціальні плагіни вже створено як частину шаблону CloudFormation, розгорнутого на попередньому кроці.
Використовуйте AWS Glue Schema Registry з конектором Debezium на MSK Connect як виробника MSK
Спочатку ми розгортаємо вихідний конектор за допомогою плагіна Debezium MySQL для потокової передачі даних із Amazon Aurora MySQL-сумісне видання бази даних до Amazon MSK. Виконайте наступні дії:
- На консолі Amazon MSK на панелі навігації під MSK Connectвиберіть Роз'єми.
- Вибирати Створити конектор.
- Вибирати Використовуйте наявний спеціальний плагін а потім виберіть спеціальний плагін, назва якого починається
msk-blog-debezium-source-plugin
. - Вибирати МАЙБУТНІ.
- Введіть відповідне ім'я, наприклад
debezium-mysql-connector
і додатковий опис. - для Кластер Apache Kafkaвиберіть MSK кластер і виберіть кластер, створений шаблоном CloudFormation.
- In Конфігурація роз'єму, видаліть значення за замовчуванням і використовуйте такі пари ключ-значення конфігурації з відповідними значеннями:
- ім'я – Ім’я, що використовується для з’єднувача.
- database.hostsname – Вихід CloudFormation для Кінцева точка бази даних.
- database.user і database.password – Параметри, передані в шаблоні CloudFormation.
- database.history.kafka.bootstrap.servers – Вихід CloudFormation для Kafka 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
, ми використовуємо значення властивостей рядкової константи в AWSSchemaRegistryConstants клас:
key.converter
таvalue.converter
керуйте форматом даних, які будуть записані в Kafka для вихідних з’єднувачів або зчитані з Kafka для з’єднувачів-приймачів. Ми використовуємоAWSKafkaAvroConverter
для формату Avro.key.converter.registry.name
таvalue.converter.registry.name
визначте, який реєстр схем використовувати.key.converter.compatibility
таvalue.converter.compatibility
визначити модель сумісності.
Відноситься до Використання Kafka Connect із AWS Glue Schema Registry для отримання додаткової інформації.
- Далі налаштовуємо Ємність роз'єму. Ми можемо вибирати Забезпечено і залишити інші властивості за замовчуванням
- для Робоча конфігураціявиберіть спеціальну робочу конфігурацію, починаючи з назви
msk-gsr-blog
створений як частина шаблону CloudFormation. - для Дозволи доступу, використовувати Управління ідентифікацією та доступом AWS (IAM), створена шаблоном CloudFormation
MSKConnectRole
. - Вибирати МАЙБУТНІ.
- для Безпека, виберіть значення за замовчуванням.
- Вибирати МАЙБУТНІ.
- для Доставка колодвиберіть Доставити в Amazon CloudWatch Logs і знайдіть групу журналів, створену шаблоном CloudFormation (
msk-connector-logs
). - Вибирати МАЙБУТНІ.
- Перегляньте налаштування та виберіть Створити конектор.
Через кілька хвилин роз’єм переходить у робочий стан.
Використовуйте реєстр AWS Glue Schema Registry із конектором приймача Confluent S3, що працює на MSK Connect як споживач MSK
Ми розгортаємо конектор приймача за допомогою плагіна приймача Confluent S3 для потокової передачі даних з Amazon MSK на Amazon S3. Виконайте наступні дії:
-
- На консолі Amazon MSK на панелі навігації під MSK Connectвиберіть Роз'єми.
- Вибирати Створити конектор.
- Вибирати Використовуйте наявний спеціальний плагін і виберіть спеціальний плагін, назва якого починається
msk-blog-S3sink-plugin
. - Вибирати МАЙБУТНІ.
- Введіть відповідне ім'я, наприклад
s3-sink-connector
і додатковий опис. - для Кластер Apache Kafkaвиберіть MSK кластер і виберіть кластер, створений шаблоном CloudFormation.
- In Конфігурація роз'єму, видаліть надані значення за замовчуванням і використайте такі пари ключ-значення конфігурації з відповідними значеннями:
-
- ім'я – Те саме ім’я, що використовується для роз’єму.
- s3.bucket.name – Вихід CloudFormation для Назва відра.
- s3.region, key.converter.region і value.converter.region – Ваш регіон.
-
- Далі налаштовуємо Ємність роз'єму. Ми можемо вибирати Забезпечено і залишити інші властивості за замовчуванням
- для Робоча конфігураціявиберіть спеціальну робочу конфігурацію, починаючи з назви
msk-gsr-blog
створений як частина шаблону CloudFormation. - для Дозволи доступу, використовувати роль IAM, згенеровану шаблоном CloudFormation
MSKConnectRole
. - Вибирати МАЙБУТНІ.
- для Безпека, виберіть значення за замовчуванням.
- Вибирати МАЙБУТНІ.
- для Доставка колодвиберіть Доставити в Amazon CloudWatch Logs і знайдіть групу журналів, створену шаблоном CloudFormation
msk-connector-logs
. - Вибирати МАЙБУТНІ.
- Перегляньте налаштування та виберіть Створити конектор.
Через кілька хвилин роз’єм працює.
Перевірте наскрізний потік журналу CDC
Тепер, коли конектори Debezium і S3 запущені та працюють, виконайте наступні кроки, щоб перевірити наскрізний CDC:
- На консолі Amazon EC2 перейдіть до Групи безпеки стр.
- Виберіть групу безпеки
ClientInstanceSecurityGroup
І вибирай Редагувати вхідні правила. - Додайте вхідне правило, яке дозволяє SSH-з’єднання з локальної мережі.
- на Примірники виберіть екземпляр
ClientInstance
І вибирай З'єднуватися. - на EC2 Instance Connect вкладку, виберіть З'єднуватися.
- Переконайтеся, що ваш поточний робочий каталог є
/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, див Реєстр схем 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 Connect.
Про автора
Калян Джанакі є старшим спеціалістом з аналітики та великих даних Amazon Web Services. Він допомагає клієнтам проектувати та створювати високомасштабовані, продуктивні та безпечні хмарні рішення на AWS.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: 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
- аналітика
- та
- Apache
- Апач Кафка
- застосування
- Застосовувати
- відповідний
- архітектура
- ЕСТЬ
- AS
- Аврора
- автоматично
- доступний
- AWS
- AWS CloudFormation
- Клей AWS
- BE
- перед тим
- Переваги
- між
- Великий
- Великий даних
- Bootstrap
- будувати
- бізнес
- by
- CAN
- можливості
- захоплення
- захопивши
- випадків
- каталог
- CDC
- централізована
- зміна
- Зміни
- вантажі
- перевірка
- Перевірки
- Вибирати
- клас
- кластер
- Колонка
- співтовариство
- сумісність
- сумісний
- повний
- компонент
- обчислення
- конфігурація
- Перехід
- З'єднуватися
- зв'язку
- Консоль
- постійна
- споживати
- споживач
- Споживачі
- постійно
- контракт
- контроль
- країна
- створювати
- створений
- критичний
- Поточний
- виготовлений на замовлення
- Клієнти
- дані
- інтеграція даних
- керовані даними
- Database
- базами даних
- Днів
- рішення
- дефолт
- за замовчуванням
- певний
- надання
- Демонстрація
- продемонстрований
- демонструє
- розгортання
- розгорнути
- description
- призначення
- докладно
- деталі
- різний
- відкрити
- Ні
- Падіння
- кожен
- Усуває
- дозволяє
- кінець в кінець
- забезпечувати
- гарантує
- Що натомість? Створіть віртуальну версію себе у
- Навколишнє середовище
- помилка
- особливо
- Ефір (ETH)
- Кожен
- еволюціонувати
- приклад
- існуючий
- існує
- кілька
- Поля
- філе
- Файли
- остаточний
- Перший
- після
- для
- форма
- формат
- від
- породжувати
- генерується
- Group
- Групи
- обробляти
- Обробка
- відбувається
- Мати
- допомога
- допомагає
- дуже
- історія
- господар
- ГОДИННИК
- Як
- How To
- HTML
- HTTP
- HTTPS
- Концентратор
- IAM
- ідентифікує
- Особистість
- реалізація
- важливо
- in
- У тому числі
- покажчики
- інформація
- початковий
- встановлювати
- екземпляр
- замість
- інтегрувати
- інтеграція
- внутрішній
- IT
- Java
- JPG
- json
- кафка
- ключ
- Знати
- Залишати
- libraries
- Ліцензований
- як
- загрузка
- погрузка
- місцевий
- Довго
- made
- РОБОТИ
- Робить
- вдалося
- майстер
- Макс
- максимальний
- механізм
- повідомлення
- повідомлення
- може бути
- протокол
- модель
- Режими
- монітори
- більше
- кіно
- переміщення
- множинний
- MySQL
- ім'я
- Переміщення
- навігація
- Необхідність
- необхідний
- потреби
- мережу
- Нові
- наступний
- номер
- of
- Старий
- on
- ONE
- з відкритим вихідним кодом
- Інше
- вихід
- сторінка
- пар
- pane
- параметр
- параметри
- частина
- Пройшов
- Пароль
- Викрійки
- виконувати
- постійно
- вибирати
- plato
- Інформація про дані Платона
- PlatoData
- підключати
- plugins
- пошта
- запобігати
- попередній
- процес
- обробка
- виробляти
- виробник
- властивості
- забезпечувати
- за умови
- забезпечує
- Читати
- реальний
- реального часу
- отримати
- запис
- облік
- відноситься
- регіон
- реєструвати
- зареєстрований
- реєстру
- Сховище
- представлений
- ресурси
- Умови повернення
- Роль
- Правило
- прогін
- біг
- то ж
- масштабовані
- плавно
- Пошук
- seconds
- безпечний
- безпеку
- старший
- чутливий
- окремий
- обслуговування
- Послуги
- комплект
- налаштування
- Повинен
- простий
- спростити
- рішення
- Рішення
- деякі
- Source
- Джерела
- спеціаліст
- конкретний
- зазначений
- стек
- Починаючи
- Статус
- Крок
- заходи
- зберігання
- зберігати
- магазинів
- потік
- потоковий
- потоки
- структура
- підходящий
- Підтримуючий
- Опори
- синхронізація.
- система
- Systems
- таблиця
- Мета
- завдання
- шаблон
- тест
- Що
- Команда
- Джерело
- Їх
- Ці
- час
- чутливий до часу
- назва
- до
- тема
- Transactions
- ПЕРЕГЛЯД
- Типи
- при
- небажаний
- оновлення
- використання
- користувач
- значення
- Цінності
- версія
- Web
- веб-сервіси
- який
- волі
- windows
- з
- робочий
- робочі
- робочий
- працює
- письмовий
- вашу
- зефірнет