跨 django 数据库移动大型数据集

Posted

技术标签:

【中文标题】跨 django 数据库移动大型数据集【英文标题】:Moving large dataset across django databases 【发布时间】:2011-05-21 15:00:00 【问题描述】:

将大型数据集从一个 django 数据库移动到另一个数据库的最佳方法是什么?

我想在高级别(在 django 中)而不是在数据库级别执行此操作。我知道的所有现有工具(dumpdata/loaddata、序列化程序类、django-extensions)都在内存中,因此无法处理大型数据集。

【问题讨论】:

已加星标和 +1。我觉得这很有趣! 【参考方案1】:

我在几个应用程序/数据库上遇到了同样的问题,所以写了这个脚本,它是 django 的 dumpdata 的一个分支,但是为了避免 MemoryError 而将数据分块转储

脚本可在https://github.com/fastinetserver/django-dumpdata-chunks获得

示例用法:

1) 将数据转储到多个文件中:

mkdir some-folder

./manage.py dumpdata_chunks your-app-name
--output-folder=./some-folder --max-records-per-chunk=100000

2) 从文件夹中加载数据:

find ./some-folder | egrep -o "([0-9]+_[0-9]+)" | xargs ./manage.py loaddata

【讨论】:

【参考方案2】:

我发现这篇文章非常有用 - Migrating Django from mysql to PostgreSQL the Easy Way。

【讨论】:

这篇文章很好——为我在使用大型数据库加载/转储数据期间遇到的内存错误问题提供了答案。

以上是关于跨 django 数据库移动大型数据集的主要内容,如果未能解决你的问题,请参考以下文章

大型数据集跨因子的时间序列密度图

在云中跨大型 JSON 数据集运行类似 SQL 的查询?

Django prefetch_related 一个大型数据集

跨节点分发 RDD 或数据帧的副本

使用大型列表优化 Django 查询集调用?

计算跨多个变量的频率 SPSS