常见问题

最近更新时间:2025-12-17 09:38:41

我的收藏

1. 什么是时间序列表?有什么作用?

时间线是连续的时间序列,在指标建模中,时间线是实现累积型指标计算、同环比指标、转化率指标计算及缺失时间补齐的基础。时间线表需要在用户的OLAP引擎中创建,有如下3种时间粒度的时间线表,建议3种表都创建。
日粒度时间序列表:需创建一张物理表,表中只有一个时间字段,存储的是天粒度无重复的连续时间序列值,时间区间要覆盖数据分析的最大范围,比如2012-01-01到2030-01-01(每天对应一行数据),数据格式为date或datetime类型。
小时粒度时间序列表:需创建一张物理表,表中只有一个时间字段,存储的是小时粒度无重复的连续时间序列值,区间要覆盖数据分析的最大范围,比如2012-01-01 00:00:00 到2030-01-01 23:00:00(每小时对应一行数据),数据格式为 datetime。
分钟粒度时间序列表:需创建一张物理表,表中只有一个时间字段,存储的是分钟粒度无重复的连续时间序列值,区间要覆盖数据分析的最大范围,比如2012-01-01 00:01:00 到2030-01-01 23:59:00(每分钟对应一行数据),数据格式为 datetime。

2. 如何创建时间序列表?

创建入口

在创建模型、创建指标等场景,系统均会检测所选数据源是否已经创建了时间序列表,如果没有,则会在数据源旁边有提示 icon。
入口1: 数据治理 > 语义建模 > 模型管理 > 模型列表中的“关联数据源”列,在没有创建时间线表的数据源上会有 icon 提示。
模型列表中数据源无时间序列表提示
模型列表中数据源无时间序列表提示

入口2: 数据治理 > 语义建模 > 模型管理 > 模型列表中单击新建模型,当添加表到画布时,选择的数据源未创建时间线表时,也会有 icon 提示。
创建模型时数据源无时间序列表提示
创建模型时数据源无时间序列表提示

说明:
创建时间序列表时需满足如下条件:
1. StarRocks 数据源:需在3.1及以上的版本。
2. Doris 数据源和 TCHouse-D 数据源:Doris 内核需在2.1及以上版本。

方式1: 自动创建

用户可根据“创建入口”的提示 icon 指引,单击“立即创建时间序列表”,单击后出现如下图所示弹窗,用户可选择自动创建:

当选择自动创建后,需要用户在弹窗中指定数据库,确定后系统会自动在所选数据库下创建时间序列表。

说明:
自动创建时间序列表需要数据源中注册的用户(下图所示)有在指定数据库中建表(创建时间序列表)和写入数据的权限。


方式2: 手动创建

也可以选择手动创建时间序列表。需要先在引擎中手动创建时间序列表,再在WeData上将创建的表登记即可。可按照下面步骤手动创建。
步骤1: 用户在 OLAP引擎中手动执行下方创建时间序列表的 SQL 脚本。
数据源类型
粒度
创建时间序列表 SQL 脚本
注意事项
Doris/TCHouse-D
日粒度时间序列表
create table t_timespine_day (day_time) UNIQUE KEY (day_time) DISTRIBUTED BY HASH(day_time) BUCKETS 16 as select date_add('2012-01-01', interval num day) as day_time from (select 1 k1) as t lateral view explode_numbers(20* 65) tmp1 as num;create table t_timespine_minute (minute_time) UNIQUE KEY (minute_time) DISTRIBUTED BY HASH(minute_time) BUCKETS 16 as select date_add('2012-01-01', interval num minute) as minute_time from (select 1 k1) as t lateral view explode_numbers(10* 365*24*60) tmp1 as num;

1. 左侧脚本需要 Doris 内核在2.1及以上的版本的引擎上执行。
2. 左侧脚本使用了表生成函数EXPLODE_NUMBERS,如果您的 Doris内核版本低于上述要求,也可按照左侧创建表和插入数据的逻辑自行编写SQL完成。
小时粒度时间序列表
create table t_timespine_hour (hour_time) UNIQUE KEY (hour_time) DISTRIBUTED BY HASH(hour_time) BUCKETS 16 as select date_add('2012-01-01', interval num hour) as hour_time from (select 1 k1) as t lateral view explode_numbers(20* 365*24) tmp1 as num;
分钟粒度时间序列表
create table t_timespine_minute (minute_time) UNIQUE KEY (minute_time) DISTRIBUTED BY HASH(minute_time) BUCKETS 16 as select date_add('2012-01-01', interval num minute) as minute_time from (select 1 k1) as t lateral view explode_numbers(20*365*24*60) tmp1 as num;
StarRocks
日粒度时间序列表
create table t_timespine_day (day_time) PRIMARY KEY (day_time) as select date_add('2012-01-01', interval generate_series day) from TABLE(generate_series(0, 20*365))

1. 左侧脚本需在 3.1及以上版本的StarRocks 引擎上执行。
2. 左侧脚本使用了表生成函数generate_series,如果您的 StarRocks 内核版本低于上述要求,也可按照左侧创建表和插入数据的逻辑自行编写 SQL 完成。
小时粒度时间序列表
create table t_timespine_hour (hour_time) PRIMARY KEY (hour_time) as select date_add('2012-01-01', interval generate_series hour) from TABLE(generate_series(0, 20*365*24));
分钟粒度时间序列表
create table t_timespine_minute (minute_time) PRIMARY KEY (minute_time) as select date_add('2012-01-01', interval generate_series minute) from TABLE(generate_series(0, 20*365*24*60));
步骤2: 完成步骤1后,根据上方“创建入口”提示icon指引,单击立即创建时间序列表,并在弹窗选择“立即登记”,可将分钟、小时、日粒度的时间序列表、所属数据库以及时间字段录入,并单击保存即可完成登记。
立即创建时间序列表
立即创建时间序列表

登记时间序列表
登记时间序列表


3. 如何修改时间序列表?

入口:数据治理 > 语义建模 > 模型管理的模型列表中,单击“关联数据源列”旁边齿轮 icon 即可修改时间序列表。
修改时间序列表入口
修改时间序列表入口