- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个系统,每 5 秒向 TimescaleDB 收集一次计数器数据。
汇总要求是:
我可以通过使用来自 5s 超表的连续聚合并使用数据保留来得到 (1)。
但是,对于 (2),我无法从 (1) 的 1h 物化 View 创建第二个物化 View ,因为我只能从超表中创建它。
如何满足汇总要求?
我能否以某种方式利用我的测量值是计数器这一事实(可以简单地删除行以降低粒度)?
最佳答案
Continuous aggregates只能在超表之上定义。您不能从另一个定义连续聚合或更改它。
我看到两种方法可以使用当前版本的 TimescaleDB 2.2 实现所需的功能:
这是可能的实现。连续聚合在两种方法中都是相同的:
CREATE MATERIALIZED VIEW cagg_1h WITH (timescaledb.continuous) AS
SELECT time_bucket('1h', my_time_column), ...
FROM my_hypertable
WHERE ...
GROUP BY 1, ...;
CREATE MATERIALIZED VIEW cagg_1d WITH (timescaledb.continuous) AS
SELECT time_bucket('1d', my_time_column), ...
FROM my_hypertable
WHERE ...
GROUP BY 1, ...;
第一种方法的策略:
SELECT add_continuous_aggregate_policy('cagg_1h', INTERVAL '7d', INTERVAL '6d', INTERVAL '4h');
SELECT add_continuous_aggregate_policy('cagg_1d', INTERVAL '8d', INTERVAL '5d', INTERVAL '1h');
SELECT add_retention_policy('my_hypertable', INTERVAL '8d');
SELECT add_retention_policy('cagg_1h', INTERVAL '30d');
我尝试为连续聚合定义刷新窗口,即开始和结束偏移间隔,以及原始数据的保留间隔,以便数据在删除之前在两个连续聚合中具体化。
对于第二种方法:
SELECT add_continuous_aggregate_policy('cagg_1h', INTERVAL '7d', INTERVAL '6d', INTERVAL '4h');
SELECT add_continuous_aggregate_policy('cagg_1d', INTERVAL '30d', INTERVAL '27d', INTERVAL '1d');
SELECT add_compression_policy('my_hypetable', INTERVAL '7d');
SELECT add_retention_policy('my_hypertable', INTERVAL '30d');
SELECT add_retention_policy('cagg_1h', INTERVAL '30d');
此处相同,连续聚合包含刷新窗口,因此数据将物化到所需的时间间隔,并且不会被保留策略丢弃。第二种方法包括一个压缩策略,假设 7 天后不会有更新到达原始数据,从问题描述来看这似乎是正确的。
在添加压缩策略之前,必须通过 altering the original hypertable 启用它.
关于timescaledb - TimescaleDB 中的复杂数据汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67357822/
我有一个系统,每 5 秒向 TimescaleDB 收集一次计数器数据。 汇总要求是: 对于超过 7 天的数据,粒度从 5 秒变为 1 小时 对于超过 30 天的数据,粒度从 1 小时下降到 1 天
我有一个系统,每 5 秒向 TimescaleDB 收集一次计数器数据。 汇总要求是: 对于超过 7 天的数据,粒度从 5 秒变为 1 小时 对于超过 30 天的数据,粒度从 1 小时下降到 1 天
SELECT timeseries_id, "timestamp"FROM enhydris_timeseriesrecord WHERE timeseries_id=6661 ORDER BY "t
我有一个包含几个表的简单数据库架构 (Timescaledb)。每个用户都有一个具有多个指标的主传感器,每个指标都有自己的表,其中包含 user_id 和时间戳。 架构 Table 1 |用户 ID
我刚刚尝试在 Ubuntu 20.04 的 minikube 中安装带有 Helm 的 timescaleDB Single。 安装后通过: helm install timescaledb time
给定时间序列范围,其值 v0-v5 以不规则间隔存储在 timescaledb 中。 v0 v1 v2 v3 v4 t0 - t1 - t2 - t3 - t4 - t5 选择了
根据docs: TimescaleDB支持在同一PostgreSQL实例中的不同数据库上具有不同的扩展版本。 我可以使用以下SQL命令获取实例的安装版本: SELECT extversion FROM
我正在尝试使用 TimescaleDB 扩展来计算一些连续聚合。我有这个工作正常的查询: SELECT distinct time_bucket('1 hour', entry_ts) as date
我有一些时间序列数据要导入到 TimescaleDB 中,作为超表中的 (time, item_id, value) 元组。 我已经创建了一个索引: CREATE INDEX ON time_seri
我在超表中存储了很多行。即使在当前的测试配置中,表的大小现在也变得非常大。 对于超过一周的数据,我想通过删除一些较旧的记录,将数据频率从每 5 秒一次减少到每 60 秒一次。 谁能推荐一种这样做的方法
最近才开始使用 TimescaleDB 和 Postgres 来处理大多数数据请求。 但是我遇到了一个问题,我对时间序列数据的请求非常低效。 它是一个可以是任意时间长度的数据系列,具有特定的整数值。
我有一个带有 timescaledb 扩展名的 postgres 数据库。 我的主索引是一个时间戳,我想选择最新的一行。 如果我碰巧知道最新的行发生在某个时间之后,那么我可以使用如下查询: query
总结 我遇到了一个问题,即物化 View 的行限制超过了 Postgres 数据库中允许的最大值。 描述 名为 PAC4200_Metering 的表有 108 个字段,它们都是 double 字段。
这个问题几乎说明了一切。我正在尝试从具有联合主键的表中使用 TimescaleDB 创建超表: CREATE TABLE cars ( id BIGINT NOT NULL GENERATED
我有一个 TimescaleDB 超表,它根据我的时间戳列每 1 个月的时间间隔分成几 block 。 TimescaleDB 是否使用相同的时间戳列来定义何时必须压缩 block ? 如果是这样,处
当块时间间隔太大时,我们如何更改块时间间隔? 用例: 我们有一个现有的 super 表,我们在其中设置了 chunk_time_interval到 1 个月(使用 create_hypertable(
我一直在 TimescaleDB 中保存一些刻度数据,并且对它占用了多少空间感到惊讶。我对此很陌生,但我每天将大约 1000 万行保存到具有以下列的表中: 这已经每天占用大约 35GB,这似乎过多。我
在我的数据库(Postgresql 12;timescaleDB 1.7.0)中有多个指标表,每分钟包含一行和设备。它包含一个 deviceId、时间、四个 double 值和一个枚举值。 有不同的基
我刚刚开始使用 TimescaleDB 并想在带有事件的表上创建一个超表。 最初我想到遵循以下常规模式: CREATE TABLE event ( id serial PRIMARY KEY,
确定我的 TimescaleDB 表的大小 my_table (之前创建了一个超表),我运行了 SQL 查询 pg_size_pretty( pg_total_relation_size('my_ta
我是一名优秀的程序员,十分优秀!