Python AWS EC2 mongoDB-脚本效率

Python AWS EC2 mongoDB-脚本效率,python,mongodb,amazon-web-services,amazon-ec2,Python,Mongodb,Amazon Web Services,Amazon Ec2,根据客户机的请求,而不是使用DynamoDB,我们在AWSEC2实例上配置了mongoDB。 所述实例是一个m5a.large,具有2个vCPU和8GB内存。如前所述,它安装了mongoDB,以及Python和一些用于mongo的库 当我们开始用大约2-3条ill记录和14列的csv填充mongo集合时,问题就开始了。(约400mb) 当实例没有停止或引发OOM错误时,填充集合的脚本会在大约90%的记录处停止,并且不会引发任何错误 我相信这与我们用来做这件事的脚本有关,我想知道是否有人可以帮助我

根据客户机的请求,而不是使用DynamoDB,我们在AWSEC2实例上配置了mongoDB。 所述实例是一个m5a.large,具有2个vCPU和8GB内存。如前所述,它安装了mongoDB,以及Python和一些用于mongo的库

当我们开始用大约2-3条ill记录和14列的csv填充mongo集合时,问题就开始了。(约400mb) 当实例没有停止或引发OOM错误时,填充集合的脚本会在大约90%的记录处停止,并且不会引发任何错误

我相信这与我们用来做这件事的脚本有关,我想知道是否有人可以帮助我,或者给我另一种更有效的方法,或者确认这只是一个实例内存限制

import json
from mongoengine import *
from app.config import *
import pandas as pd
from app.model import Users

import time

conn = connect(
    db=db_name,
    username=username,
    password=password,
    authentication_source=authentication_source,
    host=host,
)


if __name__ == "__main__":

    t0 = time.time()
    print("Time taken %8.8f seconds" % (time.time() - t0))

    # CSV to JSON Conversion
    df = pd.read_csv(
        "csv.csv",
        sep="|",
        encoding="latin1",
    )


    df = df.rename(
        columns={
            "c1":"C1",
        }
    )

    rows = df.to_json(orient="records")
    rows = json.loads(rows)

    Users.objects(cond=True).update(**{"cond": False})

    for row in rows:
        Users(row).register()
    print("Time taken %8.8f seconds" % (time.time() - t0))

<强>注释:用户类继承了MungEngEngEngices文档>/P>。您可能需要考虑的一种不同方法是将CSV转换为JSON文件。然后使用mongoimport导入JSON文件。无需转换,mongoimport通过

--type
命令行选项直接支持CSV。您介意给出一个mongoimport如何工作的示例吗?我不是什么专家,CSV确实正在转换为json文件。