返回关于超表维度的信息。超表可以根据一系列不同的维度进行分区。默认情况下,所有超表都按时间分区,但也可以除了时间之外,还按其他维度进行分区。

对于仅按时间分区的超表,timescaledb_information.dimensions 返回单行元数据。对于按多个维度分区的超表,此调用为每个维度返回一行。

对于基于时间的维度,返回的元数据指示整数数据类型,例如 BIGINT、INTEGER 或 SMALLINT,以及与时间相关的数据类型,例如 TIMESTAMPTZ、TIMESTAMP 或 DATE。对于基于空间的维度,返回的元数据指定 num_partitions 的数量。

如果超表使用时间数据类型,则定义 time_interval 列。或者,如果超表使用整数数据类型,则定义 integer_intervalinteger_now_func 列。

名称类型描述
hypertable_schemaTEXT超表的模式名称
hypertable_nameTEXT超表的表名称
dimension_numberBIGINT超表的维度编号,从 1 开始
column_nameTEXT用于创建此维度的列的名称
column_typeREGTYPE用于创建此维度的列的类型
dimension_typeTEXT这是一个基于时间的维度还是基于空间的维度
time_intervalINTERVAL如果列类型是时间数据类型,则为主维度的 Time interval
integer_intervalBIGINT如果列类型是整数数据类型,则为主维度的 Integer interval
integer_now_funcTEXT`integer_now` 函数,如果列类型是整数数据类型,则为主维度
num_partitionsSMALLINT维度的分区数
注意

`time_interval` 和 `integer_interval` 列不适用于基于空间的维度。

获取关于超表维度的信息。

-- Create a range and hash partitioned hypertable
CREATE TABLE dist_table(time timestamptz, device int, temp float);
SELECT create_hypertable('dist_table', by_range('time', INTERVAL '7 days'));
SELECT add_dimension('dist_table', by_hash('device', 3));
SELECT * from timescaledb_information.dimensions
ORDER BY hypertable_name, dimension_number;
-[ RECORD 1 ]-----+-------------------------
hypertable_schema | public
hypertable_name | dist_table
dimension_number | 1
column_name | time
column_type | timestamp with time zone
dimension_type | Time
time_interval | 7 days
integer_interval |
integer_now_func |
num_partitions |
-[ RECORD 2 ]-----+-------------------------
hypertable_schema | public
hypertable_name | dist_table
dimension_number | 2
column_name | device
column_type | integer
dimension_type | Space
time_interval |
integer_interval |
integer_now_func |
num_partitions | 2
注意

`by_range` 和 `by_hash` 维度构建器是 TimescaleDB 2.13 的新增功能。

获取关于具有两个基于时间的维度的超表的维度信息。

CREATE TABLE hyper_2dim (a_col date, b_col timestamp, c_col integer);
SELECT table_name from create_hypertable('hyper_2dim', by_range('a_col'));
SELECT add_dimension('hyper_2dim', by_range('b_col', INTERVAL '7 days'));
SELECT * FROM timescaledb_information.dimensions WHERE hypertable_name = 'hyper_2dim';
-[ RECORD 1 ]-----+----------------------------
hypertable_schema | public
hypertable_name | hyper_2dim
dimension_number | 1
column_name | a_col
column_type | date
dimension_type | Time
time_interval | 7 days
integer_interval |
integer_now_func |
num_partitions |
-[ RECORD 2 ]-----+----------------------------
hypertable_schema | public
hypertable_name | hyper_2dim
dimension_number | 2
column_name | b_col
column_type | timestamp without time zone
dimension_type | Time
time_interval | 7 days
integer_interval |
integer_now_func |
num_partitions |

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面