ログやメトリクスを収集・変換し、任意の宛先へルーティングするRust製の高性能なオブザーバビリティデータパイプライン。
warpstreamlabs/bento
メッセージブローカー、クラウドサービス、データベースをつなぎ、間でペイロードを変換するマッピング言語を備えたGo製ストリームプロセッサ。
- スター
- 2,168
- フォーク
- 236
- 未解決の Issue
- 153
- 最終コミット
- 20 分前
これは何?
BentoはGoで書かれたストリームプロセッサです。Kafka、NATS、Redis Streams、AWSやGCPのサービス、SQLデータベースなどのソースからデータを読み込み、プロセッサのチェーンを通して処理した後、シンクに書き込みます。パイプラインはYAMLで宣言するため、基本的な構成なら1つの設定ファイルにまとめられます。
処理ステージではデータのエンリッチ、変換、フィルタリングを行えます。ペイロードの再構成には、Bento組み込みのマッピング言語Bloblangを使います。配信にはディスク上に状態を保持しないプロセス内トランザクションモデルを採用しており、ソースとシンクが少なくとも1回の配信に対応していれば、クラッシュ後も少なくとも1回の配信を維持することを目指します。Bentoは静的バイナリ、Dockerイメージ、またはサーバーレス関数として提供されています。
livenessとreadinessのエンドポイントを公開し、Statsd、Prometheusなどのバックエンドにメトリクスを送信するほか、OpenTelemetryのトレースにも対応しています。Goプラグインとしてカスタムコンポーネントを追加できます。このリポジトリは、ライセンス変更前に元のプロジェクトからフォークされたものです。
主な機能
- 01Kafka、NATS、Redis、AWS、GCP、Azure、SQLデータベースなどを入出力先として接続できます。
- 02組み込みマッピング言語Bloblangを使った宣言的なYAMLパイプライン。
- 03ソースとシンクが対応していれば、ディスク上に状態を保持せず、少なくとも1回の配信を実現します。
- 04静的バイナリ、Dockerイメージ、またはサーバーレス関数として提供されています。
- 05/pingと/readyのヘルスエンドポイントに加え、Prometheus、Statsd、OpenTelemetryによる可観測性を提供します。
- 06Goプラグインとして記述したカスタムコンポーネントに対応しています。
ユースケース
- KafkaやNATSからデータベースまたは検索インデックスへ、簡単な変換を加えながらイベントを移す。
- 下流サービスに届く前に、メッセージストリームをエンリッチまたはフィルタリングする。
- AWS KinesisやGCP Pub/Subなどのクラウドサービスを、他のブローカーと接続する。
- 大規模なストリーム処理プラットフォームを運用せずに、軽量なコンテナ化パイプラインを実行する。
クイックスタート
- 1
Docker イメージを pull する
docker pull ghcr.io/warpstreamlabs/bento - 2
設定ファイルをマウントして、Docker で Bento を実行する
docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento
使う前に知っておきたいこと
- README によると、リリースプロセスはまだ整備中のため、標準的なバイナリインストール方法はありません。
- プロジェクトのメタデータでは、ライセンスが明確に特定されていません。
- 一部のコンポーネントでは、zmq4 などの特別なビルドタグと外部の C ライブラリが必要です。
トピック
よくある質問
- bento とは?
- メッセージブローカー、クラウドサービス、データベースをつなぎ、間でペイロードを変換するマッピング言語を備えたGo製ストリームプロセッサ。 BentoはGoで書かれたストリームプロセッサです。Kafka、NATS、Redis Streams、AWSやGCPのサービス、SQLデータベースなどのソースからデータを読み込み、プロセッサのチェーンを通して処理した後、シンクに書き込みます。パイプラインはYAMLで宣言するため、基本的な構成なら1つの設定ファイルにまとめられます。
- bento は無料で使えますか?ライセンスは?
- bento は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- bento は今もメンテナンスされていますか?
- 活発にメンテナンス中。bento の最終コミットは 2026年10月22日 です。
- bento は何に使えますか?
- KafkaやNATSからデータベースまたは検索インデックスへ、簡単な変換を加えながらイベントを移す。 下流サービスに届く前に、メッセージストリームをエンリッチまたはフィルタリングする。 AWS KinesisやGCP Pub/Subなどのクラウドサービスを、他のブローカーと接続する。 大規模なストリーム処理プラットフォームを運用せずに、軽量なコンテナ化パイプラインを実行する。
- bento のインストール方法は?
- Docker イメージを pull する: docker pull ghcr.io/warpstreamlabs/bento 設定ファイルをマウントして、Docker で Bento を実行する: docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento
- bento はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/warpstreamlabs/bento
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Rustエンジンを基盤とし、ストリーム処理、リアルタイム分析、LLMパイプライン、RAGに対応するPython ETLフレームワーク。
Kafka、MQTT、NATSなどのリアルタイムデータに対して、SQL、Python UDF、ML/LLM処理を実行するRust製ストリーム処理エンジン。
API、データベース、ファイルからウェアハウス、データレイク、AIアプリへデータを移動する、ELTパイプライン向けオープンソース基盤。
クラウドやSaaSのインフラメタデータをデータウェアハウスに同期し、SQLでのクエリ、資産インベントリ、セキュリティ分析を可能にするCLIとデータパイプライン。
Apache NiFiは、ブラウザーUIで管理しながら、データソースと送信先の間のデータフローを自動化、ルーティング、監視するシステムです。