在 Timescale 2.7 及更高版本中,连续聚合使用一种新格式,该格式提高了性能并使其与更多 SQL 查询兼容。在旧版本的 TimescaleDB 中创建的连续聚合,或在新版本中使用选项 timescaledb.finalized
设置为 false
创建的连续聚合,使用旧格式。
要将连续聚合从旧格式迁移到新格式,您可以使用此过程。它会自动复制您的数据和策略。迁移正在进行时,您可以继续使用连续聚合。
连接到您的数据库并运行
CALL cagg_migrate('<CONTINUOUS_AGGREGATE_NAME>');
警告
版本 2.8.0 中的 cagg_migrate()
存在已知问题。在使用它之前,请升级到版本 2.8.1 或更高版本。
迁移过程提供两个布尔配置参数:override
和 drop_old
。默认情况下,新连续聚合的名称是旧连续聚合的名称,并带有后缀 _new
。
将 override
设置为 true 以使用原始名称重命名您的新连续聚合。旧的连续聚合将使用后缀 _old
重命名。
要同时重命名和完全删除旧的连续聚合,请将两个参数都设置为 true。请注意,drop_old
必须与 override
一起使用。
要检查连续聚合迁移的进度,请查询迁移计划表
SELECT * FROM _timescaledb_catalog.continuous_agg_migrate_plan_step;
使用 cagg_migrate
将连续聚合从旧格式迁移到新格式时,您可能会遇到权限错误。执行迁移的用户必须具有以下权限
- 对表
_timescale_catalog.continuous_agg_migrate_plan
和_timescale_catalog.continuous_agg_migrate_plan_step
的 Select、insert 和 update 权限 - 对序列
_timescaledb_catalog.continuous_agg_migrate_plan_step_step_id_seq
的 Usage 权限
要解决此问题,请切换到有权授予权限的用户,并将以下权限授予执行迁移的用户
GRANT SELECT, INSERT, UPDATE ON TABLE _timescaledb_catalog.continuous_agg_migrate_plan TO <USER>;GRANT SELECT, INSERT, UPDATE ON TABLE _timescaledb_catalog.continuous_agg_migrate_plan_step TO <USER>;GRANT USAGE ON SEQUENCE _timescaledb_catalog.continuous_agg_migrate_plan_step_step_id_seq TO <USER>;
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。