最终的方法,以自动化倒数采样数据 +删除QuestDB

问题描述 投票:0回答:1
CREATE TABLE 'trades' ( symbol SYMBOL CAPACITY 256 CACHE, side SYMBOL CAPACITY 256 CACHE, price DOUBLE, amount DOUBLE, timestamp TIMESTAMP ) timestamp(timestamp) PARTITION BY DAY WAL WITH maxUncommittedRows=500000, o3MaxLag=2000000us;

我想通过将数据缩放到第二个表中来节省空间并优化查询,并删除超过3天的数据。我想这样下样本:

SELECT timestamp, symbol, side, first(price) AS open, last(price) AS close, min(price), max(price), sum(amount) AS volume FROM trades WHERE SAMPLE BY 1m
我看到您可以使用

AirFlow

之类的工具分离分区并将数据移动到其他地方。气流自动化是否也是缩小我的桌子并删除数据的最佳行动方案?
	
您可以使用气流或dagster之类的工具来自动化此工作流程,但是由于Workdlow非常简单,因此您可以使用最近发布的TTL和物化视图。 首先,我们创建了一个实现的视图,如以下方式:

SELECT timestamp, symbol, side, first(price) AS open, last(price) AS close, min(price), max(price), sum(amount) AS volume FROM trades WHERE SAMPLE BY 1m ) PARTITION BY DAY;

现在,每次我们有新数据时,视图都会构成材料,并且数据将以分钟为单位存储。
database time-series questdb
1个回答
0
投票

ALTER TABLE trades SET TTL 4 DAYS;

如果我们想进一步下样本的较旧数据,我们还可以在实现的视图中添加一个TTL以删除旧数据,例如,在6个月后,我们可以创建第二个实现的视图,以将旧数据存储在一个小时的情况下,或一天间隔。


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.