使用 DuckDB SQL 查询采集到的数据集并生成分析报告
使用数据集管道采集数据后,可以用 DuckDB 驱动的 SQL 对其进行查询。 这会直接作用于管道写入的 Parquet 文件 — 不需要额外的数据库。
需要 data 可选依赖包:pip install "anysite-cli[data]"
anysite dataset query dataset.yaml \
--sql "SELECT name, headline FROM profiles LIMIT 10"
# From a .sql file instead of --sql
anysite dataset query dataset.yaml --file report.sql
--source 会为您自动生成 SELECT 语句,并与 --fields(支持点号表示法)或 --exclude 组合使用:
anysite dataset query dataset.yaml \
--source profiles \
--fields "name, headline, urn.value AS id"
--fields 和 --exclude 互斥;两者同时给出时以 --fields 为准。
# Aggregation
anysite dataset query dataset.yaml \
--sql "SELECT industry, COUNT(*) as count FROM companies GROUP BY industry ORDER BY count DESC"
# Joins across sources
anysite dataset query dataset.yaml \
--sql "
SELECT p.name, p.headline, c.name as company
FROM profiles p
JOIN employees e ON p.urn_value = e.urn_value
JOIN companies c ON e.company_id = c.urn_value
LIMIT 20
"
# Filtering
anysite dataset query dataset.yaml \
--sql "SELECT * FROM profiles WHERE headline LIKE '%CTO%' OR headline LIKE '%CEO%'"
anysite dataset query dataset.yaml --interactive
打开一个将所有数据集数据源注册为视图的 DuckDB shell,方便用纯 SQL 探索数据。
dataset stats 针对单个数据源运行,报告按列的统计信息:总行数、非空值数量、空值数量、
不同值数量,以及对于数值列还会给出最小值、最大值和平均值。
# Defaults to the first source if --source is omitted
anysite dataset stats dataset.yaml --source profiles
dataset profile 会在管道的所有数据源上运行,报告数据源级别的质量指标:记录数、列数,以及
完整度(所有列中非空值所占的百分比)。它不接受 --source,也不计算按列的统计信息。
anysite dataset profile dataset.yaml
查询、统计和概况结果支持相同的输出格式:
# Table (default)
anysite dataset query dataset.yaml --sql "SELECT * FROM profiles LIMIT 5" --format table
# CSV export
anysite dataset query dataset.yaml --sql "SELECT * FROM profiles" --format csv --output report.csv
# JSON / JSONL
anysite dataset query dataset.yaml --sql "SELECT * FROM profiles" --format json
anysite dataset query dataset.yaml --sql "SELECT * FROM profiles" --format jsonl
| 命令 | 描述 |
|---|---|
anysite dataset query <yaml> --sql "..." |
对采集到的数据运行 SQL 查询 |
anysite dataset query <yaml> --source <id> |
针对单个数据源自动生成并运行查询 |
anysite dataset query <yaml> --interactive |
打开交互式 DuckDB SQL shell |
anysite dataset stats <yaml> --source <id> |
单个数据源的按列统计信息 |
anysite dataset profile <yaml> |
整个管道范围内按数据源的质量摘要 |
查看完整的端到端工作流示例
将查询结果加载到持久化数据库中