返回关于超表维度的信息。超表可以根据一系列不同的维度进行分区。默认情况下,所有超表都按时间分区,但也可以除了时间之外,还按其他维度进行分区。
对于仅按时间分区的超表,timescaledb_information.dimensions
返回单行元数据。对于按多个维度分区的超表,此调用为每个维度返回一行。
对于基于时间的维度,返回的元数据指示整数数据类型,例如 BIGINT、INTEGER 或 SMALLINT,以及与时间相关的数据类型,例如 TIMESTAMPTZ、TIMESTAMP 或 DATE。对于基于空间的维度,返回的元数据指定 num_partitions
的数量。
如果超表使用时间数据类型,则定义 time_interval
列。或者,如果超表使用整数数据类型,则定义 integer_interval
和 integer_now_func
列。
名称 | 类型 | 描述 |
---|---|---|
hypertable_schema | TEXT | 超表的模式名称 |
hypertable_name | TEXT | 超表的表名称 |
dimension_number | BIGINT | 超表的维度编号,从 1 开始 |
column_name | TEXT | 用于创建此维度的列的名称 |
column_type | REGTYPE | 用于创建此维度的列的类型 |
dimension_type | TEXT | 这是一个基于时间的维度还是基于空间的维度 |
time_interval | INTERVAL | 如果列类型是时间数据类型,则为主维度的 Time interval |
integer_interval | BIGINT | 如果列类型是整数数据类型,则为主维度的 Integer interval |
integer_now_func | TEXT | `integer_now` 函数,如果列类型是整数数据类型,则为主维度 |
num_partitions | SMALLINT | 维度的分区数 |
注意
`time_interval` 和 `integer_interval` 列不适用于基于空间的维度。
获取关于超表维度的信息。
-- Create a range and hash partitioned hypertableCREATE 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.dimensionsORDER BY hypertable_name, dimension_number;-[ RECORD 1 ]-----+-------------------------hypertable_schema | publichypertable_name | dist_tabledimension_number | 1column_name | timecolumn_type | timestamp with time zonedimension_type | Timetime_interval | 7 daysinteger_interval |integer_now_func |num_partitions |-[ RECORD 2 ]-----+-------------------------hypertable_schema | publichypertable_name | dist_tabledimension_number | 2column_name | devicecolumn_type | integerdimension_type | Spacetime_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 | publichypertable_name | hyper_2dimdimension_number | 1column_name | a_colcolumn_type | datedimension_type | Timetime_interval | 7 daysinteger_interval |integer_now_func |num_partitions |-[ RECORD 2 ]-----+----------------------------hypertable_schema | publichypertable_name | hyper_2dimdimension_number | 2column_name | b_colcolumn_type | timestamp without time zonedimension_type | Timetime_interval | 7 daysinteger_interval |integer_now_func |num_partitions |
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。