В этом занятии мы познакомимся с Apache Kafka, инструментом для потоковой передачи данных. Для демонстрации мы воспользуемся сервисом Confluent Cloud и построим пайплайн для записи событий кликов пользователей из датасета Avazu.
План занятия:
- Поднимем Kafka кластер и создадим топик для коммита сообщения в Confluent Cloud
- Напишем Producer для записи сообщений в топик с помощью API confluent_kafka_python
- Поднимем S3 sink connector для аггрегации сообщений за час и передачи данных из топика в бакет S3 в виде датасета в формате json
Финальный пайплайн будет выглядеть следующим образом
# login and checkout the working environment
confluent login --save
confluent environment list
# connect to kafka cluster inside environment
confluent kafka cluster list
confluent kafka cluster use <clusterid>
# check list of topics
confluent kafka topic list
# check list of KConect connectors and create connector
confluent connect cluster list
confluent connect cluster create --config-file config/s3_sink_connector_config.json
Топик для записи активностей пользователей user-tracking-v2
с записанными в него сообщениями.
Сообщения распределенные по 6 партициям
S3 sink коннектор, который читает сообщения с топика user-tracking-v2
,
аггрегирует данные за час и записывает их в S3 бакет kconnect-sink
Финальный результат: датасет активностей пользователей за час, записанный коннектором в json формате и распределенный по 6 партициям