⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
导入数据

使用数据库系统的第一步是将数据插入到该系统中。DuckDB 可以直接连接到许多流行的数据源,并提供多种数据摄取方法,使您能够轻松高效地填充数据库。在此页面上,我们概述了这些方法,以便您可以选择最适合您用例的方法。

INSERT 语句

INSERT 语句是将数据加载到数据库系统中的标准方法。它们适用于快速原型开发,但应避免用于批量加载,因为它们具有显著的每行开销。

INSERT INTO people VALUES (1, 'Mark');

有关更详细的描述,请参阅关于 INSERT 语句的页面

文件加载:相对路径

使用配置选项 file_search_path 配置相对路径将扩展到哪些“根目录”。如果未设置 file_search_path,则工作目录将用作相对路径的基础。

文件格式

CSV 加载

可以使用多种方法从 CSV 文件高效加载数据。最简单的方法是使用 CSV 文件名

SELECT * FROM 'test.csv';

或者,使用 read_csv 函数来传递选项

SELECT * FROM read_csv('test.csv', header = false);

或者使用 COPY 语句

COPY tbl FROM 'test.csv' (HEADER false);

也可以直接从压缩的 CSV 文件(例如,使用 gzip 压缩的文件)读取数据

SELECT * FROM 'test.csv.gz';

DuckDB 可以使用 CREATE TABLE ... AS SELECT 语句从加载的数据创建表

CREATE TABLE test AS
    SELECT * FROM 'test.csv';

有关更多详细信息,请参阅关于 CSV 加载的页面

Parquet 加载

可以使用文件名高效加载和查询 Parquet 文件

SELECT * FROM 'test.parquet';

或者,使用 read_parquet 函数

SELECT * FROM read_parquet('test.parquet');

或者使用 COPY 语句

COPY tbl FROM 'test.parquet';

有关更多详细信息,请参阅关于 Parquet 加载的页面

JSON 加载

可以使用文件名高效加载和查询 JSON 文件

SELECT * FROM 'test.json';

或者,使用 read_json_auto 函数

SELECT * FROM read_json_auto('test.json');

或者使用 COPY 语句

COPY tbl FROM 'test.json';

有关更多详细信息,请参阅关于 JSON 加载的页面

返回文件名

自 DuckDB v1.3.0 起,CSV、JSON 和 Parquet 读取器支持 filename 虚拟列

COPY (FROM (VALUES (42), (43)) t(x)) TO 'test.parquet';
SELECT *, filename FROM 'test.parquet';

Appender

在多个 API(C、C++、Go、Java 和 Rust)中,Appender 可以用作批量数据加载的替代方法。此类别可用于在不使用 SQL 语句的情况下高效地向数据库系统添加行。

本节页面