EXPORT 与 IMPORT DATABASE 语句
EXPORT DATABASE 命令允许你将数据库内容导出到指定目录。IMPORT DATABASE 命令允许你再次读取这些内容。
示例
将数据库导出到目标目录 'target_directory',并保存为 CSV 文件:
EXPORT DATABASE 'target_directory';
导出到目录 'target_directory',并使用给定的 CSV 序列化选项:
EXPORT DATABASE 'target_directory' (FORMAT csv, DELIMITER '|');
导出到目录 'target_directory',表以 Parquet 格式序列化:
EXPORT DATABASE 'target_directory' (FORMAT parquet);
导出到目录 'target_directory',表以 Parquet 格式序列化,使用 Zstd 压缩,row_group_size 为 100,000:
EXPORT DATABASE 'target_directory' (
FORMAT parquet,
COMPRESSION zstd,
ROW_GROUP_SIZE 100_000
);
重新加载数据库:
IMPORT DATABASE 'source_directory';
或者,使用 PRAGMA:
PRAGMA import_database('source_directory');
关于写入 Parquet 文件的详细信息,请参阅数据导入部分中的 Parquet Files 页面以及COPY 语句页面。
EXPORT DATABASE
EXPORT DATABASE 命令会将数据库的全部内容(包括 schema 信息、表、视图和序列)导出到指定目录,之后可以再次加载。生成的目录结构如下:
target_directory/schema.sql
target_directory/load.sql
target_directory/t_1.csv
...
target_directory/t_n.csv
schema.sql 文件包含数据库中的 schema 语句。它包含重建数据库所需的 CREATE SCHEMA、CREATE TABLE、CREATE VIEW 和 CREATE SEQUENCE 命令。
load.sql 文件包含一组 COPY 语句,可用于再次从 CSV 文件中读取数据。该文件会为 schema 中的每个表包含一条 COPY 语句。
语法
IMPORT DATABASE
可以通过再次使用 IMPORT DATABASE 命令来重新加载数据库,或者手动先运行 schema.sql 再运行 load.sql 来重新加载数据。