- 従来のデータバックエンド開発の複雑さと遅さを解消し、TypeScriptやPythonでデータ分析バックエンドをすばやく開発できるようにするオープンソースフレームワーク
- 標準提供スタック(ClickHouse、Redpanda、Temporal)を備え、今後はさまざまなクラウドプラットフォームへの拡張を予定
- ローカル開発を簡素化し、迅速なテストと即時のホットリロードをサポート
- さまざまなデータ集約型アプリケーションの構築に適しており、リアルタイム分析、データ移行、イベントストリーミングなどに活用可能
Moose
- Mooseは、TypeScriptまたはPythonのコードだけでデータ分析バックエンドを構築できるようにするフレームワーク
- 従来のデータバックエンド開発ツール群が抱える、遅く複雑な問題を解決するために存在する
-
今日のツール群で分析バックエンドを構築する際の問題
- ツール分散の問題
Kafka、ClickHouse、Postgres、dbt、Airflowなど、数多くのサービス統合に時間を費やすことになる
- スキーマ不一致の問題
コードモデル、データベーススキーマ、APIバリデーション、メッセージ形式が時間の経過とともに不一致になる
- 開発ワークフローの難しさ
ローカルテストの欠如、長いデプロイ周期、頻繁なコンテキストスイッチにより開発生産性が低下する
- SQL専用処理
慣れ親しんだプログラミング言語ではなく、SQLだけを使わなければならない不便さがある
-
自前で構築する場合に発生する問題
- 単純なフィールド追加でも、次の作業をすべて手動で処理しなければならない
- TypeScript/Pythonコードモデルの修正
- データベーススキーマの修正
- Kafkaトピックの更新
- ランタイムバリデーションの更新
- 変換とクエリの更新
- 毎回、すべての変更を安全にテストするために多くの時間と労力が必要になる
Mooseの解決アプローチ
-
Mooseが提供するもの
- TypeScriptやPythonのコードそのものが、データアプリケーションロジックとインフラの単一の信頼できる情報源として機能する
- コードベースで次を保証する
- 完全な型安全性とバリデーション
- ボイラープレートコードの削減
- 開発段階での事前エラー検出
-
コンテキストスイッチの排除
- データベーステーブルの命名規則、モデル/テーブルのフィールド同期、フィールドがNullableかどうかなどを気にする必要がない
-
ローカル開発
- ワンクリック実行
たった1つのコマンドでデータインフラ全体をローカルで実行できる
- ゼロ設定
すべてのコンポーネントが事前構成されており、追加設定が不要
- 本番環境と同一の構成
実際のデプロイ環境と同じ技術スタックを使用
- リアルタイムフィードバック
変更内容がスタック全体に即座に反映される
-
一般的な開発ワークフロー
- モデルを追加または変更して保存すると、ローカルインフラに即座にホットリロードされる
- 新しいフィールドを追加すると、API、ストリーム、データベースに即時適用される
- パイプラインのテストも、ローカルのインジェストAPIにサンプルデータを送信してすぐに確認できる
-
ホットリロードワークフロー
- モデル修正後に保存するだけで、変更内容が自動反映される
- 追加されたフィールドは、APIバリデーション、データベーススキーマ、ストリームに自動適用される
-
モジュール性
標準提供されるMooseスタック
- ClickHouse
デフォルトで有効なOLAPデータベース
- Redpanda
Kafka互換のイベントストリーミングプラットフォーム(無効化可能)
- Temporal
ワークフローオーケストレーションツール(無効化可能)
-
計画中の拡張
- Snowflake、Databricks、BigQuery
クラウドデータウェアハウスのサポートを予定
- Kafka、Kinesis、Pulsar
さまざまなKafka互換イベントストリーミングプラットフォームのサポートを予定
Mooseで構築できるもの
- ユーザー向けリアルタイム分析
リーダーボード、チャート、メトリクスなどをWeb/モバイルアプリに統合
- BIおよびデータウェアハウス
さまざまなデータソースを収集して分析データベースを構築し、レポートを作成
- データマイグレーション
レガシーシステムから最新のデータバックエンドへデータを移行
- イベントストリーミング
Kafka、Redpandaなどのストリーミングプラットフォーム上でイベントをリアルタイム処理
- ETL作業
さまざまなソースのデータを定期的に収集し、分析環境に投入
まだコメントはありません。