Developing on ClickHouse with Moose OLAP | ClickHouse Docs - ClickHouse 教程
Developing on ClickHouse with Moose OLAP
Moose OLAP 是 Moose Stack 的核心模块,一个用于在 Typescript 和 Python 中构建实时分析后端开源开发者工具包。
Moose OLAP 提供了开发者友好的抽象和类似 ORM 的功能,原生构建于 ClickHouse 之上。
Moose OLAP 的主要特性
- 代码即模式:使用类型安全和 IDE 自动补全在 TypeScript 或 Python 中定义您的 ClickHouse 表
- 类型安全的查询:编写具有类型检查和自动补全支持的 SQL 查询
- 本地开发:在本地 ClickHouse 实例上进行开发和测试,而不会影响生产环境
- 迁移管理:通过代码版本控制您的模式更改并管理迁移
- 实时流式传输:内置支持将 ClickHouse 与 Kafka 或 Redpanda 配对进行流式摄取
- REST API:轻松生成完全记录的 REST API,置于您的 ClickHouse 表和视图之上
5 分钟内开始使用
有关最新和最全面的安装和入门指南,请参阅 Moose Stack 文档。
或者按照本指南,在 5 分钟内使用 Moose OLAP 在现有的 ClickHouse 或 ClickHouse Cloud 部署上运行。
先决条件
- Node.js 20+ 或 Python 3.12+ - 用于 TypeScript 或 Python 开发
- Docker Desktop - 用于本地开发环境
- macOS/Linux - Windows 通过 WSL2 运行
安装 Moose
将 Moose CLI 全局安装到您的系统
bash -i <(curl -fsSL https://fiveonefour.com/install.sh) moose
设置您的项目
选项 A:使用您自己的现有 ClickHouse 部署
重要提示:您的生产 ClickHouse 将保持不变。 这将仅初始化一个新的 Moose OLAP 项目,其中数据模型源自您的 ClickHouse 表。
# TypeScript
moose init my-project --from-remote <YOUR_CLICKHOUSE_CONNECTION_STRING> --language typescript
# Python
moose init my-project --from-remote <YOUR_CLICKHOUSE_CONNECTION_STRING> --language python
您的 ClickHouse 连接字符串应采用此格式
https://username:password@host:port/?database=database_name
选项 B:使用 ClickHouse 游乐场
尚未运行 ClickHouse 吗? 使用 ClickHouse 游乐场试用 Moose OLAP!
# TypeScript
moose init my-project --from-remote https://explorer:@play.clickhouse.com:443/?database=default --language typescript
# Python
moose init my-project --from-remote https://explorer:@play.clickhouse.com:443/?database=default --language python
安装依赖项
# TypeScript
cd my-project
npm install
# Python
cd my-project
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
您应该看到:Successfully generated X models from ClickHouse tables
探索您生成的模型
Moose CLI 自动从您现有的 ClickHouse 表生成 TypeScript 接口或 Python Pydantic 模型。
查看 app/index.ts 文件中的新数据模型。
开始开发
启动您的开发服务器,以启动一个本地 ClickHouse 实例,该实例将自动从您的代码定义中复制所有生产表
重要提示:您的生产 ClickHouse 将保持不变。 这会创建一个本地开发环境。
填充您的本地数据库
将您的数据填充到您的本地 ClickHouse 实例
从您自己的 ClickHouse
moose seed --connection-string <YOUR_CLICKHOUSE_CONNECTION_STRING> --limit 100
从 ClickHouse 游乐场
moose seed --connection-string https://explorer:@play.clickhouse.com:443/?database=default --limit 100
使用 Moose OLAP 构建
现在您已经在代码中定义了表,您将获得与 Web 应用中 ORM 数据模型相同的优势 - 类型安全性和在分析数据之上构建 API 和物化视图时的自动补全。 作为下一步,您可以尝试
获取帮助并保持联系
- 参考应用:查看开源参考应用 Area Code:一个入门仓库,其中包含构建功能丰富、面向企业且需要专业基础设施的应用程序所需的所有基本构建块。 有两个示例应用程序:面向用户的分析和运营数据仓库。
- Slack 社区:在 Slack 上 与 Moose Stack 维护者联系,以获取支持和反馈
- 观看教程:视频教程、演示和 Moose Stack 功能的深入介绍 在 Youtube 上
- 贡献:查看代码,为 Moose Stack 做出贡献,并报告问题 在 GitHub 上


© . This site is unofficial and not affiliated with ClickHouse, Inc.