我正在尝试以压缩的 apache parquet 格式存储/保留 kdb 表。 我最初的计划基本上是使用 embedPy 将 fastparquet 或 pyarrow.parquet 转换为可在 q 内使用。 然后,我将使用 kdb+ 刻度架构来处理传入的刻度并运行每日批量 parquet 写入磁盘。 这是个好主意吗?否则将大量数据保存到磁盘的最佳方法是什么?谢谢
我回答这个问题有点晚了,但我认为我的经验可能对其他人有帮助。
我工作的一家对冲基金中,我们同时拥有 parquet 和 kdb,并且都存储了期货的价格变动数据。他们最初想要 parquet 的原因是它非常适合存储压缩数据(比 kdb 使用的 gzip 效率高约 10%)。 parquet 的问题在于,它通过二进制存储以及通过每个文件存储元数据(也以二进制形式存储)来获得这种额外的压缩。这两个“功能”使得镶木地板一旦存储在光盘上就很难使用,因为在查看之前需要将它们转换为文本。 kdb 具有类似的压缩功能,但读取/打印会自动将数据转换为文本,以便在浏览器中轻松阅读。所以最后,我们将所有 parquet 数据转换为 kdb,并使用内置的 sql 功能直接从 C++、Python 或直接从浏览器命令行查询数据。
总而言之,kdb vs parquet