SuperAPI AI 工具集

motherduck-load-data

数据与分析

查看项目

更新于 10-15 13:02

技能介绍

用途

该技能用于把数据加载到 MotherDuck。它针对不同来源提供批量摄取路径建议,包括文件、对象存储、数据框以及外部数据库。其核心目标是在确保与 MotherDuck 当前官方文档一致的前提下,选择恰当的加载方式。

主要能力

  • 识别数据来源类型:对象存储或 HTTPS、本地文件或本地 DuckDB、内存行以及外部数据库。
  • 根据不同来源选择加载路径:
    • 对象存储或 HTTPS:远程读取到 MotherDuck。
    • 本地文件或本地 DuckDB:使用 DuckDB 客户端路径。
    • 远程 DuckDB 数据库文件:使用 CREATE DATABASE ... FROM '<cloud-url>' 并配合所需的云密钥。
    • 内存行:优先使用 Arrow 或数据框批量加载,批量插入作为回退方案。
    • 外部数据库:从具备 DuckDB 能力的环境中使用适当的扫描或复制路径。
  • 推荐首次加载使用 CREATE TABLE AS SELECT,追加使用 INSERT INTO ... SELECT。
  • 针对整个 DuckDB 数据库,支持 CREATE OR REPLACE DATABASE remote_name FROM CURRENT_DATABASE()、附加本地数据库、本地文件路径或远程 .duckdb 文件 URL。远程和本地文件导入会物理复制数据到 MotherDuck;数据库或共享克隆源为零拷贝。
  • 在可控源格式时推荐使用 Parquet 进行持久批量移动。
  • 将 Postgres 端点视为瘦客户端路径,用于服务端远程读取,而非本地文件或扩展驱动的摄取。
  • 在摄取工具不会自动创建目标数据库时,先引导创建目标 MotherDuck 数据库。
  • 保持原始落地数据最小化转换,在暂存或建模步骤中进行类型化、去重和业务逻辑处理。
  • 在可控放置时,保持源存储靠近 MotherDuck 区域。

使用方式

  1. 确认源数据的实际位置。
  2. 选择加载路径:
    • 对象存储或 HTTPS:远程读取进入 MotherDuck。
    • 本地文件或本地 DuckDB:使用 DuckDB 客户端路径。
    • 远程 DuckDB 数据库文件:使用带云密钥的 CREATE DATABASE ... FROM '<cloud-url>'。
    • 内存行:优先 Arrow 或数据框批量加载,仅将批量插入作为回退。
    • 外部数据库:从 DuckDB 环境使用适当的扫描或复制路径。
  3. 将数据落地到原始或暂存表,最小化转换。
  4. 加载后立即校验行数、类型和少量业务聚合。
  5. 仅在请求包含转换时,才将数据提升到建模表;加载请求在目标数据校验完成后即视为完成。

对于回答、审查或规划请求,推荐加载路径而不改动数据。对于加载或实现请求,执行范围内所请求的写入和校验;在破坏性替换或更广泛的外部写入前先询问。

适用场景

适用于需要将数据从多种来源(如对象存储、本地文件、内存数据框、外部数据库)批量导入 MotherDuck 的场景。无论是首次加载还是追加数据,该技能都提供与 MotherDuck 文档一致的加载建议。

限制

应优先参考当前 MotherDuck 官方加载、云存储和 Postgres 端点加载文档。受保护对象存储工作流应使用 CREATE SECRET 和云存储文档。当源是现有本地 .duckdb、.ddb 或附加的 DuckDB 数据库时,参考 DuckDB 数据库上传文档。该技能仅提供加载路径指导与执行建议,不编造功能、收费、价格、平台或效果。

参考资料

仅阅读当前任务所需的参考章节。读取 references/INGESTION_PATTERNS.md 获取格式特定选项、云存储密钥、Postgres 端点加载权衡、Python 数据框路径和高级摄取模式。

相关技能

仅在缺少能力时加载相关技能;复用已有上下文。相关技能包括:motherduck-connect(在 Postgres 端点与 DuckDB 客户端路径之间选择)、motherduck-explore(检查目标数据库并校验落地表)、motherduck-query(编写 CTAS、追加和校验 SQL)、motherduck-model-data(将落地数据提升到暂存和分析表)、motherduck-ducklake(仅在明确要求对象存储支持的湖仓存储时使用)、motherduck-cli(当基于 shell 的加载应将结构化输出流式写入文件时使用)。