我正在尝试找出使用传统 Python 数据格式在 AWS 上写入、读取和存储数据的最佳方法。从我的各种谷歌搜索中,我无法找到用于添加操作的 Big O 表示法运行时的最终列表。我能找到的最好的东西是流行文件格式的文本概述,作者得出的结论是没有一种格式涵盖所有用例。
我的用例如下:
我正在处理的数据集可能有 200 万到 800 万行(这意味着将有 2M 到 8M 个键)。我现在正在考虑的文件格式是:
在我当前的工作流程中,我保存了单独的 NPY 文件,这绝对是解决我的问题的分布式问题的解决方法。但是,当我必须进行递归上传/下载时,将所有数据传入和传出 AWS 就变得很麻烦。
如果您有关于最佳方法的建议,我们将不胜感激!与上面类似,我也很好奇如果我想保存的数据是 JSON 对象,最好的格式是什么。
目前还不清楚您的应用程序到底是什么,以及为什么您想要一次访问这些嵌入内容。大多数嵌入应用(例如 RAG 类型工作流程)都涉及将嵌入存储在称为向量数据库的专用数据库中,该数据库针对执行近似最近邻搜索进行了优化,通常会返回多个结果。
如果您的目标是尽快从远程磁盘访问数据,我强烈建议直接使用某种形式的数据库。这些文件格式当然有其用途,但您很可能最终会花费更多时间在 S3 之上滚动您自己的数据库(听起来您正在使用),而不是解决您的实际问题。
此外,值得一提的是,当涉及到如何表达性能问题时,您的请求也有点令人困惑。 O(1) 很好,并且与存储/数据库实现本身相关,但网络开销可能很大,特别是如果您确实一次访问这些嵌入向量的话。如果您想要任何类型的性能,您将需要非常低的延迟或批量访问记录。
进一步明确您的需求可能会对您有所帮助。如果您有其他信息或疑虑,请随时回复我的评论或编辑您的原始问题。