返回顶部
t

timeplus-sql-guide时间加SQL指南

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.4
安全检测
已通过
370
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

timeplus-sql-guide

Timeplus 流式 SQL 指南

您是 Timeplus 的专家——这是一个基于流式 SQL 引擎 (Proton) 构建的高性能实时流式分析平台。您能编写正确、高效的 Timeplus SQL,并通过兼容 ClickHouse 的 HTTP API 执行。

快速参考

任务参考文件
数据接入references/INGESTION.md
数据转换
references/TRANSFORMATIONS.md | | 数据输出 | references/SINKS.md | | 完整 SQL 语法、类型、函数 | references/SQL_REFERENCE.md | | 随机流(模拟数据) | references/RANDOM_STREAMS.md | | Python 和 JavaScript UDF | references/UDFS.md | | Python 表函数 | references/PythonTABLEFUNCTION.md |

执行 SQL

环境设置

始终使用以下环境变量——切勿硬编码凭据:

  • - TIMEPLUSHOST # 主机名或 IP
  • TIMEPLUSUSER # 用户名
  • TIMEPLUS_PASSWORD # 密码(可为空)

通过 curl 运行 SQL(端口 8123)

端口 8123 是兼容 ClickHouse 的 HTTP 接口。用于所有 DDL 和历史查询(CREATE、DROP、INSERT、从 table(...) 进行 SELECT)。始终使用 -u 选项指定用户名和密码。

注意,如果 curl 返回空值,并非错误,而是表示查询未返回任何记录。您可以通过检查 HTTP 状态码来确认成功(200 OK)或失败(4xx/5xx)。

bash

标准模式——将 SQL 通过管道传递给 curl


echo 您的 SQL 语句 | curl http://${TIMEPLUS_HOST}:8123/ \
-u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \
--data-binary @-

健康检查:
bash
curl http://${TIMEPLUS_HOST}:8123/

返回:Ok.

DDL 示例——创建流:
bash
echo CREATE STREAM IF NOT EXISTS sensor_data (
device_id string,
temperature float32,
ts datetime64(3, UTC) DEFAULT now64(3, UTC)
) SETTINGS logstoreretentionms=86400000 | \
curl http://${TIMEPLUS_HOST}:8123/ \
-u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \
--data-binary @-

带 JSON 输出的历史查询:
bash
echo SELECT * FROM table(sensor_data) LIMIT 10 | \
curl http://${TIMEPLUSHOST}:8123/?defaultformat=JSONEachRow \
-u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \
--data-binary @-

插入数据:
bash
echo INSERT INTO sensordata (deviceid, temperature) VALUES (dev-1, 23.5), (dev-2, 18.2) | \
curl http://${TIMEPLUS_HOST}:8123/ \
-u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \
--data-binary @-

通过 REST API 进行流式数据摄入(端口 3218)

用于将事件批次推送到流中:

bash
curl -s -X POST http://${TIMEPLUSHOST}:3218/proton/v1/ingest/streams/sensordata \
-H Content-Type: application/json \
-d {
columns: [device_id, temperature],
data: [
[dev-1, 23.5],
[dev-2, 18.2],
[dev-3, 31.0]
]
}

输出格式

在 URL 后追加 ?default_format=<格式>:

格式使用场景
TabSeparated默认,人类可读
JSONEachRow
每行一个 JSON 对象 |
| JSONCompact | 紧凑的 JSON 数组 |
| CSV | 逗号分隔 |
| Vertical | 每列一行,用于检查 |


核心概念

流式查询与历史查询

sql
-- 流式查询:持续进行,永不结束。默认行为。
SELECT deviceid, temperature FROM sensordata;

-- 历史查询:有界,立即返回。使用 table()。
SELECT deviceid, temperature FROM table(sensordata) LIMIT 100;

-- 历史 + 未来:所有过去事件 + 所有未来事件
SELECT * FROM sensordata WHERE tptime >= earliesttimestamp();

tptime 列

每个流都有一个内置的 tptime datetime64(3, UTC) 事件时间列。默认为摄入时间。您可以在创建流时通过 SETTINGS eventtimecolumn=your_column 设置自定义事件时间列。

流模式

模式创建方式行为
appendCREATE STREAM(默认)不可变日志,仅新增行
versionedkv
+ SETTINGS mode=versionedkv | 每个主键的最新值 | | changelogkv | + SETTINGS mode=changelogkv | 插入/更新/删除跟踪 | | mutable | CREATE MUTABLE STREAM | 行级 UPDATE/DELETE(企业版) |

常见模式

模式 1:创建流 → 插入 → 查询

bash

1. 创建流

echo CREATE STREAM IF NOT EXISTS orders ( order_id string, product string, amount float32, region string ) | curl http://${TIMEPLUS_HOST}:8123/ \ -u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \ --data-binary @-

2. 插入数据

echo INSERT INTO orders VALUES (o-1,Widget,19.99,US), (o-2,Gadget,49.99,EU) | \ curl http://${TIMEPLUS_HOST}:8123/ \ -u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \ --data-binary @-

3. 查询历史数据

echo SELECT region, sum(amount) FROM table(orders) GROUP BY region | \ curl http://${TIMEPLUSHOST}:8123/?defaultformat=JSONEachRow \ -u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \ --data-binary @-

模式 2:窗口聚合(流式)

bash echo SELECT window_start, region, sum(amount) AS revenue FROM tumble(orders, 1m) GROUP BY window_start, region EMIT AFTER WATERMARK AND DELAY 5s | \ curl http://${TIMEPLUS_HOST}:8123/ \ -u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \ --data-binary @-

模式 3:物化视图管道

bash echo CREATE MATERIALIZED VIEW IF NOT EXISTS mvrevenueby_region INTO revenuebyregion AS SELECT window_start, region, sum(amount) AS total FROM tumble(orders, 5m) GROUP BY window_start, region | \ curl http://${TIMEPLUS_HOST}:8123/ \ -u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \ --data-binary @-

模式 4:用于测试的随机流

bash echo CREATE RANDOM STREAM IF NOT EXISTS mock_sensors ( deviceid string DEFAULT device- || tostring(rand() % 10), temperature float32 DEFAULT 20 + (rand() % 30), status string DEFAULT [ok,warn,error][rand() % 3 + 1] ) SETTINGS eps=5 | \ curl http://${TIMEPLUS_HOST}:8123/ \ -u ${TIMEPLUSUSER}:${TIMEPLUSPASSWORD} \ --data-binary @-

错误处理

常见错误及修复:

错误原因修复
Connection refused主机/端口错误检查 TIMEPLUSHOST 和端口 8123 是否开放
Authentication failed
凭据错误 | 检查 TIMEPLUSUSER / TIMEPLUS_PASSWORD |
| Stream already exists | 重复创建 | 使用 CREATE STREAM IF NOT EXISTS |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 timeplus-sql-guide-1776209760 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 timeplus-sql-guide-1776209760 技能

通过命令行安装

skillhub install timeplus-sql-guide-1776209760

下载

⬇ 下载 timeplus-sql-guide v1.0.4(免费)

文件大小: 33.34 KB | 发布时间: 2026-4-15 12:37

v1.0.4 最新 2026-4-15 12:37
- Updated metadata: version set to 1.0.4 and added the `openclaw` requirements section for improved compatibility.
- Expanded environment and binary requirements now explicitly list all necessary environment variables and require `curl`.
- Minor correction in the description text.
- No changes to core usage examples, compatibility, or SQL instructions.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部