Потоковая обработка данных: история, проблемы и тенденции развития
Роман Самарев,
МГТУ им. Н. Э. Баумана,
samarev@acm.org
Тема потоковой обработки и анализа данных актуальна для исследований и разработки уже многие десятки лет. Однако, если ранее средства для потокового анализа и обработки данных представляли собой узкоспециализированные решения, то на волне “анализа больших данных” и интенсивного развития “дешевых” вычислительных кластеров, фактически, реанимирована идея создания общедоступных средств, которые можно использовать для создания систем потоковой обработки данных. Интернет и бизнес, построенный с его использованием, порождает огромные потоки данных. Часто эти данные не требуют долговременного хранения, или же требуется как можно более оперативный анализ данных от момента их получения.
Попытки построения средств для создания систем (фреймворков) обработки данных предпринимались и 30 лет назад, но тогда это были специализированные коммерческие решения с разнообразием языков, технологий и принципов построения. Сейчас же следует говорить о реализации вполне сформировавшихся технологических архитектур и наборе взаимозаменяемых средств, в качестве примеров которых можно назвать проекты фонда Apache: Kafka, Storm, Samza, Flink, Apex, Spark, Ignite и многие другие. Пути, которые привели разработчиков этих продуктов к обработке именно потоков данных, различны. Это создаёт проблему выбора того или иного фреймворка для решения конкретной задачи. И именно это разработчики фреймворков пытаются скрыть от пользователей.
В докладе рассматривается история развития области потоковой обработки данных, ранние экспериментальные разработки, языки и технологии, проблемы и тенденции развития. Рассматриваются типовые особенности архитектуры потоковых фреймворков и их бизнес-применения. Особое внимание уделяется критериям оценки средств потоковой обработки данных при принятии решения их использования в бизнес-задачах.
Слайды доклада.
Литература:
-
Lukasz Golab and M. Tamer Özsu. Issues in data stream management. SIGMOD Rec., 32(2):5–14, June 2003.
-
Michael Stonebraker, Uǧur Çetintemel, and Stan Zdonik. The 8 requirements of real-time stream processing. SIGMOD Rec., 34(4):42–47, December 2005.
Перевод.
-
Henrique C. M. Andrade, Bugra Gedik, and Deepak S. Turaga. Fundamentals of Stream Processing: Application Design, Systems, and Analytics. Cambridge University Press, New York, NY, USA, 1st edition, 2014.
-
Nathan Marz and James Warren. Big Data: Principles and Best Practices of Scalable Realtime Data Systems. Manning Publications Co., Greenwich, CT, USA, 1st edition, 2015.
-
An Overview of Apache Streaming Technologies.
-
Р.С. Самарев. Обзор состояния области потоковой обработки данных // Труды Института системного программирования РАН, том 29, вып. 1, 2017, стр. 231-260.
|