You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQLite数据导入DuckDB?能否直接查询SQLite数据文件?

SQLite数据导入DuckDB及直接查询方法

一、直接从DuckDB查询SQLite数据文件

DuckDB通过官方扩展支持直接读取SQLite文件,无需提前导入,操作步骤如下:

  1. 启用SQLite扩展:
INSTALL sqlite;
LOAD sqlite;
  1. 两种查询方式:
    • 方式1:挂载SQLite数据库
      将SQLite文件挂载为DuckDB的附加数据库,之后可直接访问其中的表:
      ATTACH 'path/to/your/sqlite.db' AS sqlite_db (TYPE sqlite);
      -- 查询SQLite中的目标表
      SELECT * FROM sqlite_db.your_target_table LIMIT 10;
      
    • 方式2:直接扫描SQLite表
      使用sqlite_scan函数直接读取指定SQLite文件中的表:
      SELECT * FROM sqlite_scan('path/to/your/sqlite.db', 'your_target_table') LIMIT 10;
      

二、将SQLite数据导入DuckDB

如果需要将SQLite数据持久化到DuckDB中,可通过以下方式完成导入:

  1. 基于挂载数据库导入:
-- 先挂载SQLite数据库(步骤同上述方式1)
ATTACH 'path/to/your/sqlite.db' AS sqlite_db (TYPE sqlite);
-- 创建DuckDB表并导入全量数据
CREATE TABLE your_duckdb_table AS SELECT * FROM sqlite_db.your_target_table;
  1. 直接扫描导入:
    无需挂载数据库,直接通过sqlite_scan将数据写入DuckDB表:
CREATE TABLE your_duckdb_table AS SELECT * FROM sqlite_scan('path/to/your/sqlite.db', 'your_target_table');
  1. 增量追加导入:
    如果已有目标表,仅需追加SQLite中的数据:
-- 若未创建目标表,先创建空表匹配结构
CREATE TABLE your_duckdb_table AS SELECT * FROM sqlite_scan('path/to/your/sqlite.db', 'your_target_table') LIMIT 0;
-- 追加数据
INSERT INTO your_duckdb_table SELECT * FROM sqlite_scan('path/to/your/sqlite.db', 'your_target_table');

内容的提问来源于stack exchange,提问作者vega77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:05:34