TimescaleDB 多个连续聚合未填满数据
TimescaleDB multiple continuous aggregates not filling up with data
我正在尝试创建多个 TimescaleDB 连续聚合 table,就像下面的示例 link 一样,但是当我查询它们时,视图中没有数据...
https://docs.timescale.com/latest/using-timescaledb/continuous-aggregates
这是我创建连续聚合视图的代码。我创建了一个 1 小时间隔、一个 2 小时间隔和一个 6 小时间隔(即 3 个连续的聚合视图,这在 TimescaleDB >= v1.4 中显然是允许的)。我在 PostgreSQL v11.9 上的 Docker 容器中使用 TimescaleDB v1.7.3。
CREATE VIEW time_series_mv_1_hour_interval
WITH (timescaledb.continuous) AS
SELECT
gateway,
time_bucket('01:00:00'::interval, timestamp_utc) AS timestamp_utc,
avg(spm) AS spm,
avg(hyd::integer) AS hyd
FROM public.time_series
GROUP BY
gateway,
time_bucket('01:00:00'::interval, timestamp_utc);
这是我“创建成功”的三个视图的图片:
底层 table 创建如下,并且不断插入新的 IoT 数据:
create table if not exists public.time_series (
timestamp_utc timestamp without time zone NOT NULL,
gateway text NOT NULL,
spm real NULL,
hyd bool NULL
UNIQUE (timestamp_utc, gateway)
);
创建 table 后,我 运行 创建了 TimescaleDB hypertable:
https://docs.timescale.com/latest/api#create_hypertable
SELECT create_hypertable('public.time_series', 'timestamp_utc');
然后我先在网关上创建了一个智能索引,然后是时间:
https://blog.timescale.com/blog/use-composite-indexes-to-speed-up-time-series-queries-sql-8ca2df6b3aaa/
https://docs.timescale.com/latest/using-timescaledb/schema-management#indexing
CREATE INDEX ON public.time_series (gateway, timestamp_utc DESC);
为什么我的newly-created连续聚合没有数据tables/views?我等了大概16个小时了,还是没有数据。
我运行下面的简单查询,没有返回任何记录...
SELECT * from time_series_mv_1_hour_interval;
解决方案:重新启动数据库,然后drop-cascade现有的未填满行的连续聚合视图,并且 re-create 他们使用完全相同的步骤...
我希望第一次知道是什么导致了问题,但至少它现在可以正常工作了。
-肖恩
我正在尝试创建多个 TimescaleDB 连续聚合 table,就像下面的示例 link 一样,但是当我查询它们时,视图中没有数据...
https://docs.timescale.com/latest/using-timescaledb/continuous-aggregates
这是我创建连续聚合视图的代码。我创建了一个 1 小时间隔、一个 2 小时间隔和一个 6 小时间隔(即 3 个连续的聚合视图,这在 TimescaleDB >= v1.4 中显然是允许的)。我在 PostgreSQL v11.9 上的 Docker 容器中使用 TimescaleDB v1.7.3。
CREATE VIEW time_series_mv_1_hour_interval
WITH (timescaledb.continuous) AS
SELECT
gateway,
time_bucket('01:00:00'::interval, timestamp_utc) AS timestamp_utc,
avg(spm) AS spm,
avg(hyd::integer) AS hyd
FROM public.time_series
GROUP BY
gateway,
time_bucket('01:00:00'::interval, timestamp_utc);
这是我“创建成功”的三个视图的图片:
底层 table 创建如下,并且不断插入新的 IoT 数据:
create table if not exists public.time_series (
timestamp_utc timestamp without time zone NOT NULL,
gateway text NOT NULL,
spm real NULL,
hyd bool NULL
UNIQUE (timestamp_utc, gateway)
);
创建 table 后,我 运行 创建了 TimescaleDB hypertable: https://docs.timescale.com/latest/api#create_hypertable
SELECT create_hypertable('public.time_series', 'timestamp_utc');
然后我先在网关上创建了一个智能索引,然后是时间:
https://blog.timescale.com/blog/use-composite-indexes-to-speed-up-time-series-queries-sql-8ca2df6b3aaa/ https://docs.timescale.com/latest/using-timescaledb/schema-management#indexing
CREATE INDEX ON public.time_series (gateway, timestamp_utc DESC);
为什么我的newly-created连续聚合没有数据tables/views?我等了大概16个小时了,还是没有数据。
我运行下面的简单查询,没有返回任何记录...
SELECT * from time_series_mv_1_hour_interval;
解决方案:重新启动数据库,然后drop-cascade现有的未填满行的连续聚合视图,并且 re-create 他们使用完全相同的步骤...
我希望第一次知道是什么导致了问题,但至少它现在可以正常工作了。
-肖恩