ttl - 如何在 clickhouse 表上使用 TTL?
问题描述
阅读文档后,我发现 TTL 功能对我来说非常有用。但是,我无法构造有效的 SQL 来使用它。
我怎么做:
CREATE TABLE t1 (
name String,
date DateTime default now(),
number UInt64 default 0 TTL date + INTERVAL 1 DAY
) Engine MergeTree() ORDER BY name;
这给出了如下错误:
Syntax error: failed at position 92 (line 4, col 27):
...[copy of my code here]
Expected one of: NOT, LIKE, AND, OR, IN, BETWEEN, COMMENT, CODEC, token, IS, NOT LIKE, NOT IN, GLOBAL IN, GLOBAL NOT IN, ClosingRoundBracket, Comma, QuestionMark
我也尝试过使用表范围的 TTL:
CREATE TABLE t1 (
name String,
date DateTime default now(),
number UInt64 default 0
) Engine MergeTree() ORDER BY name TTL date + INTERVAL 1 DAY;
这也会导致错误。
据我所知,我正在根据文档(https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/#table_engine-mergetree-creating-a-table)做所有事情,但我仍然无法使用此功能。
我正在使用服务器版本 19.5.3 修订版 54417。
请提供有关如何使用 TTL 功能的任何示例或想法!
解决方案
表和列的 TTL 尚未发布,将在 19.6.x 中提供。文档反映了最先进的“大师”状态,而不是最新版本。这当然令人困惑。为了查看特定版本,您可以参考特定主要版本的文档,如下所示:https ://clickhouse.yandex/docs/v19.5/en/operations/table_engines/mergetree/
推荐阅读
- python - 部署在 heroku 上的站点的根目录是什么?
- python - 谁能帮我解决这个 pyautogui 导入错误?
- python - Python SQLite3 问题:提供的绑定数量不正确
- java - Do While 循环在空指针处停止
- python - 如何从 pip 1.0 升级?
- javascript - 在 axios 请求中将 HTML 作为字符串发送不起作用
- oracle - 通过在 PL/SQL 中引发异常来插入详细信息的过程
- javascript - 在 Object 中查找最大元素及其键 - React native
- ios - 元素树层次结构中缺少 Xcode 按钮
- python - 如何使用 ExecuteScript 和 python 从 nifi 中的一个传入流文件创建多个流文件