PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So importieren Sie eine große XML-Datei (~10 GB) in PostgreSQL

  1. Konvertieren Sie die XML-Datei in eine CSV-Datei. Teilen Sie sie beim Konvertieren auch in Teile mit 100 MB bis 1 GB auf, um die Stapelverarbeitung zu vereinfachen.

  2. Erstellen Sie die Tabelle mit Spalten, die Sie in der CSV-Datei definiert haben.

  3. Laden Sie die Datei(en) mit COPY in Postgres hoch Befehl. Es ist der schnellste Weg, eine große Datenmenge hochzuladen, den ich kenne. Übrigens könnte es auch von Java aus gemacht werden, mit CopyManager Klasse.

Abhängig von der Art der Abfragen, die Sie ausführen, möchten Sie Indizes erstellen:

  1. Es wird der zeitaufwändigste Teil sein. Sie können jedoch CREATE INDEX CONCURRENTLY verwenden . Damit können Sie mit Ihrer Tabelle arbeiten, während der Index im Hintergrund erstellt wird.

  2. Wenn Sie den Importvorgang wiederholen und die Tabelle und Indizes bereits erstellt haben, löschen Sie die Indizes, bevor Sie den COPY-Befehl ausgeben, und erstellen Sie sie später erneut. Es wird Ihnen viel Zeit sparen.

  3. Wenn Sie mit der Geschwindigkeit Ihrer Abfragen oder der Indexerstellung immer noch unzufrieden sind, ist es vielleicht eine gute Idee, Clickhouse stattdessen. Es hängt jedoch davon ab, welche Art von Abfragen Sie durchführen.