Timescale Cloud:性能、扩展、企业级

自托管产品

MST

手动将超表列式存储中的特定数据块转换为行式存储。

如果您需要修改或向列式存储中的数据块添加大量数据,最佳实践是停止任何将数据块移动到列式存储的作业,将数据块转换回行式存储,然后修改数据。更新后,将数据块转换回列式存储并重启作业。此工作流在您需要回填旧数据时特别有用。

TimescaleDB v2.18.0 起

修改或向数据块添加大量数据

  1. 停止自动将数据块添加到列式存储的作业

    `timescaledb_information.jobs` 视图中检索作业列表,以找到您需要 `alter_job` 的作业。

    SELECT alter_job(JOB_ID, scheduled => false);
  2. 将数据块转换回行式存储以进行更新

    CALL convert_to_rowstore('_timescaledb_internal._hyper_2_2_chunk');
  3. 更新您已添加到行式存储的数据块中的数据

    最佳实践是构建您的 `INSERT` 语句以包含适当的分区键值,例如时间戳。TimescaleDB 会将数据添加到正确的数据块中

    INSERT INTO metrics (time, value)
    VALUES ('2025-01-01T00:00:00', 42);
  4. 将更新后的数据块转换回列式存储

    CALL convert_to_columnstore('_timescaledb_internal._hyper_1_2_chunk');
  5. 重启自动将数据块转换为列式存储的作业

    SELECT alter_job(JOB_ID, scheduled => true);
名称类型默认值必填描述
chunkREGCLASS-要移动到行式存储的数据块名称。
if_compressedBOOLEANtrue设置为 false,如果 chunk 不在列式存储中,则此作业将报错而非发出警告

关键词

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