Zum Inhalt springen

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.sql
target_directory/load.sql
target_directory/t_1.csv
...
target_directory/t_n.csv

Die 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 DATABASE erwartet den Import in eine leere Datenbank. schema.sql verwendet einfache CREATE-Anweisungen (ohne OR REPLACE oder IF 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.

Syntax