问题标签 [hypertable]
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.
postgresql - 通过运行 ANALYZE 来提高查询性能?
- PostgreSQL 版本:12.4
- TimescaleDB 版本:1.7.4
你好,
我有一个表,其中数据仅基于时间分布在多个块中,即一天创建超表。我正在尝试提高 SELECT 查询的性能。为了实现这一点,我必须定期在整个表上运行 ANALYZE。由于表中没有执行任何更新或删除,因此 VACUUM 在我的情况下似乎效率低下。此外,我也不能放置多个索引,因为它会降低摄取性能并且会占用大量磁盘空间。
我按时间顺序将数据摄取到表中。最近的数据将存储在一个连续的超表中。
问题:
如果我假设我已经在所有以前的超表上运行了 ANALYZE,我只在新创建的超表上运行 ANALYZE,我会得到任何性能改进吗?
或者是否必须在整个表上运行 ANALYZE 以获得最佳性能,为什么?
谢谢
go - Timescale DB 未创建超表
我正在关注 timescaleDB 的教程。https://docs.timescale.com/timescaledb/latest/how-to-guides/hypertables/create/#create-a-hypertable
但我无法创建超表。我已经成功安装了 postgres 和 timescale。为什么我不能制作超表?
错误:无法创建 sample_table 超表:错误:函数 create_hypertable(unknown, unknown) 不存在 (SQLSTATE 42883)
node.js - Sequelize 和 TimescaleDB 出现错误:不支持超表的外键
我使用 Node.JS 和 Sequelize 与 TimescaleDB 关联表以实现多对多关系。我得到了错误: -
SequelizeDatabaseError:不支持超表的外键
我发现了相关问题和我关于 TimescaleDB 的错误,如下所示:[https://github.com/timescale/timescaledb/issues/1394][1]
我的源代码如下:-
我是 TimescaleDB 的新手,我不确定是否有另一种方法可以解决这个问题。任何人都可以帮助我建议与 Sequelize 建立多对多关系的连接表吗?
java - 如何从具有联合主键的表中创建具有 TimescaleDB 的超表?
这个问题几乎说明了一切。我正在尝试从具有联合主键的表中使用 TimescaleDB 创建一个超表:
当我尝试通过 Intellij 使用 Java 运行它时,我收到此错误:
更新:我尝试在不将任何主键放入表中的情况下运行迁移,但它仍然给出相同的错误。问题可能是 Flyway 根本不支持 TimescaleDB 函数吗?如果是这样,我该如何解决?
postgresql - 如何在 PostgreSQL 中使用外键约束正确引用超表?
#错误描述: 如果在创建表时定义了外键,则可以将具有外键的表创建到超表中
#为了重现,有下一张表:
创建表后,我在使用PostgreSQL 12.6 的数据库中使用了@Laurenz 提出的解决方案,使用 timescaledb 1.7.5 的扩展,如下所示:
#用适当的值填充表格:
#然后将其设置为NOT NULL:
#定义你的外键:
#最后一个引用表启用外键的响应: 查询在40毫秒内成功返回。
预期行为: 这个想法是使用表 job_metric 在一个甚至多对多的关系中访问作业和指标表的信息。
实际行为和错误: 创建了表并创建了 FK,但在 job_metric 中插入数据时无法使用,如下所述:
错误:不支持超表的外键上下文:SQL 语句“ALTER TABLE _timescaledb_internal._hyper_5_5_chunk ADD CONSTRAINT”5_13_job_metric_j_id_mj_id_jm_time_fkey”外键(j_id,mj_id,jm_time)参考 qmetrics(“时间”,m_id)匹配完整“PL/pgSQL 函数.chunk_constraint_add_table_constraint(_timescaledb_catalog.chunk_constraint) 执行 SQL 状态的第 42 行:0A000
***根据https://docs.timescale.com/timescaledb/latest/overview/limitations/##distributed-hypertable-limitations,看起来上述错误是超表限制的一部分:
不支持引用超表的外键约束。
#Request: 鉴于上述信息和错误,是否有人知道在数据库级别使用 timescaledb 扩展和主要是超表建立关系(多对多或一对多)的任何解决方案?
实际上,当我尝试使用 Django Rest Framework 在表 metrics 和 job_metric 之间创建多对多关系时,我得到了类似的上述错误:
运行应用程序指标直接指出metrics_db: $ python3 manage.py migrate metrics --database=metrics_db
要执行的操作:应用所有迁移:指标运行迁移:应用 metrics.0002_job...Traceback(最近一次调用最后):文件“/var/myproject/myprojectenv/lib/python3.8/site-packages/django/db/ backends/utils.py",第 84 行,在 _execute return self.cursor.execute(sql, params) psycopg2.errors.FeatureNotSupported:不支持超表的外键
如果有人知道解决方案或有想法在 REST API 级别处理上述错误,请您分享您的想法,以访问数据关联表(指标和作业)并在需要删除时一起修改它们,例如,一个job_metric。到目前为止,使用超表修正 timescaledb 扩展似乎不是一个可行的解决方案。
sql - 是否可以在不使用 SQL 子查询的情况下根据另一列选择一列?
我在 PostgreSQL 的 TimescaleDB 中工作。我有下表:
我可以在一个查询中选择时间戳为 timestamp_start 和时间戳加一小时作为 timestamp_end 的一小时存储桶中的时间(意味着没有子查询)吗?
所以这就是我正在寻找的结果:
sql - 如何在 TimeScaleDB、PostgreSQL 的 time_bucket_gapfill() 中使用 AVG() 和 GROUP BY?
我在我的 PostgreSQL 中使用 TimescaleDB,我有以下两个表:
windows_log
windows_reliability_score
注意:在两个表中都在时间戳列(hypertable)上建立索引
所以我试图获得每个时间桶的平均reliability_score,但它只是给了我所有东西的平均值,而不是每个特定桶的平均值......
这是我的查询:
这是我正在寻找的结果:
但这就是我得到的:
offset - TimeScaleDB 连续聚合刷新策略结束偏移未按预期工作
我是 TimeScaleDB 的新手,我创建了一个连续的聚合视图
我为此视图创建了刷新策略:
即使将结束偏移量设置为 1 小时后,我也会获得最新添加的数据。
刷新日志:
但是物化视图包含结束偏移之外的数据,虽然开始偏移设置工作正常
以下是物化视图中的数据: 物化视图
编辑:此外,我什至在政策刷新之前就获得了最新数据。