Ландшафт Open Source Data Engineering в 2024 году
Введение
Ознаменованный небывалой шумихой вокруг генеративного ИИ и ChatGPT, 2023 год стал одним из самых ярких годов, значительно повлиявших на ландшафт инженерии данных, который из года в год становится все более и более сложным и изощренным.
Благодаря появлению новых инструментов, фреймворков и open source решений перед data-инженерами открылись практически неограниченные возможности! В быстро меняющемся ландшафте очень важно быть в курсе новейших технологий и тенденций. Умение выбрать правильный инструмент для выполнения конкретной задачи - важнейший навык, гарантирующий эффективность работы data - инженера.
Будучи старшим data - инженером и консультантом, внимательно следящим за тенденциями в области инженерии данных, я хотел бы поделить с Вами своими соображениями касательно ландшафта Open Source Data Engineering по состоянию на начало 2024 года. В этой статье мы поговорим о ключевых проектах и передовых инструментах. Изучив данный материал, читатель сможет принимать обоснованные решения в рамках постоянно меняющегося технологического ландшафта.
Почему мы говорим о совершенно другом ландшафте Data Engineering?
Зачем представлять Вашему вниманию совершенно новый ландшафт данных? Конечно, Вы можете ориентироваться на такие отчеты, как знаменитый MAD Landscape , State of Data Engineering или Reppoint Open Source Top 25. Я же обращаю Ваше внимание исключительно на open-source инструменты, используемые на платформах данных и касающиеся жизненного цикла data-engineering.
MAD Landscape представляет собой всеобъемлющий обзор всех инструментов и сервисов для машинного обучения и искусственного интеллекта, представленный в нем ландшафт формирует представление об активных проектах с открытым исходным кодом. Другие отчеты, такие как Reppoint Open Source Top 25 и Data50 в основном фокусируются на поставщиках SaaS и стартапах. Данный же отчет посвящен open-source проектам, а не SaaS-сервисам.
Такие отчеты, как Github’s state of open source, Stackoverflow annual survey и OSS Insight reports также являются надежным источником для получения объективное информации о том, что именно является трендом в области Data Engineering, но они охватывают лишь отдельные составляющие общего ландшафта данных (например, базы данных и языки программирования).
Именно поэтому, учитывая мой интерес к open-source стеку данных, я постарался собрать информацию об актуальных инструментах и сервисах, востребованных в актуальной экосистеме data-engineering.
Итак, представляю Вашему вниманию данные об экосистеме data engineering по состоянию на начало на 2024 года:
Критерии выбора инструмента
Существует огромное количество open-source проектов, поэтому мы не можем охватить абсолютно все используемые в них инструменты и сервис. При выборе наиболее актуальных инструментов я руководствовался следующими критериями:
- Мы не рассматриваем любые неудавшиеся проекты, такие как Apache Sqoop, Scribe и Apache Apex, которые все еще могут использоваться в некоторых производственных средах;
- Мы также не берем во внимание любые проекты, не пользующие популярностью на Github в течение последнего года. В качестве примера можно привести проекты Apache Pig и Apache Oozie;
- Из обзора исключены совершенно новые, не набравшие достаточное количество звезд на Github, проекты. Однако упомянуты некоторые наиболее перспективные проекты, такие как OneTable;
- Мы не принимаем во внимание и инструменты для Data Science, ML и ИИ за исключением инструментов ML-платформ, поскольку я фокусируюсь исключительно на том, что непосредственно связано с data-engineering;
- Перечислены различные типы систем хранения данных, такие как реляционные базы данных и встроенные системы баз данных. Это связано с тем, что data engineering предполагает работу с множеством различных внутренних и внешних систем хранения данных, используемых в приложениях и операционных системах (BSS);
- Некоторые инструменты могут относиться к сразу нескольким категориям. VoltDB - это и in-memory база данных, и распределенная SQL СУБД. Я попытался отнести их к той категории, в которой они наиболее узнаваемы на рынке;
- Для некоторых систем баз данных может существовать некоторая неопределенность в отношении того, к какой категории их стоит отнести. Например, ByConity заявляет о себе как о решении для хранения данных, при этом оно построено на базе ClickHouse, которая признана OLAP-движком, работающем в режиме реального времени. Поэтому до сих пор остается неясным, является ли эта OLAP-система системой, работающей в режиме реального времени (способной обрабатывать запросы с субсекундной скоростью) или нет;
- Не все перечисленные проекты являются полностью Portable инструментами с открытым исходным кодом. Некоторые из них скорее являются Open Core, чем open source. Поэтому, принимая решение о внедрении того или иного инструмента с открытым исходным кодом, важно учитывать, насколько Portable и действительно open-source является тот или иной проект.
Обзор категорий инструментов
Представляю Вашему внимание короткое описание каждой категории:
1. Системы хранения
Системы хранения данных - основная категория в представленном ландшафте data engineering. Две новейшие категории категории – это векторные и потоковые базы данных. Materialize и RaisingWave являются примерами систем потоковых баз данных с открытым исходным кодом. Я описал векторные системы хранения данных в разделе "Платформы ML", поскольку они в основном используются в стеках ML и ИИ. Распределенные файловые системы и объектные хранилища также отнесены к отдельной категории - Data Lake Platform.
Как уже говорилось ранее, системы хранения данных группируются в зависимости от основной модели базы данных и рабочей нагрузки. На самом высоком уровне системы хранения данных можно разделить на три основных класса: OLTP, OLAP и HTAP. Далее их можно разделить на классы SQL и NoSQL для OLTP-систем и Offline и Real-time для OLAP-систем.
2. Платформа для Data Lake
Платформа Data Lake продолжает набирать обороты, Gartner выделила Data Lake в своем выпуске Hype Cycle for Data Management.
Распределенные файловые системы и объектные хранилища по-прежнему остаются основными технологиями, служащими фундаментом как для локальных, так и для облачных реализаций Data Lake. Несмотря на то, что HDFS по-прежнему остается основной технологией, используемой в локальных кластерах Hadoop, распределенное хранилище объектов Apache Ozone является отличной альтернативой локальной технологии хранения Data Lake.
Выбор формата сериализации влияет на эффективность хранения данных. Apache ORC остается предпочтительным вариантом для хранения в экосистемах Hadoop, а Apache Parquet стал стандартом сериализации данных в современных Data Lake. Его популярность обусловлена компактностью, эффективным сжатием и совместимостью с различными процессорами.
Еще одна трендом2023 года стало разделение уровней хранения и вычислений. Многие системы хранения данных теперь предлагают интеграцию с облачными объектными хранилищами, такими как S3. Такой подход позволяет ресурсам обработки данных масштабироваться независимо от хранилищ, что приводит к значительной экономии средств. Cockroachdb, поддерживающий S3 в качестве бэкенда хранилища, и предложение компании Confluent о долгосрочном хранении данных являются еще одним примером этой тенденции, подчеркивая растущую популярность Data Lake в качестве экономически эффективных решений для долгосрочного хранения данных.
Одним из самых ярких событий 2023 года стало появление открытых табличных форматов. Эти фреймворки, по сути, выступают в качестве абстракции таблиц и виртуального слоя управления данными, расположенного поверх слоя хранения и данных Data Lake, как показано на следующей диаграмме.
В настоящее время в пространстве открытых табличных форматов идет ожесточенная борьба за первенство между следующими тремя основными претендентами:
- Apache Hudi: разработка команды Uber. Основная цель - обновление данных в режиме, близком к реальному времени, и транзакции ACID;
- Apache Iceberg: разработка Netflix;
- Delta Lake: Разработка команды Databricks, полная интеграция с платформой Databricks.
Финансирование, полученное ведущими поставщиками SaaS в этой области в 2023 году - Databricks, Tabular и OneHouse, - подчеркивает взросший интерес рынка в сфере управления данными в Data Lake.
Еще одним новым трендом стало появление унифицированных слоев для озер данных. OneTable и UniForm - пионеры в данной области, появление которых было анонсировано в прошлом году. Эти инструменты выходят за рамки традиционных табличных форматов, открывая возможность работы сразу с тремя основными претендентами. Это позволит пользователям использовать универсальный формат представления данных, что значительно повысит гибкость и оперативность работы.
3. Интеграция данных
В 2023 году в сфере интеграции данных не только сохранилось доминирование таких известных игроков, как Apache Nifi, Airbyte и Meltano, но и появились такие перспективные инструменты, как Apache Inlong и Apache SeaTunnel, обладающие поистине уникальными преимуществами.
Кроме того, продолжает развиваться и потоковая обработка данных CDC (Change Data Capture), чему способствует активное развитие экосистемы Kafka. Плагины Kafka Connect и Debezium стали основными инструментами сбора данных из систем баз данных, работающих в режиме реального времени.
Такие инструменты, как CloudQuery и Streampipe, в разы упрощают интеграцию данных из API, предоставляя эффективные решения для получения данных из самых различных источников. Это еще раз подчеркивает важность гибкой интеграции с облачными сервисами.
В сфере промежуточного ПО лидером по-прежнему остается Apache Kafka, которую стремительно догоняют другие претенденты, такие как Redpanda. Финансирование Redpanda в размере 100 миллионов долларов в 2023 году свидетельствует о растущем интересе к альтернативным брокерам сообщений, предлагающим низкую задержку и высокую пропускную способность.
4. Обработка данных & Вычисления
В 2023 году ситуация вокруг потоковой обработки данных накалилась до предела! Apache Spark и Apache Flink по-прежнему занимают лидирующие позиции. Примечательно то, что Apache Flink стремительно рвется вперед. Гиганты облачных вычислений, такие как AWS и Alibaba, выходят на рынок с предложениями Flink как Saas, Immerok также выдвигает Flink в качестве SaaS.
В экосистеме Python стали доступны такие библиотеки обработки данных, как Vaex, Dask, Polars и Ray, позволяющие использовать многоядерные процессоры. Все эти библиотеки я открывают совершенно новые возможности для анализа огромных массивов данных в привычной среде Python.
5. Управление рабочими процессами & DataOps
Ландшафт оркестровки рабочих процессов - это, пожалуй, самая важная категория в представленной экосистеме данных, в которой выделяются как признанные гиганты, так и перспективные новички.
Такие «ветераны», как Apache Airflow и Dagster, несмотря ни на что не сдают свои позиции и до сих пор остаются самыми популярными движками. Однако на их место претендуют такие перспективные проекты, как Kestra, Temporal, Mage и Windmill - все они достойны внимания, поскольку каждый из них обладает поистине уникальными преимуществами. Уже сегодня становится очевидно, что эти новички вполне способны удовлетворить самые высокие требования современных пользователей.
6. Инфраструктура данных & Мониторинг
Недавний обзор Grafana Labs Survey подтвердил тот факт, что в области наблюдаемости и мониторинга данных лидерами по-прежнему являются такие проекты, как Grafana, Prometheus и стек ELK. Grafana Labs сама ведет достаточно активную деятельность по усовершенствованию своей платформы, представляя новые open-source инструменты, такие как Loki (для агрегации и хранения логов) и Mimir (бесконечное хранилище для Prometheus).
Одна из областей, где open-source инструментов сравнительно не много, - это управление и мониторинг кластеров. Вероятно, это связано с тенденцией миграции в облака, снижающей необходимость управления крупными локальными платформами данных. Хотя проект Apache Ambari, некогда популярный для управления кластерами Hadoop, был практически заброшен после слияния Hortonworks и Cloudera в 2019 году, недавнее ее возрождение вселяет некоторую надежду на его светлое будущее. Однако его судьба в долгосрочной перспективе по-прежнему остается тайной.
Что касается планирования ресурсов и развертывания рабочих нагрузок, то Kubernetes по-прежнему остается наиболее предпочтительным вариантом для облачных платформ.
7. ML - платформа
Платформа машинного обучения стала одной из самых заметных категорий, характеризующихся беспрецедентными темпами роста и возросшим интересом к векторным базам данных, специализированным системам, оптимизированным для хранения и поиска Big Data. Как отмечается в отчете DB-Engines’ 2023, векторные базы данных стали самой популярной категорией баз данных в прошлом году.
Инструменты MLOps также играют важную роль в эффективном масштабировании проектов ML, обеспечении бесперебойной работы и управлении жизненным циклом приложений ML. Поскольку ML становится все более и более сложным, инструменты MLOps становятся двигателем оптимизации разработки, развертывания и мониторинга ML-моделей.
8. Управление метаданными
В последние годы управление метаданными вышло на первый план, что обусловлено потребностью в регулировании и улучшении управления и доступа к данным. Однако отсутствие комплексных платформ управления метаданными побудило таких технологических гигантов, как Netflix, Lyft, Airbnb, Twitter, LinkedIn и Paypal, создать собственные решения.
Эти инициативы способствовали развитию сообществ open-source разработчиков. Такие инструменты, как Amundsen (Lyft), DataHub (LinkedIn) и Marquez (WeWork) находятся в стадии активного развития и усовершенствования.
В области управления схемами дела обстоят не так хорошо, как хотелось бы. Hive Metastore по-прежнему остается основным решением, поскольку в настоящее время нет альтернативных вариантов, которые могли бы его заменить.
9. Аналитика & Визуализация данных
В области бизнес-аналитики (BI) и визуализации наиболее популярной альтернативой лицензионным SaaS BI-решениям с открытым исходным кодом является Apache Superset.
Что касается распределенной и массивно-параллельной обработки (MPP), то некоторые эксперты утверждают, что Big Data ”мертвы”, и большинство компаний не нуждаются в крупномасштабной распределенной обработке. Вместо этого они предпочитают использовать мощные серверы для работы с большими объемами данных.
Однако распределенные системы массивно-параллельной обработки (MPP), такие как Apache Hive, Impala, Presto и Trino, по-прежнему широко используются на платформах Dig Data.
Помимо традиционных MPP-движков, еще одной тенденцией, набирающей обороты, являются унифицированные движки такие, как Apache Linkis, Alluxio и Cube.
Заключение
Данное исследование ландшафта open source data engineering является кратким обзором весьма динамичного и живого мира платформ данных. Экосистема продолжает стремительно развиваться благодаря появлению совершенно новых и нетривиальных решений.
Еще раз обращаю Ваше внимание, что это не исчерпывающий список, "лучшие" инструменты в конечном итоге определяются исключительно Вашими потребностями. Не стесняйтесь поделиться своими соображениями касательно наиболее эффективных инструментов, которые, возможно, я пропустил, и которые, по Вашему мнению, следовало бы включить в данный список.
Уточнение:
Недавно я создал репозиторий на Github, включающий в себя подробный список и ссылки на все проекты, перечисленные выше. Буду рад, если данная информация окажется для Вас полезной.
Оригинальная статья была опубликована на Practical Data Engineering Substack
СИСТЕМЫ ХРАНЕНИЯ
Реляционные СУБД
- PostgreSQL - Продвинутая объектно-реляционная система управления базами данных
- MySQL - Одна из самых популярных баз данных с открытым исходным кодом
- MariaDB – Популярное ответвление от системы управления базами данных MySQL
- Supabase - Альтернатива Firebase с открытым исходным кодом
- SQlite - Самый популярный движок встроенных баз данных
Распределенные SQL СУБД
- Citus - Популярный распределенный PostgreSQL в качестве расширения
- CockroachDB - Облачная распределенная база данных SQL
- YugabyteDB - Облачная распределенная база данных SQL
- TiDB - облачная распределенная база данных, совместимая с MySQL
- OceanBase - масштабируемая распределенная реляционная база данных
- ShardingSphere - распределенный механизм транзакций и запросов SQL
- Neon - бессерверная альтернатива AWS Aurora Postgres с открытым исходным кодом
Кэш-хранилище
- Redis - популярное кэш-хранилище на основе ключей-значений
- Memcached - Высокопроизводительное многопоточное кэш-хранилище ключей-значений
- Dragonfly - Современное хранилище кэша, совместимое с API Redis и Memcached
База данных In-memory SQL
- Apache Ignite - распределенная, ACID-совместимая СУБД in-memory
- ReadySet - совместимый с MySQL и Postgres проводной слой кэширования
- VoltDB - распределенная, горизонтально масштабируемая, ACID-совместимая база данных
Хранилище документов
- MongoDB - кроссплатформенная NoSQL-база данных, ориентированная на работу с документами
- RavenDB - ACID NoSQL база данных документов
- RethinkDB - распределенная документо-ориентированная база данных для приложений реального времени
- CouchDB - Масштабируемая документо-ориентированная база данных NoSQL
- Couchbase - Современная облачная распределенная база данных NoSQL
- FerretDB - Альтернатива MongoDB с открытым исходным кодом
Многомодельные NoSQL
- OrientDB - Многомодельная СУБД, поддерживающая графическую, документную, реактивную, полнотекстовую и геопространственную модели
- ArrangoDB - Многомодельная СУБД с гибкими моделями данных для документов, графов и ключей-значений
- SurrealDB - Масштабируемая, распределенная, совместная, документально-графовая база данных
- EdgeDB - Графово-реляционная база данных с декларативной схемой
Графовые базы данных
- Neo4j - Высокопроизводительная ведущая графовая база данных
- JunasGraph - Высокомасштабируемая распределенная графовая база данных
- HugeGraph - Высокоскоростная и высокомасштабируемая графовая база данных
- NebulaGraph - Распределенная, горизонтально масштабируемая, быстрая графовая база данных с открытым исходным кодом
- Cayley - Графовая база данных, лежащая в основе Графа знаний Google Dgraph - Горизонтально масштабируемая и распределенная база данных GraphQL с графовым бэкендом
Распределенное хранилище ключей-значений
- Riak - децентрализованное хранилище данных с ключами-значениями от Basho Technologies
- FoundationDB - распределенное транзакционное хранилище ключей -значений от Apple
- etcd - распределенное надежное хранилище ключей, написанное на языке Go
- TiKV - распределенная транзакционная база данных с ключами-значениями, изначально созданная как дополнение к TiDB
- Immudb - база данных со встроенными криптографическими доказательствами и проверкой
Хранилище ключей-с широкими столбцами
- Apache Cassandra - Высокомасштабируемое хранилище строк с разделением на основе LSM-дерева
- Apache Hbase - Распределенное хранилище, ориентированное на широкие колонки, созданное по образцу Bigtable от Google.
- Scylla - API на основе LSM-Tree с широким столбцом, совместимый с Apache Cassandra и Amazon DynamoDB
- Apache Accumulo - Распределенное хранилище ключевых значений с масштабируемым хранением и поиском данных на базе Hadoop
Встроенное хранилище ключей-значений
- LevelDB - Быстрая библиотека для хранения ключей-значений, написанная в Google
- RocksDB - Встраиваемое постоянное хранилище ключей-значений, разработанное компанией Meta (Facebook)
- MyRocks - Движок хранения данных RocksDB для MySQL
- BadgerDB - Встраиваемая, быстрая база данных с ключами-значениями, написанная на чистом Go
Поисковый движок
- Apache Solr - Быстрая распределенная поисковая база данных, построенная на основе Apache Lucene
- Elastic Search - распределенная, RESTful поисковая система, оптимизированная для скорости
- Sphinx - Полнотекстовая поисковая система с высокой скоростью индексации
- Meilisearch - Быстрый поисковый API с отличной поддержкой интеграции
- OpenSearch - Управляемый сообществом форк Elasticsearch и Kibana с открытым исходным кодом
- Quickwit - Быстрый облачный нативный поисковый движок для данных наблюдаемости
Потоковая база данных
- RasingWave - Масштабируемый Postgres для потоковой обработки, аналитики и управления
- Materialize - Хранилище данных в реальном времени, специально разработанное для оперативных рабочих нагрузок
- EventStoreDB - База данных, ориентированная на события, предназначенная для поиска источников событий и архитектур, управляемых событиями
- KsqlDB - База данных для создания приложений потоковой обработки поверх Apache Kafka
База данных временных рядов
- Influxdb - масштабируемое хранилище данных для метрик, событий и аналитики в реальном времени
- TimeScaleDB - SQL-база данных временных рядов с быстрым доступом, упакованная как расширение PostgreSQL
- Apache IoTDB - IoT база данных с бесшовной интеграцией с экологией Hadoop и Spark
- Netflix Atlas - база данных временных рядов с размерностью n-памяти, разработанная и открытая компанией Netflix
- QuestDB - база данных временных рядов для быстрого ввода и SQL-запросов
- TDEngine - высокопроизводительная облачная база данных временных рядов, оптимизированная для IoT.
- KairosDB - масштабируемая база данных временных рядов, написанная на Java
Столбцовая база данных OLAP
- Apache Kudu - колоночно-ориентированное хранилище данных для экосистемы Apache Hadoop
- Greeenplum - ориентированная на столбцы массивно-параллельная PostgreSQL для Аналитики
- MonetDB - высокопроизводительная колоночная база данных, изначально разработанная исследовательской группой баз данных CWI
- DuckDB - Система управления базами данных OLAP на основе SQL, работающая в процессе
- Databend - облачное хранилище данных, построенное на Rust с учетом рабочей нагрузки
- ByConity - облачное хранилище данных, ветвление из ClickHouse
- hydra - Быстрое расширение Postgres, ориентированное на работу с колонками
OLAP-движок в реальном времени
- ClickHouse - колоночно-ориентированная база данных в реальном времени, изначально разработанная в Яндекс
- Apache Pinot - распределенное OLAP-хранилище данных в реальном времени с открытым исходным кодом от LinkedIn
- Apache Druid - высокопроизводительный в реальном времени OLAP-движок, разработанный и открытый компанией Metamarkets.
- Apache Kylin - распределенный OLAP-движок, предназначенный для многомерного анализа на Hadoop
- Apache Doris - высокопроизводительная аналитическая база данных реального времени, основанная на архитектуре MPP
- StarRocks - субсекундная OLAP-база данных, поддерживающая многомерную аналитику (проект Linux Foundation)
Платформа DATA LAKE
Распределенная файловая система
- Apache Hadoop HDFS - высокомасштабируемая распределенная файловая система на основе блоков
- GlusterFS - Масштабируемое распределенное хранилище, которое может масштабироваться до нескольких петабайт
- JuiceFS - распределенная POSIX-файловая система, построенная на базе Redis и S3
- Lustre - распределенная параллельная файловая система, созданная специально для обеспечения глобального POSIX-совместимого пространства имен
Распределенное хранилище объектов
- Apache Ozone - масштабируемое, избыточное и распределенное хранилище объектов для Apache Hadoop
- Ceph - распределенная платформа для хранения объектов, блоков и файлов
- Minio - высокопроизводительное объектное хранилище, совместимое по API с Amazon S3
Фреймворк для сериализации
- Apache Parquet - эффективный столбцовый формат хранения двоичных данных, поддерживающий вложенные данные
- Apache Avro - эффективный и быстрый фреймворк для сериализации двоичных данных на основе строк
- Apache ORC - самоописывающийся формат колоночных файлов с учетом типов, разработанный для Hadoop
Открытый формат таблиц
- Apache Hudi - открытый формат таблиц, разработанный для поддержки инкрементного ввода данных в облаке и Hadoop
- Apache Iceberg - высокопроизводительный формат таблиц для больших аналитических таблиц, разработанный в Netflix
- Delta Lake - фреймворк хранения данных для построения архитектуры Lakehouse, разработанный компанией Databricks
- Apache Paimon - проект Apache inclubating для поддержки потокового высокоскоростного ввода данных
- OneTable - унифицированный фреймворк, поддерживающий совместимость множества форматов таблиц с открытым исходным кодом
ИНТЕГРАЦИЯ ДАННЫХ
Платформа интеграции данных
- Airbyte - Платформа интеграции данных для конвейеров ETL / ELT с широким набором коннекторов
- Apache Nifi - надежная, масштабируемая платформа интеграции данных с низким уровнем кода и хорошей корпоративной поддержкой
- Apache Camel - встраиваемый интеграционный фреймворк, поддерживающий множество шаблонов корпоративной интеграции
- Apache Gobblin - распределенная платформа интеграции данных, созданная LinkedIn, поддерживающая потоковые и пакетные данные
- Apache Inlong - интеграционный фреймворк для поддержки массивных данных, первоначально созданный в Tencent
- Meltano - декларативный механизм интеграции данных, основанный на коде
- Apache SeaTunnel - высокопроизводительный распределенный инструмент интеграции данных, поддерживающий различные шаблоны ввода данных
Инструмент CDC
- Debezium - фреймворк для сбора данных об изменениях, поддерживающий различные базы данных
- Kafka Connect - фреймворк для интеграции потоковых данных и среда выполнения поверх Apache Kafka, поддерживающая CDC
- Flink CDC Connectors - Коннекторы CDC для движка Apache Flink с поддержкой различных баз данных
- Brooklin - Распределенная платформа для потоковой передачи данных между различными гетерогенными исходными и конечными системами
- RudderStack - Платформа данных о клиентах без головы для создания конвейеров данных, открытая альтернатива Segment
Сбор логов и событий
- CloudQuery - ETL-инструмент для синхронизации данных из облачных API с различными поддерживаемыми направлениями
- Snowplow - облачный движок для сбора поведенческих данных и их загрузки в различные облачные системы хранения
- EventMesh - бессерверный событийный посредник для сбора и загрузки данных о событиях в различные цели
- Apache Flume - масштабируемый распределенный сервис агрегации журналов
- Steampipe - решение с нулевым содержанием ETL для получения данных непосредственно из API и сервисов
Хаб событий
- Apache Kafka - высокомасштабируемое распределенное хранилище событий и платформа потоковой передачи данных
- NSQ - платформа распределенного обмена сообщениями в реальном времени, предназначенная для работы в масштабе
- Apache Pulsar - масштабируемая распределенная система обмена сообщениями pub-sub
- Apache RocketMQ - облачная платформа для обмена сообщениями и потоковой передачи данных
- Redpanda - высокопроизводительная платформа потоковых данных, совместимая с Kafka API
- Memphis - масштабируемая платформа потоковой передачи данных для создания событийно-ориентированных приложений
ОБРАБОТКА ДАННЫХ И ВЫЧИСЛЕНИЯ
Унифицированная обработка
- Apache Beam - унифицированная модель программирования, поддерживающая выполнение на популярных бэкендах распределенной обработки данных
- Apache Spark - унифицированный аналитический движок для обработки крупномасштабных данных
- Dinky - унифицированная платформа потоковых и пакетных вычислений на основе Apache Flink
Пакетная обработка данных
- Hadoop MapReduce - высокомасштабируемый фреймворк распределенной пакетной обработки данных из проекта Apache Hadoop
- Apache Tez - конвейер распределенной обработки данных, созданный для Apache Hive и Hadoop
Потоковая обработка
- Apache Flink - масштабируемый фреймворк для обработки потоков с высокой пропускной способностью
- Apache Samza - фреймворк распределенной обработки потоков, использующий Kafka и Hadoop, изначально разработанный LinkedIn
- Apache Storm - распределенная система вычислений в реальном времени, основанная на фреймворке Actor Model
- Benthos - высокопроизводительный декларативный движок для обработки потоков
- Akka - высококонкурентная, распределенная, управляемая сообщениями система обработки, основанная на Actor Model
- Bytewax - фреймворк для обработки потоков на Python с движком распределенной обработки на Rust
Параллельное выполнение на Python
- Vaex - высокопроизводительная библиотека Python для работы с большими табличными наборами данных
- Dask - гибкая библиотека параллельных вычислений для аналитики
- Polars - Многопоточный Dataframe с векторным механизмом запросов, написанный на Rust
- PySpark - Интерфейс для Apache Spark на языке Python
- RAY - Унифицированный фреймворк с распределенной средой выполнения для масштабирования приложений на Python
- Apache Arrow - эффективный формат данных in-memory
УПРАВЛЕНИЕ РАБОЧИМИ ПРОЦЕССАМИ И DATAOPS
Оркестрация рабочих процессов
- Apache Airflow - Платформа для создания и планирования рабочих процессов в виде направленных ациклических графов (DAG) задач
- Prefect - Инструмент оркестровки рабочих процессов на основе Python
- Argo - Контейнерно-нативный движок рабочего процесса для оркестровки параллельных заданий на Kubernetes
- Azkaban - планировщик пакетных рабочих процессов, созданный в LinkedIn для выполнения заданий Hadoop
- Cadence - Распределенная, масштабируемая доступная оркестровка с поддержкой клиентских библиотек на разных языках
- Dagster - облачный нативный оркестровщик конвейеров данных, написанный на Python
- Apache DolpinScheduler - low-code высокопроизводительная платформа для оркестровки рабочих процессов
- Luigi - Библиотека на языке Python для построения сложных конвейеров пакетных заданий
- Flyte - Масштабируемая и гибкая платформа оркестровки рабочих процессов для данных и ML-нагрузок
- Kestra - Платформа для оркестровки и планирования рабочих процессов, не зависящая от декларативных языков
- Mage.ai - платформа для интеграции, планирования и управления конвейерами данных
- Temporal - отказоустойчивая система управления рабочими процессами, возникшая как форк Cadence от Uber
- Windmill - быстрый механизм управления рабочими процессами, альтернатива Airplane и Retool с открытым исходным кодом
Качество данных
- Data-diff - Инструмент для сравнения таблиц внутри или между базами данных
- Great Expectations - инструмент для проверки и профилирования данных, написанный на Python
Версионирование данных
- LakeFS - система управления версиями данных для хранения данных в озерах данных
- Project Nessie - транзакционный каталог для озер данных с Git-подобной семантикой
Моделирование данных
- dbt - инструмент моделирования и преобразования данных для конвейеров данных
- SQLMesh - фреймворк для преобразования и моделирования данных, обратно совместимый с dbt
ИНФРАСТРУКТУРА ДАННЫХ
Планирование ресурсов
- Apache Yarn - планировщик ресурсов по умолчанию для кластеров Apache Hadoop
- Apache Mesos - фреймворк для планирования ресурсов и абстракции ресурсов кластера, разработанный аспирантами Калифорнийского университета в Беркли
- Kubernetes - инструмент планирования и управления контейнерами производственного уровня
- Docker - популярное программное обеспечение для виртуализации и контейнеризации на уровне ОС
Администрирование кластеров
- Apache Ambari - инструмент для обеспечения, управления и мониторинга кластеров Apache Hadoop
- Apache Helix - общий фреймворк для управления кластерами, разработанный в LinkedIn
Безопасность
- Apache Knox - шлюз и служба SSO для управления доступом к кластерам Hadoop
- Apache Ranger - платформа безопасности и управления для Hadoop и других популярных сервисов
- Kerberos - популярный протокол аутентификации в корпоративной сети
Хранилище метрик
- Influxdb - масштабируемое хранилище данных для метрик и событий
- Mimir - масштабируемое хранилище долгосрочных метрик для Prometheus, разработанное Grafana Labs
- OpenTSDB - распределенная, масштабируемая база данных временных рядов, написанная поверх Apache Hbase
- M3 - распределенная TSDB, хранилище и агрегатор метрик
Фреймворк наблюдаемости
- Prometheus - популярный инструмент для сбора и управления метриками
- ELK - популярный стек наблюдаемости, состоящий из Elasticsearch, Kibana, Beats и Logstash
- Graphite - хорошо зарекомендовавшая себя система мониторинга и наблюдаемости инфраструктуры
- OpenTelemetry - коллекция API, SDK и инструментов для управления и мониторинга метрик
- VictoriaMetrics - масштабируемое решение для мониторинга с базой данных временных рядов
- Zabbix - служба мониторинга инфраструктуры и приложений в режиме реального времени
Дашбрд для маниторинга
- Grafana - популярная открытая и композитная платформа для наблюдения и визуализации данных
- Kibana - визуализация и поисковый дашборд для Elasticsearch
- RConsole - пользовательский интерфейс для мониторинга и управления рабочими нагрузками Apache Kafka и Redpanda
Конвейер журналов и метрик
- Fluentd - служба сбора, буферизации и маршрутизации метрик
- Fluent Bit - быстрый обработчик и пересыльщик логов, часть экосистемы Fluentd.
- Logstash – серверный конвейер обработки данных, часть стека ELK
- Telegraf - управляемый плагинами серверный агент для сбора и отчетности по метрикам, разработанный Influxdata
- Vector - высокопроизводительный, сквозной (агент и агрегатор) конвейер данных наблюдаемости
- StatsD - сетевой сервер для сбора, агрегации и маршрутизации метрик
УПРАВЛЕНИЕ МЕТАДАННЫМИ
Платформа метаданных
- Amundsen - механизм обнаружения данных и метаданных, разработанный инженерами Lyft
- Apache Atlas - платформа наблюдаемости данных для экосистемы Apache Hadoop
- DataHub - платформа метаданных для современного стека данных, разработанная в Netflix
- Marquez - сервис для сбора, агрегации и визуализации метаданных
- ckan - система управления данными для каталогизации, управления и доступа к данным
- Open Metadata - единая платформа для обнаружения и управления, использующая центральное хранилище метаданных
Открытые стандарты
- Open Lineage - Открытый стандарт для сбора метаданных
- Open Metadata - унифицированная платформа метаданных, предоставляющая открытые стандарты для управления метаданными
- Egeria - Открытые стандарты метаданных и управления для облегчения обмена метаданными
Сервис схем
- Hive Metastore - популярный сервис управления схемами и метахранилищами в рамках проекта Apache hive
- Confluent Schema Registry - реестр схем для Kafka, разработанный компанией Confluent
АНАЛИТКА & ВИЗУАЛИЗАЦИЯ
BI & Дашборд
- Apache Superset - популярная платформа для визуализации и изучения данных с открытым исходным кодом
- Metabase - Простая панель для визуализации и изучения данных
- Redash - Инструмент для изучения, запроса, визуализации и обмена данными с множеством соединителей источников данных
- Streamlit - инструмент на языке python для упаковки и обмена данными в виде веб-приложений
Запросы & коллаборация
- Hue - инструмент для запросов и исследования данных с поддержкой экосистемы Hadoop, разработанный компанией Cloudera
- Apache Zeppelin - блокнот на веб-основе для интерактивной аналитики данных и совместной работы для Hadoop
- Querybook - простой пользовательский интерфейс для работы с запросами и блокнотами, разработанный компанией Pinterest
- Jupyter - популярное интерактивное веб-приложение для создания блокнотов
MPP Query Engine
- Apache Hive - хранилище данных и MPP-движок поверх Hadoop
- Apache Implala - MPP-движок в основном для кластеров Hadoop, разработанный компанией Cloudera
- Presto - распределенный механизм запросов SQL для больших данных
- Trino - бывший распределенный механизм SQL-запросов PrestoSQL
- Apache Drill - распределенный механизм MPP-запросов к системам хранения данных NoSQL и Hadoop
Семантический слой
- Alluxio - система оркестровки данных и виртуального распределенного хранения
- Cube - семантический слой для создания приложений для работы с данными, поддерживающий популярные системы баз данных
- Apache Linkis - промежуточное программное обеспечение для вычислений, облегчающее соединение и оркестровку между приложениями и движками данных
ML/ИИ ПЛАТФОРМА
Векторное хранилище
- milvus - облачная векторная база данных, хранилище для приложений искусственного интеллекта
- qdrant - высокопроизводительная, масштабируемая векторная база данных для ИИ
- chroma - база данных для встраивания ИИ для создания приложений LLM
- marqo - end-to-end поисковый движок для текстов и изображений
- LanceDB - бессерверная векторная база данных для приложений ИИ, написанная на Rust
- weaviate - масштабируемое, облачное нативное хранилище, поддерживающее как объекты, так и векторы
- deeplake - оптимизированная по формату хранения база данных ИИ для приложений глубокого обучения
- Vespa - Хранилище для организации векторов, тензоров, текста и структурированных данных
- vald - Масштабируемая распределенная система поиска плотных векторов с приближенным ближайшим соседом (ANN)
- pgvector - Векторный поиск по сходству как расширение Postgres
MLOps
- mlflow - Платформа для оптимизации разработки и управления жизненным циклом машинного обучения
- Metaflow - Инструмент для создания и управления проектами ML/AI и data science, разработанный в Netflix
- SkyPilot - фреймворк для запуска LLM, AI и пакетных заданий в любом облаке
- Jina - Инструмент для создания мультимодальных приложений ИИ с использованием облачного нативного стека
- NNI - Инструментарий autoML для автоматизации жизненного цикла машинного обучения от Microsoft
- BentoML - фреймворк для создания надежных и масштабируемых приложений ИИ
- Determined AI - платформа ML, упрощающая распределенное обучение, настройку и отслеживание экспериментов
- RAY - унифицированный фреймворк для масштабирования приложений ИИ и Python
- kubeflow - облачная нативная платформа для операций ML - конвейеров, обучения и развертывания