bytewax/bytewax

Python Stream Processing

解決する課題

Bytewaxは、Pythonでステートフルなストリーム処理パイプラインを構築する方法を提供します。Apache FlinkやSparkのようなエンジンの高性能な分散処理能力と、Pythonエコシステムのアクセシビリティの間のギャップを埋め、開発者がお気に入りのPythonライブラリを使用してリアルタイムのデータ変換や機械学習を行えるようにします。

仕組み

Bytewaxはデータフロー計算モデルを使用しており、ユーザーは演算子とコネクタのグラフを定義します。データは Input(KafkaやS3など)から始まり、Operators(mapやfilterのようなステートレスな変換、またはreduceやfold_windowのようなステートフルな変換)を通過し、最終的に Output(データベースやメッセージキュー)へと流れます。基盤となるエンジンはパフォーマンスと分散処理のためにRustで構築されており、インターフェースはPythonファーストです。

対象ユーザー

イベント駆動型データをリアルタイムで処理し、ローカル開発からKubernetesクラスターへスケールさせ、オンライン機械学習のワークロードをデータパイプラインに統合する必要がある開発者やデータエンジニア向けに設計されています。

ハイライト

  • Python-First インターフェース: パイプライン定義に標準的なPythonライブラリとツールを使用します。
  • ステートフル処理: 状態を自動的に維持・復旧し、イベント時間ウィンドウイングとフォールトトレランスをサポートします。
  • 分散スケーリング: waxctl を使用したKubernetesデプロイにより、複数のワーカーやノード間で水平方向にスケーリングします。
  • 豊富なコネクタエコシステム: Kafka、ファイルシステム、WebSockets、S3を標準サポートしています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト