在服务上启用分层存储后,超表中的各个块可以分层到对象存储层。

在开始之前,您需要一个要分层的块列表。在本例中,您使用一个名为 example 的超表,并将超过三天前的块分层。对象存储层上的数据无法修改 - 因此,插入、更新和删除操作不会在分层数据上执行。因此,请确保您不是将正在主动修改的数据分层到对象存储层。

  1. 在 psql 提示符下,选择表 example 中所有超过三天前的块。

    SELECT show_chunks('example', older_than => INTERVAL '3 days');
  2. 这将返回一个块列表。记下块名称。

    |1|_timescaledb_internal_hyper_1_2_chunk|
    |2|_timescaledb_internal_hyper_1_3_chunk|

当您对块列表感到满意时,您可以使用 tier_chunk 函数手动分层每个块。

  1. 在 psql 提示符下,分层块。

    SELECT tier_chunk( '_timescaledb_internal_hyper_1_2_chunk');

    分层块是一个异步过程,它将调度块进行分层。

  2. 对您要分层的每个块重复此操作。

信息

分层块会将块调度到对象存储层,但不会立即分层。分层可能需要一些时间才能完成。您可以在迁移期间继续查询块。

要查看哪些块已分层到对象存储层,请使用 tiered_chunks 信息视图。

SELECT * FROM timescaledb_osm.tiered_chunks;

块是异步分层的。块一次分层一个,以最大限度地减少分层过程期间的数据库资源消耗。您可以使用此视图查看已调度分层的块(通过策略或通过对 tier_chunk 的手动调用),但尚未移动到对象存储层。

SELECT * FROM timescaledb_osm.chunks_queued_for_tiering ;

如果您需要取消分层数据,请参阅 手动取消分层数据 部分。

大多数用户不需要手动分层块,而是创建一个 分层策略 来自动化块分层时间。

关键词

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