Repolode
spotify

spotify/luigi

依存関係の解決、ワークフロー管理、障害処理、Webビジュアライザーを備えた、複雑なバッチジョブのパイプラインを構築するためのPythonパッケージ。

スター
18,784
フォーク
2,474
未解決の Issue
192
最終コミット
8 日前

これは何?

Luigiは、多数のバッチタスクを連結してパイプラインを構築するためのPythonパッケージです。各タスクとその依存関係をPythonコードで定義すると、Luigiが依存関係グラフを解決し、タスクを順番に実行します。また、障害が起きても完了済みの処理をやり直さずに、長時間実行するワークフローを再開できるようにします。

タスクには、HadoopやHiveのジョブ、Pigスクリプト、Sparkジョブ、データベーステーブルのダンプ、scpによるファイル転送、任意のPython関数を指定できます。LuigiにはHadoopとHDFSの組み込みサポートがあり、ローカルファイルに対するファイルシステム操作はアトミックなので、実行に失敗しても不完全な出力が残りません。

LuigiにはWebサーバーが付属しており、タスクの検索や絞り込み、依存関係グラフの表示に使えるビジュアライザーを利用できます。完了済みのタスクと未処理のタスクは異なる色で表示されます。pipでインストールでき、オプションの追加機能としてTOMLベースの設定にも対応しています。

主な機能

  • 01タスクの依存関係を解決し、正しい順序で実行する。
  • 02Hadoop、HDFS、Hive、Pig、Sparkのジョブを標準でサポート。
  • 03ファイルシステム操作がアトミックなため、失敗しても不完全なデータが残らない。
  • 04タスクの検索や依存関係グラフの表示に使えるWebビジュアライザー。
  • 05タスクをPythonで定義できるため、依存関係をプログラムから計算できる。

ユースケース

  • Hadoop、Hive、Sparkのジョブで構成される日次または時間単位のデータパイプラインのオーケストレーション。
  • データベースのエクスポート、変換、機械学習の学習処理を連結する。
  • 長い複数ステップのバッチワークフローで障害が起きた後、完了済みのタスクを再実行せずに再開する。

クイックスタート

  1. 1

    PyPIからLuigiをインストールする

    pip install luigi
  2. 2

    TOML設定のサポート付きでLuigiをインストールする(任意)

    pip install luigi[toml]

使う前に知っておきたいこと

  • バッチパイプライン向けに設計されているため、リアルタイム処理やストリーミング処理には適していません。
  • タスクはPythonコードで定義するため、Pythonの経験がないチームには導入のハードルが高い場合があります。

トピック

よくある質問

luigi とは?
依存関係の解決、ワークフロー管理、障害処理、Webビジュアライザーを備えた、複雑なバッチジョブのパイプラインを構築するためのPythonパッケージ。 Luigiは、多数のバッチタスクを連結してパイプラインを構築するためのPythonパッケージです。各タスクとその依存関係をPythonコードで定義すると、Luigiが依存関係グラフを解決し、タスクを順番に実行します。また、障害が起きても完了済みの処理をやり直さずに、長時間実行するワークフローを再開できるようにします。
luigi は無料で使えますか?ライセンスは?
luigi は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
luigi は今もメンテナンスされていますか?
活発にメンテナンス中。luigi の最終コミットは 2026年10月14日 です。
luigi は何に使えますか?
Hadoop、Hive、Sparkのジョブで構成される日次または時間単位のデータパイプラインのオーケストレーション。 データベースのエクスポート、変換、機械学習の学習処理を連結する。 長い複数ステップのバッチワークフローで障害が起きた後、完了済みのタスクを再実行せずに再開する。
luigi のインストール方法は?
PyPIからLuigiをインストールする: pip install luigi TOML設定のサポート付きでLuigiをインストールする(任意): pip install luigi[toml]
luigi はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/spotify/luigi

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト