Timescale Cloud:性能、扩展、企业级
自托管产品
MST
返回超表维度信息。超表可以根据一系列不同维度进行分区。默认情况下,所有超表都按时间分区,但也可以在时间之外的其他维度上进行分区。
对于仅按时间分区的超表,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 | 如果列类型是时间数据类型,则为主要维度的时间间隔 |
integer_interval | BIGINT | 如果列类型是整数数据类型,则为主要维度的整数间隔 |
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 |
关键词