如何处理巨大的转储 xml 文件(大约 70g)并使用 Java 或 Python 将其保存到 Mysql
How to deal with HUGE dump xml file(about 70g) and save it to Mysql using Java or Python
我下载 Stack Overflow posts dump file
做我的 work.When 我解压缩 .7z
文件,.xml
转储文件超过 65G。
我想解析.xml
文件,因为里面有很多不需要的内容。然后我想将使用内容存储到Mysql
数据库中。(Java
或Python
都可以)
但是文件太大我处理不了,它会溢出我的内存(8G)。
我该怎么做才能解决这个棘手的问题。
基本上有两种 XML 解析器,DOM 解析器和 SAX 解析器。
DOM 解析器将整个 XML 解析为 DOM(XML 在内存中的表示),它易于使用和操作,但必须加载到内存中。
SAX 解析器是流解析器,它们解析 XML 文件并本质上发出 XML 元素的开始和结束。这意味着该文件未加载到内存中。这使得 XML 在大多数情况下的处理更加复杂,但您可以处理不适合内存的文件。
因此选择你更喜欢的语言并使用SAX解析器。 Python 是否内置,不确定 Java(我已经好几年没用过它了),但可能有很多选择。
我下载 Stack Overflow posts dump file
做我的 work.When 我解压缩 .7z
文件,.xml
转储文件超过 65G。
我想解析.xml
文件,因为里面有很多不需要的内容。然后我想将使用内容存储到Mysql
数据库中。(Java
或Python
都可以)
但是文件太大我处理不了,它会溢出我的内存(8G)。
我该怎么做才能解决这个棘手的问题。
基本上有两种 XML 解析器,DOM 解析器和 SAX 解析器。
DOM 解析器将整个 XML 解析为 DOM(XML 在内存中的表示),它易于使用和操作,但必须加载到内存中。
SAX 解析器是流解析器,它们解析 XML 文件并本质上发出 XML 元素的开始和结束。这意味着该文件未加载到内存中。这使得 XML 在大多数情况下的处理更加复杂,但您可以处理不适合内存的文件。
因此选择你更喜欢的语言并使用SAX解析器。 Python 是否内置,不确定 Java(我已经好几年没用过它了),但可能有很多选择。