2

我正在研究使用 QuestDB 获取大量金融交易数据。

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

  • 我有多种工具的交易数据。
  • 对于每台仪器,带有微秒时间戳的数据跨越数年。
  • 每个仪器的数据都在一个单独的 CSV 文件中。

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

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

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

我的问题是(除了这种方法总体上是否有意义):

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

  2. 以后每次添加新仪器时都需要重建表吗?

4

1 回答 1

2

从 6.0 开始,您可以简单地将 CSV 一张一张地附加到同一张表中,因为该表具有指定的时间戳并对其进行了分区。

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

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

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

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

于 2021-06-13T12:23:36.977 回答