2

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

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

现在我使用它,但必须有更好的方法:

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

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

4

2 回答 2

5

TimescaleDB 维护有关超表的元数据并提供用于查询元数据的视图。视图位于模式中timescaledb_information,有关超表的信息可以从timescaledb_information.hypertable.

例如:

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

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

请注意,时间块间隔可以随时间更改,因此视图不提供有关它的信息。因此有必要检查每个块以查看其间隔。这可以通过调用此处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');

于 2019-10-16T12:02:36.447 回答
1

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

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

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

于 2021-11-26T16:22:07.043 回答