Недавно мы писали про платформы потоковой обработки событий, альтернативные Apache Kafka и Flink/Spark Streaming. В продолжение этой темы сегодня рассмотрим еще пару вариантов для разработки и самообслуживаемого использования потоковых конвейеров аналитики больших данных: DataCater и Flow. Читайте далее, что это за системы, как они связаны с Apache Kafka и какова их практическая польза для дата-инженера.
Apache Kafka на стероидах: что такое DataCater и при чем здесь Redpanda
Чтобы облегчить рутинную работу дата-инженеров по построению и поддержке конвейеров обработки данных, а также упростить задачи администрирования кластеров локальной ИТ-инфраструктуры, на рынке Big Data постоянно появляются новые продукты. Чаще всего они основаны на удачных идеях уже существующих и активно применяемых технологий. Например, немецкая ИТ-компания DataCater GmbH предлагает DataCater – платформу построения самообслуживаемых конвейеров потоковой передачи данных на базе Apache Kafka, Kafka Connect и Kafka Streams. Для развертывания конвейеров DataCater использует технологии контейнерной виртуализации – Docker или Kubernetes.
Будучи основанным на Apache Kafka, DataCater может быть развернут на любой потоковой платформе, совместимой с Kafka-API. Согласно парадигме LowCode/NoCode, DataCater является конструктором data pipeline’ов, позволяя пользователям автоматизировать типовые задачи по подготовке данных к анализу и ML-моделированию. А благодаря поддержке Python, использовать DataCater могут не только дата-инженеры, но и аналитики, а также специалисты по Data Science. Технически DataCater компилирует конвейеры в приложения Apache Kafka Streams и развертывает их на Kubernetes. Этот подход реализует встроенную интеграцию в существующие облачные архитектуры данных, поддерживая эластичное масштабирование потоковых конвейеров.
Помимо обеспечения доступности потоковой передачи событий для разных команд и данных, среда разработки конвейеров DataCater позволяет автоматизировать множество повторяющихся работ, экономя около 40% времени дата-инженера. Это весьма существенный выигрыш, поскольку предварительная подготовка данных (очистка, форматирование и прочие операции Data Preparation) занимают около 80% рабочего времени аналитиков и Data Scientist’ов.
Пользователи DataCater отмечают следующие преимущества этого решения при разработке IoT-систем и аналитических приложений:
- конвейеры могут передавать тысячи событий в секунду, обеспечивая интеграцию нескольких источников данных в реальном времени;
- дополнительно ко множеству готовых LowCode/NoCode функций обработки данных, DataCater позволяет написать собственные преобразования на Python;
- наличие и постоянная поддержка обновления множества коннекторов к десяткам источникам и приемникам данных – реляционные СУБД и NoSQL-хранилища, облачные сервисы хранения данных и пр.
Таким образом, DataCater очень похож на Redpanda – написанную на C++ платформу потоковой передачи событий, которая полностью совместима с Apache Kafka. Подробно о ней мы писали здесь и здесь. Однако, эти платформы не дублируют друг друга, отличаясь рядом деталей. Хотя Redpanda и DataCater нацелены на снижение сложности обработки данных, предлагая подход самообслуживания, они реализуют эту идею по-разному. Redpanda предоставляет простую в эксплуатации и высокопроизводительную платформу потоковой передачи событий, а DataCater представляет собой облачный сервис, который по уровню абстракции находится выше, делая конвейеры потоковых данных доступными для всех пользователей. В этом отношении DataCater похож на Flow — платформу от компании Estuary для создания материализаций в базах данных и потоковых системах с миллисекундной задержкой, которую мы рассмотрим далее.
Что такое Flow и зачем нужен Gazette
Estuary Flow – это инструмент создания, тестирования и развития конвейеров, которые непрерывно собирают, трансформируют и материализуют данные во всех системах. Он унифицирует парадигмы пакетной обработки и потоковой передачи, синхронизируя одни наборы данных в разных системах.
Flow не заменяет другие системы, а консолидирует и упрощает инфраструктуру данных благодаря сочетанию разных архитектурных методов, чтобы обеспечить высокую пропускную способность, избежать задержек и минимизировать эксплуатационные расходы:
- выполнение преобразований преимущественно в памяти;
- оптимизация конвейерной обработки и векторизация внутренних RPC-вызовов и операций;
- упрощенная материализация небольших таблиц фактов и сводных данных из более крупных исходных наборов данных DWH;
- облачная модель использования с прозрачным ценоообразованием.
Будучи похожим на лог-ориентированные системы «издатель/подписчик» типа Apache Kafka или Pulsar, Flow основан на фреймворке Gazette, схожим с Kafka Streams. Gazette упрощает создание платформ, которые сочетают парадигмы пакетной обработки, потокового SQL и потоковой передачи событий с миллисекундной задержкой. Он позволяет работать с общим каталогом данных различными способами. Основная абстракция Gazette — это потоковый лог, представленный добавлением обычных файлов в хранилище больших двоичных объектов типа AWS S3. При этом логи сами представляют собой поток данных с малой задержкой и набор неизменяемых, организованных файлов в облачном хранилище или озере данных. Добавление данных в лог Gazette позволяет реализовать различные кейсы:
- потоковая передача событий в реальном времени с операциями фильтрации, пересылки, агрегирования, индексации и соединения;
- потребление из партиционированной Hive-таблицы средствами Spark, Flink и прочих потоковых и пакетных движков;
- SQL-запросы в Snowflake, BigQuery или Presto с предикатным pushdown/
Помимо брокерского сервиса журналов, Gazette предлагает потребителям мощный фреймворк для создания потоковых приложений на Go с масштабированием развертываний до миллионов потоковых записей в секунду.
В отличие от горизонтально масштабируемых Apache Kafka и Pulsar, Flow и Gazette используют обычные файлы без специального форматирования, такие как сжатый JSON, в качестве основного представления данных. Это обеспечивает возможность интеграции Flow с другими аналитическими инструментами. Во время повторного обращения к данным Flow считывает исторические данные непосредственно из облачного хранилища, что намного быстрее и более масштабируемо, а также снижает нагрузку на брокеры. Реализация надежных хранилищ заданий в Gazette также позволяет использовать новую технологию Flow с минимальной задержкой и нулевым простоем для масштабирования.
Наконец, еще одной из самых популярных альтернатив Apache Kafka считается платформа Pulsar, которой мы посвятили целую серию публикаций. Однако, при том, что все эти недавно появившиеся инструменты уже доказали свою состоятельность в реальных проектах купных компаний, лидерство среди потоковой передачи событий до сих пор принадлежит Apache Kafka. Поэтому умение администрировать и использовать этот фреймворк становится абсолютным must-have для современного дата-инженера и разработчика распределенных приложений.
Освоить все тонкости практического администрирования и эксплуатации Apache Kafka для разработки распределенных приложений потоковой аналитики больших данных вам помогут специализированные курсы в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники