Kafka Connect — это инструмент, который помогает нам передавать данные из одного места в другое. Например, если у вас есть веб-сайт и вы хотите перенести пользовательские данные в другое место для анализа, вы можете использовать Kafka Connect для выполнения этой задачи.
Kafka Connect изиспользоватьочень просто。Имеет две основные концепции:source и sink
。Source Является ли компонент, который считывает данные из источника данных, приемника? Компонент, который записывает данные в целевую систему. использовать Kafka Подключитесь, вам просто нужно настроить его source и sink Соответствующая информация позволяет автоматически переносить данные из одного места в другое.
При использовании Kafka Connect для организации потоков данных необходимо учитывать несколько важных концепций:
Kafka Connect Соединитель определяет, куда и откуда следует копировать данные. Экземпляр соединителя — это логическое задание, отвечающее за управление Kafka и копирование данных между другой системой. Все классы, реализованные или используемые соединителем, определяются в подключаемом модуле соединителя. Экземпляры соединителя и подключаемые модули соединителя можно называть «соединителями».
Kafka Connect упрощает потоковую передачу данных из нескольких источников данных в Kafka и из Kafka в несколько пунктов назначения. Kafka Connect имеет сотни различных соединителей. Среди наиболее популярных:
Более подробная информация об этих разъемах следующая:
Коннектор РСУБД: используется для подключения данных из реляционных баз данных (таких как Oracle, SQL Server, DB2, Postgres и MySQL) и записать их в указанную тему в кластере Kafka или прочитать данные из указанной темы в кластере Kafka и записать их в реляционную библиотеку данных.
Cloud Object Коннектор магазинов: используется для загрузки данных из облачных хранилищ объектов (например, Amazon). S3、Azure Blob StorageиGoogle Cloud Storage) и записать их в указанную тему в кластере Kafka или прочитать данные из указанной темы в кластере Kafka и записать их в облачное объектное хранилище.
Message соединитель очередей: используется для подключения сообщений из очередей сообщений (таких как ActiveMQ, IBM MQиRabbitMQ) и записать его в указанную тему в кластере Kafka, либо прочитать элемент из указанной темы в кластере Kafka и записать его в очередь сообщений.
NoSQL and document Соединитель магазинов: используется для чтения данных из библиотеки данных NoSQL (например, Elasticsearch, MongoDB и Cassandra) и записи их в указанную тему в кластере Kafka или для чтения данных из указанной темы в кластере Kafka и записи их в Данные NoSQL в библиотеке.
Cloud data Коннектор хранилищ: используется для загрузки данных из облачных хранилищ данных (таких как Snowflake, Google BigQueryиAmazon Чтение данных из Redshift) и запись их в указанную тему в кластере Kafka или чтение данных из указанной темы в кластере Kafka и запись их в облачное хранилище данных.
В дополнение к популярным коннекторам, упомянутым выше, Kafka ConnectТакже поддерживает множество другихданныеисточники Цель,включать:
Эти соединители позволяют Kafka Connect стать гибким, масштабируемым конвейером данных, который легко передает данные в Kafka из различных источников и в различные места назначения.
Задачи являются основным компонентом модели данных Kafka Connect и используются для координации фактического процесса репликации данных. Каждый экземпляр коннектора координирует набор задач, отвечающих за копирование данных из источника в место назначения.
Kafka Connect обеспечивает встроенную поддержку параллелизма и масштабируемости, позволяя соединителю разбивать одно задание на несколько задач. Эти задачи не сохраняют состояние и не хранят информацию о состоянии локально. Вместо этого состояние задачи сохраняется в В Кафке есть две специальные темы config.storage.topic и status.storage.topic, которые управляются соответствующими коннекторами.
Сохраняя статус задачи в Kafka, Kafka Connect обеспечивает эластичные и масштабируемые конвейеры данных. Это означает, что задачи можно запускать, останавливать или перезапускать в любое время без потери информации о состоянии. Кроме того, поскольку статус задачи хранится в Kafka, его можно легко Обмен информацией о состоянии между экземплярами Connect,тем самым достигается высокая доступностьиотказоустойчивость。
Конвертеры — это механизм в Kafka Connect для преобразования данных между системами, отправляющими или получающими данные. Они преобразуют данные из одного формата в другой для передачи между различными системами.
В Kafka Connect данные обычно передаются в виде массивов байтов. Преобразователи отвечают за сериализацию объектов Java в массивы байтов и десериализацию массивов байтов в объекты Java. Таким образом, данные можно передавать между различными системами, не беспокоясь о проблемах совместимости форматов данных.
Конвертер Kafka Connect JSON, конвертер Avro и конвертер Protobuf и т. д. Эти преобразователи поддерживают несколько форматов данных и их можно легко настроить ииспользовать.
Кроме того, Kafka Connect также поддерживает пользовательские конвертеры.,Пользователи могут создавать свои собственные преобразователи для удовлетворения конкретных потребностей. Пользовательские конвертеры обычно должны реализовывать интерфейс org.apache.kafka.connect.storage.Converter.,И обеспечить реализацию методов сериализации и десериализации.
Короче говоря, конвертеры — это очень полезный механизм в Kafka Connect, который помогает передавать данные между разными системами и конвертировать форматы данных.
Превращает Кафку Connect — это механизм изменения сообщений, который применяет простую логику к каждому сообщению, созданному соединителем или отправленному на него. Преобразования обычно используются в таких сценариях, как очистка данных, преобразование данных и улучшение данных.
Преобразования позволяют применять к каждому сообщению ряд операций преобразования, таких как удаление полей, переименование полей, добавление меток времени или изменение типов данных. Преобразования обычно состоят из набора преобразователей, каждый из которых отвечает за выполнение определенной операции преобразования.
Kafka Connect предоставляет множество встроенных конвертеров.,Например, ExtractField, TimestampConverter иValueToKey и т.д. также,Пользовательские преобразователи также могут быть написаны для удовлетворения конкретных потребностей.
Суммируя,Превращает Кафку Очень полезный механизм в Коннекте.,Это может помочь изменить структуру и содержание сообщения.,Это позволяет выполнять такие функции, как очистка, преобразование и улучшение.
Dead Letter Очередь - Кафка Connect — это механизм обработки ошибок соединителя. Когда соединитель не может обработать сообщение, он может отправить сообщение в Dead Letter Очередь,проверить позжеииметь дело с。
Dead Letter Очередь обычно представляет собой специальную тему, используемую для хранения сообщений, которые соединитель не может обработать. Эти сообщения нельзя десериализовать, преобразовать или записать в целевую систему, или они могут содержать недопустимые данные. В любом случае отправьте эти сообщения Dead Letter Очередьможет помочь обеспечитьданныенадежность потокаипоследовательность。
Очередь недоставленных писем позволяет легко отслеживать ошибки соединителя и соответствующим образом обрабатывать их. Например, вы можете вручную проверять сообщения в очереди недоставленных писем и попытаться решить проблему, либо написать сценарий или приложение для автоматической проверки и обработки этих сообщений.
Короче говоря, Мертвый Письмо Очередь — важный механизм Kafka Connect для обработки ошибок соединителя.,Это может помочь обеспечить надежность и согласованность потоков данных.,и упростить обработку ошибок.
Kafka Обычно существует два типа каналов передачи данных. сценарии использования:
Kafka главная для конвейера данных ценностьлежит в:
API Kafka Connect предназначен для решения распространенных проблем интеграции данных.
По сравнению с использованием его напрямую Producer и Consumer API,Kafka Connect API Некоторые из преимуществ:
удалять Kafka Connect API Кроме того,Кафка также может быть интегрирована с другой системой.,Реализуйте интеграцию данных. Например:
Короче говоря, чтобы построить хороший конвейер данных, вам необходимо учитывать все аспекты, такие как время, безопасность, преобразование формата, обработка ошибок и т. д., а также вам необходимо постараться обеспечить слабую связь, чтобы обеспечить максимальную гибкость нижестоящим системам, которые используйте данные.
Kafka Как платформа потоковой обработки, она может хорошо решить эти проблемы и сыграть роль разделения буферов производителя и потребителя. в то же время Kafka Connect Предоставляет общий интерфейс для ввода и вывода данных, упрощая работу по интеграции.
использовать Kafka построен конвейер данных,Может использоваться как в режиме реального времени, так и в сценариях пакетной обработки., с высокой доступностью, Высокая пропускная способность、Высокая масштабируемость и другие характеристики.
Два разных способа интеграции данных
Преимущества ЭТЛ:
Недостатки ЭЛТ:
Вообще говоря, если нижестоящая система должна быть очень гибкой в обработке данных и иметь сильные возможности обработки данных, ELT зачастую более уместно. В противном случае ЭТЛ Предварительную обработку можно выполнить перед загрузкой данных, чтобы снизить нагрузку на нижестоящую систему. Этот метод будет более эффективным. Во многих случаях он также будет использоваться ETL и ELT Смешанный способ