Нельзя просто так взять и выполнить запрос к потоку | Elastic NYC Meetup
Viktor Gamov
0:00 / 0:00
Нельзя просто так взять и выполнить запрос к потоку | Elastic NYC Meetup
97 просмотров · 4 мес. назад
Viktor Gamov
3,75 тыс. подписчиков
97 просмотров · 4 мес. назад
Потоковая передача данных с помощью Apache Kafka® стала основой современных приложений. Хотя потоки идеально подходят для непрерывного потока данных, им не хватает встроенных возможностей для выполнения запросов. В отличие от баз данных с индексированным поиском, журналы Kafka, работающие только с добавлением данных, предназначены для высокопроизводительной обработки, а не для запросов по требованию. Это требует дополнительной инфраструктуры для эффективного выполнения запросов к потоковым данным. Традиционные подходы реплицируют потоковые данные во внешние хранилища: реляционные базы данных, такие как PostgreSQL, для оперативных запросов, объектные хранилища, такие как S3, доступ к которым осуществляется через Flink, Spark или Trino, для аналитики, и Elasticsearch для полнотекстового поиска и анализа журналов. Каждый из них выполняет свою функцию, но также создает разрозненность данных, несоответствия схем, проблемы с актуальностью и сложные конвейеры ETL, что повышает уязвимость системы. В этом докладе мы рассмотрим решения, направленные на объединение оперативных, аналитических и поисковых задач для обработки данных в реальном времени. Мы продемонстрируем обработку потоков с помощью Kafka Streams, Apache Flink® и SQL-движков; Аналитика в реальном времени с помощью Apache Pinot®; возможности поиска с помощью Elasticsearch; и современные подходы Lakehouse с использованием Apache Iceberg® и Tableflow для представления тем Kafka в виде таблиц, доступных для запросов. Хотя универсального решения не существует, понимание инструментов и компромиссов поможет вам проектировать более надежные и гибкие архитектуры.