Skip to content

move_chunk()

Move a chunk and its indexes to a different tablespace

Since 1.3.0

TimescaleDB allows you to move data and indexes to different tablespaces. This allows you to move data to more cost-effective storage as it ages.

The move_chunk function acts like a combination of the PostgreSQL CLUSTER command and PostgreSQL ALTER TABLE…SET TABLESPACE commands. Unlike these PostgreSQL commands, however, the move_chunk function uses lower lock levels so that the chunk and hypertable are able to be read for most of the process. This comes at a cost of slightly higher disk usage during the operation. For a more detailed discussion of this capability, see the documentation on managing storage with tablespaces.

Note

You must be logged in as a super user, such as the postgres user, to use the move_chunk() call.

SELECT move_chunk(
chunk => '_timescaledb_internal._hyper_1_4_chunk',
destination_tablespace => 'tablespace_2',
index_destination_tablespace => 'tablespace_3',
reorder_index => 'conditions_device_id_time_idx',
verbose => TRUE
);

The syntax is:

SELECT move_chunk(
chunk = '<chunk_name>',
destination_tablespace = '<tablespace_name>',
index_destination_tablespace = '<tablespace_name>',
reorder_index = '<index_name>',
verbose = true | false
);
NameTypeDefaultRequiredDescription
chunkREGCLASS-Name of chunk to be moved
destination_tablespaceNAME-Target tablespace for chunk being moved
index_destination_tablespaceNAMENULLTarget tablespace for index associated with the chunk you are moving
reorder_indexREGCLASS-The name of the index (on either the hypertable or chunk) to order by
verboseBOOLEANFALSESetting to true displays messages about the progress of the move_chunk command.

This function returns void.