ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二十四、clickhouse时间窗口函数

2022-01-18 14:34:57  阅读:563  来源: 互联网

标签:窗口 attr tumble interval hop 二十四 timezone clickhouse


时间窗口函数用于获取窗口的起始(包含边界)和结束时间(不包含边界)。系统支持的时间窗口函数如下:

--1.tumble
tumble窗口是连续的、不重叠的固定大小(interval)时间窗口。

tumble(time_attr, interval [, timezone])
参数
- time_attr - DateTime类型的时间数据。
- interval - Interval类型的窗口大小。
- timezone — Timezone name 类型的时区(可选参数).

返回值

tumble窗口的开始(包含边界)和结束时间(不包含边界)
类型: Tuple(DateTime, DateTime)

示例

查询:

SELECT tumble(now(), toIntervalDay('1'))
结果:

┌─tumble(now(), toIntervalDay('1'))─────────────┐
│ ['2020-01-01 00:00:00','2020-01-02 00:00:00'] │
└───────────────────────────────────────────────┘
--2.hop
hop窗口是一个固定大小(window_interval)的时间窗口,并按照一个固定的滑动间隔(hop_interval)滑动。当滑动间隔小于窗口大小时,滑动窗口间存在重叠,此时一个数据可能存在于多个窗口。

hop(time_attr, hop_interval, window_interval [, timezone])
参数

time_attr - DateTime类型的时间数据。
hop_interval - Interval类型的滑动间隔,需要大于0。
window_interval - Interval类型的窗口大小,需要大于0。
timezone — Timezone name 类型的时区(可选参数)。
返回值

hop窗口的开始(包含边界)和结束时间(不包含边界)。由于一个数据可能存在于多个窗口,脱离window view单独调用该函数时只返回第一个窗口数据。
类型: Tuple(DateTime, DateTime)

示例

查询:

SELECT hop(now(), INTERVAL '1' SECOND, INTERVAL '2' SECOND)
结果:

┌─hop(now(), toIntervalSecond('1'), toIntervalSecond('2'))──┐
│ ('2020-01-14 16:58:22','2020-01-14 16:58:24') │
└───────────────────────────────────────────────────────────┘
--3.tumbleStart
返回tumble窗口的开始时间(包含边界)。

tumbleStart(time_attr, interval [, timezone]);
--4.tumbleEnd
返回tumble窗口的结束时间(不包含边界)。

tumbleEnd(time_attr, interval [, timezone]);
--5.hopStart
返回hop窗口的开始时间(包含边界)。

hopStart(time_attr, hop_interval, window_interval [, timezone]);
--6.hopEnd
返回hop窗口的结束时间(不包含边界)。

hopEnd(time_attr, hop_interval, window_interval [, timezone]);

标签:窗口,attr,tumble,interval,hop,二十四,timezone,clickhouse
来源: https://www.cnblogs.com/MrYang-11-GetKnow/p/15817668.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有