はじめに |導入 |ドキュメントとサポート |ブログ |ライセンス
Pathway は、ストリーム処理、リアルタイム分析、LLM パイプライン、RAG 用の Python ETL フレームワークです。
Pathway には使いやすい Python APIが付属しており、お気に入りの Python ML ライブラリをシームレスに統合できます。 Pathway コードは多用途かつ堅牢です。開発環境と運用環境の両方で使用でき、バッチ データとストリーミング データの両方を効果的に処理できます。同じコードをローカル開発、CI/CD テスト、バッチ ジョブの実行、ストリーム再生の処理、およびデータ ストリームの処理に使用できます。
Pathway は、Differential Dataflow に基づくスケーラブルな Rust エンジンを搭載しており、増分計算を実行します。 Pathway コードは、Python で書かれているにもかかわらず、Rust エンジンによって実行され、マルチスレッド、マルチプロセッシング、分散計算を可能にします。すべてのパイプラインはメモリ内に保持され、 Docker や Kubernetesを使用して簡単にデプロイできます。
pip を使用して Pathway をインストールできます。
pip install -U pathway
ご不明な点がございましたら、Discord でプロジェクトの背後にあるコミュニティとチームをご覧ください。
Pathway で何ができるかを確認する準備はできましたか?
簡単に実行できるサンプルの 1 つを試してください。
これらのすぐに起動できるサンプルは、ノートブック形式と Docker 形式の両方で利用でき、数回クリックするだけで起動できます。どれか 1 つを選んで、Pathway の実践体験を今すぐ始めてください。
Pathway は、バッチおよびストリーミング用の統合エンジンと Python との完全な互換性により、データ処理を可能な限り簡単にします。これは、次のような幅広いデータ処理パイプラインにとって理想的なソリューションです。
Pathway は、ライブ LLM および RAG パイプラインを構築するための専用 LLM ツールを提供します。ほとんどの一般的な LLM サービスおよびユーティリティのラッパーが含まれているため、LLM および RAG パイプラインの操作が驚くほど簡単になります。 LLM xpack のドキュメントを確認してください。
LLM ツールを備えた実行可能なサンプルの 1 つを遠慮なく試してください。そのような例はここで見つけることができます。
Pathway には Python 3.10 以降が必要です。
pip
使用して Pathway の現在のリリースをインストールできます。
$ pip install -U pathway
import pathway as pw
# Define the schema of your data (Optional)
class InputSchema ( pw . Schema ):
value : int
# Connect to your data using connectors
input_table = pw . io . csv . read (
"./input/" ,
schema = InputSchema
)
#Define your operations on the data
filtered_table = input_table . filter ( input_table . value >= 0 )
result_table = filtered_table . reduce (
sum_value = pw . reducers . sum ( filtered_table . value )
)
# Load your results to external systems
pw . io . jsonlines . write ( result_table , "output.jsonl" )
# Run the computation
pw . run ()
Google Colab で Pathway を実行します。
ここでさらに多くの例を見つけることができます。
Pathway を使用するには、それをインポートするだけです。
import pathway as pw
これで、処理パイプラインを簡単に作成し、Pathway に更新を処理させることができます。パイプラインが作成されたら、1 行のコマンドでストリーミング データの計算を開始できます。
pw . run ()
その後、通常の Python スクリプト$ python main.py
と同じように Pathway プロジェクト (たとえばmain.py
) を実行できます。 Pathway には、各コネクタによって送信されたメッセージの数とシステムの遅延を追跡できる監視ダッシュボードが付属しています。ダッシュボードにはログ メッセージも含まれます。
あるいは、Pathway 風のバージョンを使用することもできます。
$ pathway spawn python main.py
Pathway はマルチスレッドをネイティブにサポートしています。 3 つのスレッドでアプリケーションを起動するには、次のようにします。
$ pathway spawn --threads 3 python main.py
Pathway プロジェクトをすぐに開始するには、クッキーカッター テンプレートを使用できます。
Pathway は docker を使用して簡単に実行できます。
Dockerfile を使用して、Pathway Docker イメージを使用できます。
FROM pathwaycom/pathway:latest
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python" , "./your-script.py" ]
その後、Docker イメージをビルドして実行できます。
docker build -t my-pathway-app .
docker run -it --rm --name my-pathway-app my-pathway-app
単一ファイルのプロジェクトを扱う場合、本格的なDockerfile
作成する必要はないと思われるかもしれません。このようなシナリオでは、Pathway Docker イメージを使用して Python スクリプトを直接実行できます。例えば:
docker run -it --rm --name my-pathway-app -v "$PWD":/app pathwaycom/pathway:latest python my-pathway-app.py
標準の Python イメージを使用し、Dockerfile で pip を使用して Pathway をインストールすることもできます。
FROM --platform=linux/x86_64 python:3.10
RUN pip install -U pathway
COPY ./pathway-script.py pathway-script.py
CMD [ "python" , "-u" , "pathway-script.py" ]
Docker コンテナは、Kubernetes を使用したクラウド上でのデプロイメントに最適です。 Pathway アプリケーションを拡張したい場合は、Pathway for Enterprise に興味があるかもしれません。 Pathway for Enterprise は、エンドツーエンドのデータ処理とリアルタイムのインテリジェント分析に向けて特別に調整されています。クラウド上の分散コンピューティングを使用して拡張し、外部永続化セットアップによる分散 Kubernetes デプロイメントをサポートします。
Render などのサービスを使用して Pathway を簡単にデプロイできます。数回のクリックで Pathway をデプロイする方法をご覧ください。
ご興味がございましたら、お気軽にお問い合わせください。
Pathway は、Flink、Spark、Kafka Streaming などのストリーミングおよびバッチ データ処理タスク用に設計された最先端のテクノロジーを上回るパフォーマンスを発揮するように作られています。また、他のストリーミング フレームワークではすぐにサポートされない多くのアルゴリズム/UDF をストリーミング モードで実装することも可能になります (特に、時間的結合、反復グラフ アルゴリズム、機械学習ルーチン)。
興味があれば、ここでいくつかのベンチマークを試してみてください。
API ドキュメントを含む Pathway のドキュメント全体は、pathway.com/developers/ で入手できます。
ご質問がございましたら、お気軽に GitHub で問題をオープンするか、Discord に参加するか、[email protected] までメールをお送りください。
Pathway は BSL 1.1 ライセンスで配布されており、無制限の非営利使用と、ほとんどの商用目的での Pathway パッケージの無料使用が許可されています。このリポジトリ内のコードは、4 年後に自動的にオープン ソース (Apache 2.0 ライセンス) に変換されます。これを補完するいくつかのパブリック リポジトリ (サンプル、ライブラリ、コネクタなど) は、MIT ライセンスに基づいてオープン ソースとしてライセンスされています。
このリポジトリと統合するライブラリまたはコネクタを開発する場合は、まずそれを MIT/Apache 2.0 ライセンスの別のリポジトリとしてリリースすることをお勧めします。
Pathway のコア機能に関するあらゆる懸念については、問題を提起することをお勧めします。さらに詳しい情報が必要な場合は、Pathway の Discord コミュニティにお気軽にご参加ください。