Repolode
apache

apache/hamilton

Pythonが動く環境ならどこでも実行できる、テスト可能で自己文書化されたDAGとしてデータ変換を定義する軽量なPythonライブラリ。

スター
2,615
フォーク
222
未解決の Issue
189
最終コミット
昨日

これは何?

Apache Hamiltonは、データ変換を有向非巡回グラフとして構成するためのPythonライブラリです。通常のPython関数を記述し、各関数の引数名でほかの関数への依存関係を宣言します。Hamiltonが定義を読み取ってグラフを自動構築するため、コードの読みやすさを保ちながら可視化できます。

DAGの定義と実行は分離されています。同じ変換処理を、スクリプト、ノートブック、Airflowのタスク、FastAPIサーバーで実行できます。環境ごとに動作を切り替える@config.when()や、出力を検証する@check_outputなどの関数修飾子に加え、pandas、polars、Ibisのデータフレームのスキーマを追跡するSchemaValidatorアダプターを備えています。

プロジェクトには、DAGのカタログ化、データセットのプロファイリング、リネージュ付きの実行履歴の追跡を行うオプションのUIが含まれています。ローカルサーバーとして実行することも、Dockerでセルフホストすることもできます。Apache Software Foundationのインキュベーションプロジェクトで、Stitch Fixで開発が始まりました。

主な機能

  • 01依存関係を引数名で宣言する、通常のPython関数として変換処理を定義できます。
  • 02関数定義からDAGを自動構築し、可視化できます。
  • 03@config.when()などの関数修飾子により、環境ごとのコード重複を抑えられます。
  • 04@check_outputとSchemaValidatorで、出力とデータフレームのスキーマを検証できます。
  • 05オプションのUIで、実行履歴、リネージュ、データセットのプロファイルを追跡できます。

ユースケース

  • pandas、polars、またはSparkベースのワークフローで、ETLパイプラインや特徴量エンジニアリングのコードを構成する。
  • ノートブック、Airflow DAG、FastAPIサービスで同じ変換コードを再利用する。
  • リネージュと検証が必要なRAGやLLMのデータ準備処理を構築する。
  • テスト可能な関数を使って、データサイエンスのコードをノートブックから本番用モジュールへ移行する。

クイックスタート

  1. 1

    visualization extra を指定してライブラリをインストールします

    pip install "apache-hamilton[visualization]"
  2. 2

    可視化を行うには、Graphviz をシステムに別途インストールします

  3. 3

    Apache Hamilton UI サーバーを起動します

    hamilton ui

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

  • DAG の可視化には Graphviz を別途インストールする必要があります。
  • このプロジェクトは Apache のインキュベーション中のため、ASF による正式な承認をまだ受けていません。

トピック

よくある質問

hamilton とは?
Pythonが動く環境ならどこでも実行できる、テスト可能で自己文書化されたDAGとしてデータ変換を定義する軽量なPythonライブラリ。 Apache Hamiltonは、データ変換を有向非巡回グラフとして構成するためのPythonライブラリです。通常のPython関数を記述し、各関数の引数名でほかの関数への依存関係を宣言します。Hamiltonが定義を読み取ってグラフを自動構築するため、コードの読みやすさを保ちながら可視化できます。
hamilton は無料で使えますか?ライセンスは?
hamilton は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
hamilton は今もメンテナンスされていますか?
活発にメンテナンス中。hamilton の最終コミットは 2026年10月21日 です。
hamilton は何に使えますか?
pandas、polars、またはSparkベースのワークフローで、ETLパイプラインや特徴量エンジニアリングのコードを構成する。 ノートブック、Airflow DAG、FastAPIサービスで同じ変換コードを再利用する。 リネージュと検証が必要なRAGやLLMのデータ準備処理を構築する。 テスト可能な関数を使って、データサイエンスのコードをノートブックから本番用モジュールへ移行する。
hamilton のインストール方法は?
visualization extra を指定してライブラリをインストールします: pip install "apache-hamilton[visualization]" 可視化を行うには、Graphviz をシステムに別途インストールします Apache Hamilton UI サーバーを起動します: hamilton ui
hamilton はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/apache/hamilton

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

関連プロジェクト