EXPORT- und IMPORT DATABASE-Anweisungen
Der Befehl EXPORT DATABASE erlaubt es, den Inhalt der Datenbank in ein bestimmtes Verzeichnis zu exportieren. Der Befehl IMPORT DATABASE erlaubt es, den Inhalt anschließend wieder einzulesen.
Beispiele
Die Datenbank in das Zielverzeichnis target_directory als CSV-Dateien exportieren:
EXPORT DATABASE 'target_directory';In das Verzeichnis target_directory exportieren und die angegebenen Optionen für die CSV-Serialisierung verwenden:
EXPORT DATABASE 'target_directory' (FORMAT csv, DELIMITER '|');In das Verzeichnis target_directory exportieren, Tabellen als Parquet serialisiert:
EXPORT DATABASE 'target_directory' (FORMAT parquet);In das Verzeichnis target_directory exportieren, Tabellen als Parquet serialisiert, mit Zstd komprimiert, mit einer row_group_size von 100.000:
EXPORT DATABASE 'target_directory' ( FORMAT parquet, COMPRESSION zstd, ROW_GROUP_SIZE 100_000);Die Datenbank wieder laden:
IMPORT DATABASE 'source_directory';Alternativ ein PRAGMA verwenden:
PRAGMA import_database('source_directory');Details zum Schreiben von Parquet-Dateien finden Sie auf der Seite zu Parquet-Dateien im Abschnitt Datenimport und auf der Seite zur COPY-Anweisung.
EXPORT DATABASE
Der Befehl EXPORT DATABASE exportiert den gesamten Inhalt der Datenbank – einschließlich Schema-Informationen, Tabellen, Sichten und Sequenzen – in ein bestimmtes Verzeichnis, das anschließend wieder geladen werden kann. Das erzeugte Verzeichnis ist wie folgt aufgebaut:
target_directory/schema.sqltarget_directory/load.sqltarget_directory/t_1.csv...target_directory/t_n.csvDie Datei schema.sql enthält die in der Datenbank gefundenen Schema-Anweisungen. Sie enthält alle CREATE SCHEMA-, CREATE TABLE-, CREATE VIEW- und CREATE SEQUENCE-Befehle, die zum Wiederherstellen der Datenbank nötig sind.
Die Datei load.sql enthält eine Menge von COPY-Anweisungen, mit denen die Daten wieder aus den CSV-Dateien gelesen werden können. Die Datei enthält eine COPY-Anweisung für jede im Schema gefundene Tabelle.
Syntax
IMPORT DATABASE
Die Datenbank kann mit dem Befehl IMPORT DATABASE erneut geladen werden oder manuell, indem zuerst schema.sql und anschließend load.sql ausgeführt wird, um die Daten wieder zu laden.
IMPORT DATABASEerwartet den Import in eine leere Datenbank.schema.sqlverwendet einfacheCREATE-Anweisungen (ohneOR REPLACEoderIF NOT EXISTS), daher schlägt der Import in eine Datenbank, die bereits eines der exportierten Objekte enthält – zum Beispiel einen benutzerdefinierten Typ – mit einem Fehler „already exists“ fehl. Importieren Sie in eine leere Datenbank.