【问题标题】:Collecting Relational Data and Adding to a Database Periodically with Python使用 Python 定期收集关系数据并添加到数据库
【发布时间】:2018-01-06 08:07:17
【问题描述】:

我有一个项目:

  • 从活动目录中获取数据
  • 根据 Active Directory 数据从不同服务中获取数据
  • 聚合数据
  • 每 15 分钟需要向数据库添加大约 50000 行

我使用 Postgresql 作为数据库,使用 django 作为 ORM 工具。但我不确定 django 是否适合此类项目。我必须删除并添加 50000 行数据,我担心性能。 有没有另一种方法来做这样的过程?

【问题讨论】:

    标签: django python-2.7 postgresql orm


    【解决方案1】:

    50k 行/15m 无需担心。

    但我会确保使用 bulk_create 来避免 50k 次往返数据库,这可能是一个问题,具体取决于您的数据库网络设置。

    【讨论】:

      【解决方案2】:

      当然还有其他方法,如果那是您的要求。但是 Django ORM 总体上非常灵活,如果您仔细编写查询,将不会产生很大的开销。 15 分钟内 50000 行还不够大。我使用 Django ORM 和 PostgreSQL 每天处理数百万条记录。

      【讨论】:

      • 你能建议另一种方式吗?谢谢
      • 你可以使用SQLAlchemy,或者使用另一个ORM,或者直接使用psycopg2,这样你就可以做低级的COPY functionality
      【解决方案3】:

      你可以为此编写一个自定义的Django管理命令,然后像这样调用它

      python manage.py collectdata
      

      Here is the documentation link

      【讨论】:

      • Django 是此类项目的正确工具吗?我必须删除并添加 50000 行数据,我担心性能。
      • @jojo,Django 只是一个框架。删除和添加行发生在数据库级别。 Postgresql 绝对有能力做到这一点。
      猜你喜欢
      • 2013-09-23
      • 2013-10-24
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多