timescaledb_information.dimensions
Get information on the dimensions of hypertables
Returns information about the dimensions of a hypertable. hypertables can be partitioned on a range of different dimensions. By default, all hypertables are partitioned on time, but it is also possible to partition on other dimensions in addition to time.
For hypertables that are partitioned solely on time,
timescaledb_information.dimensions returns a single row of metadata. For
hypertables that are partitioned on more than one dimension, the call returns a
row for each dimension.
For time-based dimensions, the metadata returned indicates the integer datatype,
such as BIGINT, INTEGER, or SMALLINT, and the time-related datatype, such as
TIMESTAMPTZ, TIMESTAMP, or DATE. For space-based dimension, the metadata
returned specifies the number of num_partitions.
If the hypertable uses time data types, the time_interval column is defined.
Alternatively, if the hypertable uses integer data types, the integer_interval
and integer_now_func columns are defined.
Samples
Section titled “Samples”Get information about the dimensions of hypertables.
-- 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.dimensions ORDER 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 | 2Get information about dimensions of a hypertable that has two time-based dimensions.
CREATE TABLE hyper_2dim (a_col date, b_col timestamp, c_col integer) WITH ( tsdb.hypertable, tsdb.partition_column = '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 |Returns
Section titled “Returns”| Name | Type | Description |
|---|---|---|
hypertable_schema | TEXT | Schema name of the hypertable |
hypertable_name | TEXT | Table name of the hypertable |
dimension_number | BIGINT | Dimension number of the hypertable, starting from 1 |
column_name | TEXT | Name of the column used to create this dimension |
column_type | REGTYPE | Type of the column used to create this dimension |
dimension_type | TEXT | Is this a time based or space based dimension |
time_interval | INTERVAL | Time interval for primary dimension if the column type is a time datatype |
integer_interval | BIGINT | Integer interval for primary dimension if the column type is an integer datatype |
integer_now_func | TEXT | `integer_now“ function for primary dimension if the column type is an integer datatype |
num\_partitions\ | SMALLINT | Number of partitions for the dimension |