PyCon JP 2025 Logo
広島国際会議場
JPEN
Satoru Kadowaki

Satoru Kadowaki

Pythonによるデータ処理のための分散フレームワーク選び

ダリア1日本語
02:05 - 02:3530min
DAY 2
09/27
SAT

Pythonでデータ処理を行うとき、pandasやpolarsのようなライブラリ群を使う人は多いと思います。また、これらのライブラリにこだわらずPythonスクリプト「効率よくスケールさせたい」、「定期的に動かしたい」と考えたことはありませんか? データ量が増えてくると様々なケースで「もっと自動化して効率よく処理したい」という壁にぶつかることがよくあります。 そんなときに役立つのが、Dask、Ray、Prefectなどの「分散処理」や「ワークフロー管理」に関わる様々な分散フレームワークたちです。 しかしながら、これらのフレームワークは数がありすぎて「どれがどんなときに向いているのか」が分かりづらいのも事実です。 このトークでは、複数のPythonで利用可能な分散処理フレームワークの特徴を比較します。Pythonのコードをスケーラブルに・効率的に動かすための方法について紹介します。Ray、Prefect、Dask、Restateなどの他、用途別にどのような選択肢があり、何を基準に選べば良いのかを整理し、「とりあえずDask?」「Rayって何?」といった疑問を持つPythonユーザーのために、「選び方」を共有します。


トーク詳細 / Description

Pythonには多くの分散処理・ワークフロー系のツールがありますが、それぞれに向いているユースケースが異なり、初心者が全体像を把握するのはなかなか難しいのが実情です。

このトークでは、「Pythonコードをもっと速く、安定して、信頼性高く実行したい」と思った人に向けて、代表的な分散処理フレームワークの選び方と使いどころを以下の観点で紹介します。なお、下記の分散処理フレームワークすべてについてトーク時間内で話すのは困難であるため、トークでは3つ程度(Dask、Ray、Prefect)などのツールに絞って紹介します。(下記リストには比較やポイントのみとして登場するツールについても記載しています。)

  • Dask:pandas互換の並列処理基盤
  • Ray or Mars:汎用的な並列タスク実行。機械学習にも強い
  • Prefect or Airflow or Luigi:ETLやバッチ処理のワークフローを構築・スケジュール
  • Temporal or ReState:ステートフルな処理を信頼性高く管理。複雑なフローや再試行、管理が必要なときに
  • Modal:任意のPython関数をServerlessで実行。

それぞれのツールの特徴、学習コスト、使い始めやすさ、Pythonとの親和性などを比較しながら、「Pythonにおける分散処理フレームワーク選び」を提案します。 このトークを通じて、「Pythonで書いたコードを、もっときちんと動かしたい」という人が、迷わずに一歩踏み出せるようになることを目指しています。

Satoru Kadowaki

Satoru Kadowaki

プロフィール