Moose OLAP を使用した ClickHouse 上での開発
Community Maintained
Moose OLAP は、TypeScript と Python でリアルタイム分析バックエンドを構築するためのオープンソースの開発者向けツールキットである Moose Stack の中核モジュールです。
Moose OLAP は、ClickHouse にネイティブ対応した、開発者フレンドリーな抽象化と ORM ライクな機能を提供します。
Moose OLAP の主な機能
- コードとしてのスキーマ: 型安全性と IDE の自動補完を活用しながら、TypeScript または Python で ClickHouse のテーブルを定義できます
- 型安全なクエリ: 型チェックと自動補完のサポート付きで SQL クエリを記述できます
- ローカル開発: 本番環境に影響を与えることなく、ローカルの ClickHouse インスタンスに対して開発およびテストを実行できます
- マイグレーション管理: スキーマ変更をバージョン管理し、コードからマイグレーションを管理できます
- リアルタイムストリーミング: ClickHouse を Kafka や Redpanda と組み合わせたストリーミング取り込みをネイティブにサポートします
- REST API: ClickHouse のテーブルおよびビューの上に、完全にドキュメント化された REST API を容易に生成できます
5 分以内で始める
最新かつ最適なインストール手順と Getting Started ガイドについては、Moose Stack ドキュメントを参照してください。
または、このガイドに従って、既存の ClickHouse または ClickHouse Cloud のデプロイメント上で Moose OLAP を 5 分以内に起動して利用を開始できます。
前提条件
- Node.js 20+ または Python 3.12+ - TypeScript または Python 開発に必須
- Docker Desktop - ローカル開発環境用
- macOS/Linux - Windows は WSL2 経由で動作
生成されたモデルの確認
Moose CLI は、既存の ClickHouse テーブルから TypeScript のインターフェースまたは Python の Pydantic モデルを自動生成します。
app/index.ts ファイルで新しいデータモデルを確認してください。
開発の開始
開発サーバーを起動して、コード定義から本番テーブルをすべて自動再現したローカルの ClickHouse インスタンスを立ち上げます:
重要: 本番環境の ClickHouse には一切変更を加えません。これはローカル開発環境を作成するだけです。
Moose OLAP を用いた構築
コード内でテーブルを定義できたので、Web アプリの ORM データモデルと同様に、分析データの上に API やマテリアライズドビューを構築する際に、型安全性とオートコンプリートといった利点を得られます。次のステップとして、例えば以下を試すことができます:
- Moose API を使って REST API を構築する
- Moose Workflows や Moose Streaming を使ってデータを取り込んだり変換したりする
- Moose Build と Moose Migrate を使用して本番環境への移行を検討する
サポートを受けてつながり続ける
- リファレンスアプリケーション: オープンソースのリファレンスアプリケーション Area Code を確認してください。これは、専用のインフラストラクチャを必要とする、豊富な機能を備えたエンタープライズ対応アプリケーション向けに、必要な構成要素がすべてそろったスターターリポジトリです。サンプルアプリケーションとして、User Facing Analytics と Operational Data Warehouse の 2 つが用意されています。
- Slack コミュニティ: サポートやフィードバックのために、Moose Stack のメンテナーと Slack 上で つながりましょう。
- チュートリアル動画: Moose Stack の機能に関する動画チュートリアル、デモ、詳細解説は YouTube で視聴できます。
- コントリビュート: コードを参照し、Moose Stack へのコントリビュートや Issue の報告を GitHub から行ってください。