Railsアプリケーションの下で大量のデータ(約500万レコード)をpostgresqlデータベースにインポートする必要があります。データはxml形式で提供され、その中の画像はBase64でエンコードされます。
xmlファイルの推定サイズは40GBです。どのxmlパーサーがrubyでそのような量のデータを処理できますか?
ありがとう。
Railsアプリケーションの下で大量のデータ(約500万レコード)をpostgresqlデータベースにインポートする必要があります。データはxml形式で提供され、その中の画像はBase64でエンコードされます。
xmlファイルの推定サイズは40GBです。どのxmlパーサーがrubyでそのような量のデータを処理できますか?
ありがとう。
ある種のSAXパーサーを使用することをお勧めします。SAXパーサーは、すべてを一度にメモリにロードするわけではありません。
Rubyパーサーについてはわかりませんが、グーグルですばやくこのブログに投稿しました。そこから掘り始めることができます。
XMLファイルをより小さな部分に分割して、管理しやすくすることもできます。
Juhaが言ったように、XMLSAXパーサーを使用する必要があります。Libxmlはrubyにとって最速のxmllibだと思います。
データをCSVに変換し、DBMSCSV読み込み機能を使用してデータベースに読み込むことができます。MySQLの場合はこれであり、PostgreSQLの場合はこれです。私は40GBのファイルをロードするためにRubyに組み込まれているものを何も使用しません、それはメモリではあまり良くありません。「専門家」に任せるのが最善です。