このプロジェクトについて

Luigiは、バッチジョブの複雑なパイプラインを構築するためのPythonパッケージ(Python 3.10から3.14でテスト済み)です。依存関係の解決、ワークフローの管理、視覚化、障害の処理、コマンドラインの統合などを処理します。 インストールは、pipを使用して行います。最新の安定版は、`pip install luigi`、TOMLベースの構成サポートを追加する場合は、`pip install luigi[toml]`を使用します。最新の開発コードは、GitHubリポジトリから直接インストールできます。 背景:Luigiは、長時間実行されるバッチプロセスに関連するプランニングを処理します。タスクは、Hadoopジョブ、データベースへのデータのダンプ、機械学習アルゴリズムの実行など、長時間実行されるジョブであることが多いです。Luigiは、Hive、Pig、Cascadingなどの低レベルのデータ処理ツールを置き換えることを目的としていません。代わりに、各タスクがHiveクエリ、JavaのHadoopジョブ、ScalaまたはPythonのSparkジョブ、Pythonスニペット、データベーステーブルのダンプなどである、多くのタスクをまとめることを目的としています。Luigiは、数千のタスクで構成される長時間実行されるパイプラインを構築することをサポートしており、これらのタスクは数日または数週間かけて完了します。 Luigiには、Pythonのマップリュースジョブ、Hiveジョブ、Pigジョブをサポートする共通のタスクテンプレートが付属しています。また、HDFSとローカルファイルのファイルシステム抽象化を提供し、ファイルシステム操作が原子的に実行されることを保証し、データパイプラインが部分的なデータを含む状態でクラッシュしないようにします。 Luigiサーバーには、タスクの検索とフィルタリングのためのWebインターフェイスと、視覚化ツールが含まれており、ワークフローの依存関係グラフのグラフィカルな概要を提供し、各ノードが実行されるタスクを表し、色は完了したタスクと保留中のタスクを示します。 哲学:概念的には、LuigiはGNU Makeに似ており、他のタスクに依存するタスクがあり、OozieやAzkabanと類似しています。主な違いは、LuigiがHadoop専用に構築されていないことであり、他の種類のタスクを追加できることです。すべてがPythonで構成されており、XML構成や外部データファイルではなく、依存関係グラフはPython内で指定されるため、日付の演算や同じタスクの他のバージョンへの再帰参照を含む依存関係グラフを簡単に構築できます。ワークフローは、Pigスクリプトの実行やscpファイルの転送などのPython以外のタスクをトリガーすることもできます。 採用:Luigiは、Spotify内で、数千のタスクを毎日実行し、複雑な依存関係グラフで組織化されており、主にHadoopジョブを実行し、レコメンデーション、トップリスト、A/Bテスト分析、外部レポート、内部ダッシュボードを提供しています。READMEには、Foursquare、Stripe、Buffer、SeatGeek、Treasure Data、AdRoll、Groupon/OrderUp、Red Hat Marketing Operations、GetNinjas、voyages-sncf.com、Open Targets、Leipzig University Library、Glossier、Data Revenue、Uppsala University、GIPHY、xtream、CIANなど、Luigiについて書いたり発表したりした多くの組織がリストされています。正確なユーザー数は不明です。Luigiは、登録ウォールなしでオープンソースであるためです。 外部リンクには、Google Groupsメーリングリスト、PyPIリリース、GitHubソースコード、Slack、Hipchatなどのサービス用のHubot統合プラグインが含まれています。 著者:Luigiは、SpotifyでErik BernhardssonとElias Freiderによって主に構築され、2012年末にオープンソース化されて以来、多くのコントリビューターが参加しています。Arash Rouhaniは、2015年から2019年までチーフメンテナーを務め、Spotifyのデータチームが現在Luigiをメンテナンスしています。