Python中Mongo集合到Duckdb

问题描述 投票:0回答:1

我想从Python中的mongo集合在duckdb数据库中创建一个表,以进行进一步分析。现在我执行以下操作:

  • 将 mongo 集合作为 jsonl 转储到磁盘(单个文件)
  • 打开 duckdb 连接并将 jsonl 文件加载到表中
with open(f"mongo_json.jsonl", "w") as file:
       json.dump(list(mongo_cursor), file, default=str)

duckdb.sql(f"CREATE OR REPLACE TABLE mongo_table AS SELECT *,  FROM read_json_auto('mongo_json.jsonl', IGNORE_ERRORS=true)")

但问题是 json 确实很大,这增加了内存消耗。那么有没有什么想法或更好的方法来实现这一目标?

python json mongodb pymongo duckdb
1个回答
0
投票

如果您的数据适合内存,请查看

pymongoarrow
链接)。您可以使用它从 mongo 获取箭头表,这些箭头表可以轻松地摄入到
duckdb
中。您甚至可以分块执行此操作,以防止出现 oom。

© www.soinside.com 2019 - 2024. All rights reserved.