批量乱序数据导入QuestDB

Bulk out-of-order data import into QuestDB

我正在考虑使用 QuestDB 处理大量金融交易数据。

我已阅读并理解 https://questdb.io/docs/guides/importing-data 但我的情况略有不同。

我的主要用例是查询任意工具子集的全局时间排序交易序列。为了清楚起见,查询的结果看起来像

timestamp,instrument,...
0001,A,...
0003,B,...
0004,C,...
0004,A,...
0005,B,...

因此,我认为我需要将所有交易放在一个 table 中,并带有指定的时间戳和工具索引。我现在不一定需要 QuestDB 的任何时间序列处理功能,但我确实需要按时间戳排序而不是 运行 内存不足。

我的问题是(除了这种方法通常是否有意义之外):

  1. 考虑到每个 CSV 文件跨越数年,是否有一种有效(且简单)的方法将数据合并为一个 table?

  2. 以后每次添加新乐器都需要重建table吗?

从 6.0 开始,您可以简单地将 CSV 逐一附加到相同的 table,因为 table 已指定时间戳并对其进行分区。

如果您的 CSV 很大,我认为将它们分批处理在几百万行的事务中比一次卸载数十亿要好。

根据您拥有的数据量和您的盒子内存,您需要以单个分区适合内存多次的方式进行分区。因此,您可以选择是要按天分区还是按月分区。

决定分区后,如果您能够从所有 CSV 中逐日(或逐月)上传,则可以加快上传速度。

您不需要每次添加仪器时都重建table,当您乱序插入记录时,table会自动逐个分区重写。