如何确定表是否启用了时间刻度以及在哪些列上启用了时间刻度?

问题描述 投票:0回答:2

我有一个其他人创建的 Timescale 数据库。

  1. 如何确定
    create_hypertable
    是否在牌桌上被调用?

目前我使用这个,但一定有更好的方法:

SELECT * FROM hypertable_relation_size('public.data');
  1. 如果在表上调用
    create_hypertable
    ,调用
    create_hypertable
    时会使用哪些参数(包括 chunk_time_interval)?

(在某些情况下有 from_date 和 to_date)

postgresql timescaledb
2个回答
9
投票

TimescaleDB 维护有关超表的元数据并提供查询元数据的视图。视图位于模式

timescaledb_information
中,有关超表的信息可以从
timescaledb_information.hypertables
检索。

例如:

SELECT * FROM timescaledb_information.hypertables WHERE table_name = 'data';

此 API 文档包含更多信息和示例。

请注意,时间块间隔可以随着时间的推移而更改,因此视图不提供有关它的信息。因此有必要检查每个块以查看其间隔。这可以通过调用文档

here
中描述的函数chunk_relation_size_pretty来完成。例如:

SELECT chunk_table, partitioning_columns, ranges 
  FROM chunk_relation_size_pretty('data');

如果您处于另一个模式中,则需要指定超表的完全限定名称,因为它需要标识符:

SET SCHEMA 'test';
SELECT chunk_table, partitioning_columns, ranges 
  FROM public.chunk_relation_size_pretty('public.data');


7
投票

更新了语法(版本>2.0)以获取有关超表的元数据:

SELECT * FROM timescaledb_information.hypertables WHERE hypertable_name = 'data';

参见无法显示超表信息:timescaledb_information.hypertable不存在

© www.soinside.com 2019 - 2024. All rights reserved.