问题标签 [timescaledb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
101 浏览

postgresql - 在 Spilo 容器上预加载 TimescaleDB

我将 postgres 运算符与 Spilo build 一起使用spilo-11:1.5-p7

如何配置它以预加载 timescaledb 库?

我尝试使用 sed 来更改配置文件,如下所示:

但这不起作用,因为它是在 Dockerfile 的构建时运行的,这似乎为时过早。有什么方法可以在压缩内容扩展之后,但在运行 postgres 之前运行它?某种脚本回调?

0 投票
2 回答
867 浏览

sql - 从 TimescaleDB 获取 1 年结果

我有一张包含物联网设备数据的表格,每小时发送一次测量值。必须获得今天、周、月和年的报告。

使用 timescaleDB,我得到了今天、周和月的一些“好的”结果。例如每月:

但是多年找不到取值的好方法?有人试过吗?

时间刻度不支持年份,使用周会导致错误结果。

错误:不支持按月、年、世纪等定义的间隔

0 投票
1 回答
1198 浏览

postgresql - 时间尺度超表列与多个表/规范化模式

我正在使用 Timescale DB 存储来自许多设备的测量值。由于迄今为止大多数设备都有一组相似的指标,因此我使用了一个包含许多列的超表(每个指标一个列)。

但是,一些新设备必须支持不同的指标,并且还有我需要为每个设备计算和存储的派生值。

所以看来我必须将这些值存储为单独的表,或者如果我想要一种保存时间序列数据的通用方法,或者使用规范化方法(时间戳、设备、metric_type、值)?

对于这些类型的测量,“多列”模式方法是错误的,还是我做错了?

0 投票
0 回答
90 浏览

influxdb - 单个硬盘上的多进程 fsync 停顿

fsync/fdatasync 调用很昂贵,但它们在数据库中是必不可少的,因为它允许 ACID 中的持久性。正如我所测试的,当只有一个进程定期进行一些写入和 fsync 时,每个 fsync 大约需要 50 毫秒。但是当有多个进程在做同样的事情时,比如说其中两个,有时(可能 50%)fsync 会花费大量时间,数百或数千毫秒,甚至数十秒,显然系统在这种情况下变得无法使用。我想知道如何在数据库中解决这个问题,特别是在分布式时间序列数据库中,当有多个节点使用单个硬盘时。

0 投票
1 回答
1082 浏览

postgresql - TimescaleDB 查询以选择列值从前一行更改的行

最近才开始使用 TimescaleDB 和 Postgres 来处理大多数数据请求。

但是,我遇到了一个问题,即我对时间序列数据的请求效率极低。

这是一个可以是任意时间长度的数据系列,具有特定的整数值。

大多数情况下,除非出现异常,否则该值将是相同的。因此,而不是获取 +10,000 行数据。我想将其汇总为“时间块”。

假设一行中有 97 个项目,其值为 100(每 5 分钟新项目)#98 连续 5 个项目的值为 48,然后再返回 100,再增加 2,900 行。

我不想获取 3002 项来显示此数据。我应该只需要取 3 件物品。

  • 1 项表示从 startDate 开始的值为 100
  • 1 项表示从 #1 之后的 startDate 开始的值为 48
  • 1 项表示该值从 #2 之后的 startDate 再次为 100

但是我在弄清楚如何使用 timescaledb 做到这一点时遇到了一些麻烦。

基本上,如果该值与最后一个值相同,则将其聚合。这就是我需要它做的所有事情。

有谁知道如何使用连续聚合(或者如果有更快的方法)为 timescaleDB 中的这种情况构建一个 VIEW 来获取这个?

0 投票
1 回答
309 浏览

timescaledb - 如果我每小时有 1 GB 的数据,那么块间隔的最佳大小应该是多少

当我使用 TimescaleDB 时,我每小时有 1 GB 的数据。我需要确定相同的最佳块时间间隔,以便性能最大化。那会是 1 天还是 1 小时或其他什么。

0 投票
1 回答
308 浏览

postgresql - Homebrew MacOS 安装后在 postres 中加载扩展问题

我最近在 MacOSX Mojave 上使用 Homebrew 安装了 Postgres 11.3。我想使用 TimescaleDB 扩展数据库,也与 Homebrew 一起安装,但收到以下错误:

看起来该命令希望 Postgres 安装在 /Library 中,但brew info postgres说它位于/usr/local/Cellar/postgresql/11.3. 有没有办法可以修改命令使用的路径或更改 Postgres 的安装位置?

0 投票
1 回答
1263 浏览

database - 如何在 SQL 中对具有多列的时间序列数据进行下采样?

我正在运行一个 postgresql 数据库(也使用 timescaledb,用于 grafana),并且已经学习了如何使用以下方法对简单表进行下采样:

此代码创建一个具有三个传感器的 VIEW,并从(例如)1 秒采样率下采样到 1 分钟采样率。

这一切都很好,直到我有一个包含数百列的表,我希望对其进行下采样。我不想写出这段代码,数百个平均值显式出现在每个传感器的查询中。我希望 postgresql 有一种方法可以一次将我的平均聚合应用于表的所有列。

我已经用谷歌搜索了很长时间的答案,这是我能找到的最接近的答案,尽管不是完全相同的问题:

选择聚合函数和所有其他列

我尝试使用语法 avg(*),但收到语法错误。

另一种尝试是

这给出了语法错误。

我希望有一种方法可以执行此查询,而不必为每个传感器写出跨越数百行的代码。谢谢你的帮助。

0 投票
1 回答
2792 浏览

sql - 使用 time_bucket 的慢 TimescaleDB 查询

我有一个包含数百万数据的简单数据库(PostgreSQL 11)。我想平均value每天。为此,我正在使用time_bucket()函数。

数据库架构

我想要做的查询是:

询问

结果+解释

即使我使用索引,查询的运行时间也很慢。查询返回 626 行,需要 26.5 秒才能完成。已创建 90 个 TimescaleDB 块。这是此查询的 EXPLAIN 语句:

问题

我是否正确创建了索引?我是否正确创建了数据库?或者对于这么多的行,TimescaleDB 是否像这样慢?

time_bucket()这可能是速度慢的原因: https ://github.com/timescale/timescaledb/issues/1229 。建议的解决方案是使用连续聚合视图。这是如何在 PostgreSQL 中使用时间序列的推荐方法吗?

0 投票
1 回答
2239 浏览

sql - 如何在 TimescaleDB 中的一张表上创建多个连续聚合?

我有这张series桌子和它的超表。我想对该表中的数据进行不同的连续聚合。

但在PostgreSQL 11中似乎是不可能的——这是我在运行上面的查询时得到的:

甚至不可能在同一张表上创建不同的超表。

是否可以解决此限制?series或者我应该使用另一种方法(例如,每个连续聚合的重复表:-x)?