使用数据库系统的第一步是向该系统插入数据。 DuckDB可以直接连接到许多流行的数据源,并提供几种数据摄取方法,使您能够轻松高效地填充数据库。 在本页中,我们提供了这些方法的概述,以便您可以选择最适合您使用场景的方法。
INSERT
语句
INSERT
语句是将数据加载到数据库系统中的标准方式。它们适用于快速原型设计,但应避免用于批量加载,因为它们具有显著的每行开销。
INSERT INTO people VALUES (1, 'Mark');
有关更详细的描述,请参阅关于INSERT语句
的页面。
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');
Or use the COPY
statement:
COPY tbl FROM 'test.json';
更多详情,请参阅JSON加载页面。
Appender
在多个API(C、C++、Go、Java和Rust)中,Appender可以用作批量数据加载的替代方案。 这个类可以用于高效地向数据库系统添加行,而无需使用SQL语句。