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和物化视图。 首先,我们创建了一个实现的视图,如以下方式:现在,每次我们有新数据时,视图都会构成材料,并且数据将以分钟为单位存储。
ALTER TABLE trades SET TTL 4 DAYS;
如果我们想进一步下样本的较旧数据,我们还可以在实现的视图中添加一个TTL以删除旧数据,例如,在6个月后,我们可以创建第二个实现的视图,以将旧数据存储在一个小时的情况下,或一天间隔。