用途:帮助用户用 DuckDB 读取并分析数据文件。给定文件名或远程 URL 后,先解析路径,再执行一条 DuckDB 命令完成读取,输出表结构、行数和前 20 行样本,最后据此回答用户问题(默认是描述数据)。
主要能力:内置 read_any 宏,按扩展名自动选择读取器,覆盖 JSON/JSONL/NDJSON/GeoJSON/HAR、CSV/TSV/TAB/TXT、Parquet/PQ、Avro、XLSX/XLS、SHP/GPKG/FGB/KML、IPYNB、DB/SQLITE/SQLITE3,其余按 blob 处理。远程文件需在宏前加前缀:https/http 用 LOAD httpfs;;s3 用 LOAD httpfs; CREATE SECRET (TYPE S3, PROVIDER credential_chain);;gs/gcs 用 LOAD httpfs; CREATE SECRET (TYPE GCS, PROVIDER credential_chain);;az/azure/abfss 用 LOAD httpfs; LOAD azure; CREATE SECRET (TYPE AZURE, PROVIDER credential_chain);。本地文件无需前缀。
使用方式:若用户只给裸文件名(不含 /),先用 find 解析为完整路径。随后运行 duckdb -csv -c 命令,内联定义 read_any 宏并执行 DESCRIBE、count() 和 LIMIT 20。若提示 duckdb: command not found,调用 /duckdb-skills:install-duckdb 后重试;若缺少扩展(如空间、xlsx、sqlite),在宏前加 INSTALL spatial; LOAD spatial; 或 INSTALL sqlite_scanner; LOAD sqlite_scanner; 重试;若读取器或解析错误,改用对应的 read_ 函数。
适用场景:快速探查未知数据文件、远程对象存储数据、混合格式数据集的初步分析。
限制:依赖本机已安装 DuckDB 及相应扩展;远程访问依赖凭证链配置;read_any 按扩展名判断类型,扩展名不符或格式异常时需手动指定读取函数;资料未提供更多性能、并发或安全细节。