"the most popular OSS data projects"を眺めてみる(1位〜10位)

14 min read読了の目安(約12600字

元記事の話

元記事:https://petesoder.medium.com/what-are-the-most-popular-oss-data-projects-of-2021-84ef021bb5a2

データエンジニア・データサイエンティスト・研究者のイベントData Councilで、500人からアンケート(※)を取った結果の、上位20位のOSSデータ関係のプロジェクトが公開されています(全結果はこちら)。

順位 製品名 投票者 ユーザー
1 dbt 75 51
2 Apache Airflow 68 57
3 Apache Superset 55 40
4 Dagster 54 44
5 Trino 49 43
6 Prefect 42 34
7 Great Expectations 40 23
8 Apache Spark 37 29
9 Amundsen 37 21
10 Apache Flink 30 21
11 Apache Kafka 28 19
12 Apache Pinot 26 21
13 Dask 25 22
14 Flyte 24 18
15 Apache Arrow 23 20
16 Apache Druid 20 20
17 pandas 15 11
18 RudderStack 14 14
19 Ray 14 6
20 Apache Gobblin 13 12

※具体的なアンケートの質問は不明?

この記事

↑の上位20製品について、簡単に調べてみました。
私がよく知らない製品(Flyteとか)、みんな知っているだろう製品(Sparkとか)は記載薄めです。

なお、私の知識は

  • 知っている
    • Apache Airflow, Trino, Prefect, Apache Spark, Amundsen, Apache Flink, Apache Kafka,Apache Duid, pandas
  • 名前だけ知っている
    • dbt, Apache Pinot, Apache SuperSet, Great Expectations, Dask, Apache Arrow, Apache Gobblin
  • 知らない
    • Dagster, Flyte, RudderStack, Ray

な感じです。

目次

  1. dbt
  2. Apache Airflow
  3. Apache Superset
  4. Dagster
  5. Trino
  6. Prefect
  7. Great Expectations
  8. Apache Spark
  9. Amundsen
  10. Apache Flink
    --(ここから次回のページ)--
  11. Apache Kafka
  12. Apache Pinot
  13. Dask
  14. Flyte
  15. Apache Arrow
  16. Apache Druid
  17. pandas
  18. RudderStack
  19. Ray
  20. Apache Gobblin

#1 dbt

公式ページ・SaaS・サポート

概要

ELTのうちのTの部分に特化したツールです。つまり、DWH(BigQueryとか)にあるデータを、SQLで変換するためのツールで、

などをやってくれます。

スクショ

dbt
dbtのドキュメントより

日本語資料

#2 Apache Airflow

公式ページ・SaaS・サポート

概要

ワークフローエンジン。ワークフローエンジンは多々ありますが(このランキングでもPrefectとDagster)

  • プラグインの多さ
  • 処理に加え、依存関係(DAG)もプログラミング言語(Python)で記載(=複雑な依存も書きやすい)
  • SaaS
  • プロジェクトの活発・ユーザの多さ(Apache Annual Report

あたりが特徴だと思っています。

スクショ

Airflow
Airlfow Documentより

日本語資料

英語資料

#3 Apache Superset

公式ページ・SaaS・サポート

概要

BIツール。

あたりが特徴だと思っています。

スクショ

Superset
Superset Documentより

日本語資料

英語資料

その他

  • Apache Airflowとオリジナルの作者が同じです(Maxime Beauchemin)

#4 Dagster

公式ページ・SaaS・サポート

概要

ワークフローエンジン。

が特徴かなと思います。AirflowやPrefectと比べると、比較的後発(2019?)ですが綺麗にまとまっていそうです。

スクショ

Dagster
Dagsterのドキュメントより

日本語資料

たぶんない

その他

#5 Trino

公式ページ・SaaS・サポート

概要

クエリエンジン(旧Presto)。
色々なデータソース(DB・オブジェクトストレージ等)からデータを取得し、SQLを実行します。
HDFS・S3(HiveConnector)からデータを取得してる例が多そうですが、

  • DWH(BigQuery, Redshift)
  • ElasticSearch
  • Kafka
  • RDB(MySQL, Oracle, PostgreSQL, SQL Server)

などにも対応しています。

英語資料

その他

  • アンケート結果がPrestoDBを含むかは不明
    • Facebook等がコントリビュートしているPrestoフォーク
  • PrestoからPrestoSQLにフォークし、そこから改名した
  • マスコットのうさぎ(Commander Bun Bun)がカワイイ

#6 Prefect

公式ページ・SaaS・サポート

概要

ワークフローエンジン。基本的な機能(処理・依存をPythonで書く)などはAirflowに似ています。

  • タスク間のデータの受け渡し
  • スケジューラ
    • Airflowだとアーキテクチャ的な制約が(バージョン1系では)あった
  • DAGのバージョン管理
  • Hybrid Model(データやコードと管理情報を分離)

などの点で、Airflowより優れていると主張しています
(詳しくはWhy Not Airflow)。

スクショ

Prefect
((Prefect Docs)[https://docs.prefect.io/orchestration/ui/flow-run.html#schematic])より

日本語資料

その他

#7 Great Expectations

公式ページ・SaaS・サポート

概要

データの品質管理ツールです。

具体的には、

などを、DWHやPandasのデータに対して行うことができます。
AirflowDagsterと連携もできます。

スクショ


Great Expectationsのドキュメントより

#8 Apache Spark

公式ページ・SaaS・サポート

概要

分散処理フレームワーク。DaskRayと同じカテゴリ。

日本語資料

英語資料

#9 Amundsen

公式ページ・SaaS・サポート

概要

メタデータ管理ツール。元々Lyftの社内ツールだったのが、Linux FoundationのLF AI&DATAでOSS化。

歴史のあるメタデータ管理ツールApache Atlasに比べると、

  • Atlasの方はHadoopエコシステム色が強い
  • Amundsenは管理というより、「Discovery」(メタデータの検索のニュアンス?)を押し出している
    • Lineageやマスキング・認可などはAtlasの方が強い?

印象があります(なおAmundsenはバックエンドとしてAtlasを使えます)。

スクショ

Amundsen
Amundsenのドキュメントより

日本語資料

英語資料

#10 Apache Flink

公式ページ・SaaS・サポート

概要

分散処理エンジン。ストリーミング処理の文脈でよく出ますが、バッチ処理もできます。
似たジャンルの製品のApache SparkやApache Samza、Apache Stormと比べて、

  • メッセージ単位の処理
    • Sparkと違いMicro Batchではない
  • Event Time Processing
  • Exactly-Once
  • Stateの管理機能の豊富さ
  • バッチ処理もストリーミング処理も出来る

等を押し出しているのかなーと思っています。

なお、Apache Beamで書くと、SparkやSamzaと入れ替え可能です(ただし留保付き)。

スクショ

Flink

Flinkのドキュメントより

英語資料