跳至主要内容
跳至主要内容
编辑此页

Developing on ClickHouse with Moose OLAP

社区维护

Moose OLAPMoose 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 实例,该实例将自动从您的代码定义中复制所有生产表

moose dev

重要提示:您的生产 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.