TimescaleDB:功能测试中强制刷新或稳定连续聚合视图
TimescaleDB: force refresh or stability continuous aggregated views in functional testing
我正在使用 TimescaleDB 作为时间序列数据的后端。现在我正在针对这个后端编写一些单元和功能测试。
我从 PostgreSQL 模板启动了一个新数据库
模板设置了连续聚合视图
我使用批量 INSERT
等方式从测试装置加载数据
现在我希望我的测试针对这些聚合视图进行查询
但是,据我了解,TimescaleDB 工作进程在后台刷新连续聚合视图。为了使测试正确,我需要确保所有连续的聚合视图都是最新的。
有没有办法让我查询 TimescaleDB 以了解连续聚合视图的更新情况,并等待它正确摄取所有数据作为 INSERT 的结果?或者任何 INSERT 是否应该在提交时自动反映在所有连续的聚合视图中?
除了使用continuous aggregate policies, which refreshes continuous aggregates on a schedule, it is possible to manually refresh continuous aggregates on demand by calling refresh_continuous_aggregate(). It might be also useful to read this intro。来自文档的示例:
CALL refresh_continuous_aggregate('conditions', '2020-01-01', '2020-02-01');
旁注,了解它可能会有用:您可以调整连续聚合是否应仅返回物化聚合或通过在视图上设置 timescaledb.materialized_only 从超表计算。
我正在使用 TimescaleDB 作为时间序列数据的后端。现在我正在针对这个后端编写一些单元和功能测试。
我从 PostgreSQL 模板启动了一个新数据库
模板设置了连续聚合视图
我使用批量
INSERT
等方式从测试装置加载数据现在我希望我的测试针对这些聚合视图进行查询
但是,据我了解,TimescaleDB 工作进程在后台刷新连续聚合视图。为了使测试正确,我需要确保所有连续的聚合视图都是最新的。
有没有办法让我查询 TimescaleDB 以了解连续聚合视图的更新情况,并等待它正确摄取所有数据作为 INSERT 的结果?或者任何 INSERT 是否应该在提交时自动反映在所有连续的聚合视图中?
除了使用continuous aggregate policies, which refreshes continuous aggregates on a schedule, it is possible to manually refresh continuous aggregates on demand by calling refresh_continuous_aggregate(). It might be also useful to read this intro。来自文档的示例:
CALL refresh_continuous_aggregate('conditions', '2020-01-01', '2020-02-01');
旁注,了解它可能会有用:您可以调整连续聚合是否应仅返回物化聚合或通过在视图上设置 timescaledb.materialized_only 从超表计算。