ClickHouse BUILD 系列

发现市场波动,
用数据解释原因。

你将把公开的预测市场数据实时写入自己的 ClickHouse Cloud 服务,在写入时自动生成分钟级中间价序列,并发布市场动态仪表板。随后通过价差和成交速度,解释一次行情异动。

2.5 小时 · 动手实操9 个模块5 个市场 · 10 个结果 token公开 API · 无需钱包

这不是交易教程, 而是一次实时数据实践。

公开预测市场提供了一类难得的数据:真正实时、结构并不规整,而且可以免费读取。本课程只使用公开的 Gamma、CLOB 和 Data API;全程无需钱包、入金、下单,也不需要 Polymarket API 密钥。

课程重点不在数据源本身,而在它对系统设计提出的要求。WebSocket 速度很快,却不是持久化日志,因此采集器会检测长时间无消息或连接卡顿的情况,自动重连,并在降级期间轮询公开的 CLOB 订单簿。另一个循环则通过确定性 ID 和五秒重叠窗口核对成交记录,确保重复到达的同一笔成交只写入一次。

每张表的键都根据实际查询模式设计:先按小时分桶,再按需要分组的 token 或 condition 排序。分钟级中间价序列会在写入时自动维护,无需每次刷新仪表板时重新计算。

硬编码 token ID启动时通过 Gamma 自动发现
把 WebSocket 当作日志卡顿检测、自动重连和 REST 兜底
每次刷新都重算写入时生成一分钟 OHLC
只知道价格发生变化结合价差、报价新鲜度和成交量分析

最终成果

完成课程后,你将拥有这些成果。

所有数据都来自公开 API,并写入你自己的 ClickHouse Cloud 服务;本地只需运行一个无状态 Docker 容器。

01

一个由查询驱动的数据模型

在 ClickHouse Cloud 中创建六个对象:markets、price_ticks、trades、基于它们的 FINAL 视图、分钟级聚合表及其物化视图;并使用 UInt256 token ID、精确小数和枚举类型进行建模。

02

一个能够应对数据源波动的采集器

具备心跳与卡顿检测、自动重连和降级期间的 CLOB REST 订单簿兜底;健康检查端点会如实报告 degraded 状态,而不是直接判定失败。

03

准确核对每一笔成交

公开成交采集使用五秒重叠窗口和确定性 ID,并以 ReplacingMergeTree 作为第二层去重保障。

04

写入即生成一分钟 OHLC

使用 AggregatingMergeTree 保存 argMin、argMax、min、max 和 count 状态,再通过对应的 Merge 函数汇总;你还会将聚合查询的读取行数与原始全表扫描进行对比。

05

回答四个关键市场问题

查询当前概率、五分钟内波动最大的结果、价差与报价新鲜度以及成交速度,为行情异动提供完整背景,而不只是显示一条标题。

+

一个 Cloud 仪表板

Polymarket market pulse 在 ClickHouse Cloud 控制台中创建并保存五个查询,其中包括分钟级折线图,无需安装任何本地仪表板工具。

课程安排 · 2 小时 30 分钟实操

九个模块,循序完成。

沿着一条完整主线,发现市场、设计数据模型、接入实时数据、生成聚合,最后分析行情异动并发布仪表板。

  1. 00

    环境准备

    15 分钟

    准备 macOS 或 WSL 2 上的 Ubuntu 环境,安装 clickhousectl 和 ClickHouse 客户端,创建 Cloud 服务,并确保预检输出 READY。

  2. 01

    查找市场

    10 分钟

    通过 Gamma 获取交易最活跃的开放市场,并理解 condition ID 与结果 token ID 的区别。

  3. 02

    根据实际查询中的过滤条件,创建类型明确的市场表、tick 表和成交表,再添加分钟级中间价聚合表及其物化视图。

  4. 03

    启动采集器,了解健康检查状态,并确认数据正在写入 Cloud。当数据源受限或长时间没有更新时,可以切换到经过验证的 fixture 模式。

  5. 04

    实时聚合

    20 分钟

    合并聚合状态,与等价的原始查询对比读取行数,并确认分钟级数据会随写入自动更新,无需定时刷新任务。

  6. 05

    追查异动

    20 分钟

    通过四类查询分析当前概率、波动最大的结果、价差是否扩大或报价是否过期,以及成交速度是否加快。

  7. 06

    按指定名称保存五个查询,并组合成 Polymarket market pulse:四个当前状态视图和一张分钟级折线图。

  8. 07

    让 ClickHouse Agent 查询实时表、发现行情异动,并结合价差、报价新鲜度和成交量分析原因;再使用结果确定的 SQL 复核结论,记录判断错误之处。

  9. 08

    收尾

    10 分钟

    保存最终验证查询,停止采集器,并了解当生产系统已把数据写入消息流时,如何改用 ClickPipes 接入。

课程默认支持自主学习。每个模块都标明起始状态,并以可自行运行的完成检查收尾。live、带有最新 REST 时间戳的 degraded 和 fixture 都是有效的教学状态;讲师指南会说明全场当前使用哪一种状态,并明确区分 fixture 数据与实时数据。

参加之前

适合哪些人?需要准备什么?

适合谁 适合人群

  • 第一次为仪表板接入实时数据源的工程师
  • 需要回答 “这个数字为什么发生变化?”,并希望用查询结果而不是猜测来解释的人
  • 正在纠结聚合该每次重算、还是在写入时维护的团队
  • 熟悉 SQL、终端和 Docker 即可,无需金融行情背景

需要带什么 前置准备

  • 一台 macOS 笔记本,或开启了 Docker Desktop WSL 集成的 Ubuntu on WSL 2
  • Docker、Git 和 Python 3 已在 PATH 上
  • 一个 ClickHouse Cloud 组织和 API key,具备创建服务、执行 SQL、保存查询和创建仪表板的权限
  • 无需准备任何 Polymarket 凭据:市场发现、报价和成交数据都可公开读取

怎么进行 进行方式

  • 九个模块全程动手实践,每条命令和查询都可复制粘贴
  • 既可以自主学习,也可以跟随讲师;另有与各模块对应的讲师指南
  • ClickHouse Cloud 是唯一的数据库;全程不跑任何本地 ClickHouse 服务
  • 市场长时间没有更新很常见,因此 fixture 模式已提前经过验证,可随时作为备用方案

本课程不涉及什么 范围

  • 不涉及交易。无需钱包、入金、下单或持仓,也不构成投资建议;课程只使用公开行情数据
  • 不涉及券商系统。对于这个小型数据源,采集器会直接写入数据库,无需为了形式加入 Kafka;模块 07 会说明哪些场景更适合使用 ClickPipes
  • 不涉及交易策略。报价中间价是根据最优买价和卖价计算出的参考概率,并非实际可成交价格
  • 不搭建本地数据平台。本地只有一个无状态容器负责采集,其余组件都运行在 ClickHouse Cloud 中

准备好分析实时市场了吗?

准备一台装有 Docker 的笔记本,并加入一个 ClickHouse Cloud 组织。课程结束时,你将拥有一条实时数据链路、一个随写入自动维护的分钟级聚合,以及一个可以切换到任意公开市场的动态仪表板。

2.5 小时共九个模块,每个模块都以可自行运行的检查收尾。
1 分钟中间价 OHLC 随写入自动维护,无需在每次刷新时重新计算。
0无需 Polymarket 凭据;市场发现、报价和成交数据都可公开读取。
ZH