Как определить, включена ли в таблице шкала времени и для каких столбцов? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть база данных Timescale , созданная кем-то другим.

  1. Как определить, вызывается ли create_hypertable для таблицы?

Пока я использую это, но должен быть лучший способ:

SELECT * FROM hypertable_relation_size('public.data');
И если create_hypertable был вызван для таблицы, какие параметры (включая chunk_time_interval) были использованы при вызове create_hypertable?

(В некоторых случаях есть from_date и to_date)

1 Ответ

1 голос
/ 16 октября 2019

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');

...