> ## Agent Instructions
>
> Base URL: https://api.anysite.io
> Authentication: send the `access-token` header. Do NOT use `Authorization: Bearer`.
> Full endpoint catalog: https://app.anysite.io/docs
# 查询与分析

使用 DuckDB SQL 查询采集到的数据集并生成分析报告

## 概述

使用[数据集管道](/docs/cli/datasets/overview?lang=zh)采集数据后，可以用 DuckDB 驱动的 SQL 对其进行查询。
这会直接作用于管道写入的 Parquet 文件 — 不需要额外的数据库。

> 
  需要 `data` 可选依赖包：`pip install "anysite-cli[data]"`

## SQL 查询

```bash
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` 组合使用：

```bash
anysite dataset query dataset.yaml \
  --source profiles \
  --fields "name, headline, urn.value AS id"
```

`--fields` 和 `--exclude` 互斥；两者同时给出时以 `--fields` 为准。

### 复杂查询

```bash
# 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%'"
```

## 交互模式

```bash
anysite dataset query dataset.yaml --interactive
```

打开一个将所有数据集数据源注册为视图的 DuckDB shell，方便用纯 SQL 探索数据。

## 列统计

`dataset stats` 针对**单个数据源**运行，报告按列的统计信息：总行数、非空值数量、空值数量、
不同值数量，以及对于数值列还会给出最小值、最大值和平均值。

```bash
# Defaults to the first source if --source is omitted
anysite dataset stats dataset.yaml --source profiles
```

## 数据集概况

`dataset profile` 会在管道的**所有数据源**上运行，报告数据源级别的质量指标：记录数、列数，以及
完整度（所有列中非空值所占的百分比）。它不接受 `--source`，也不计算按列的统计信息。

```bash
anysite dataset profile dataset.yaml
```

## 输出格式

查询、统计和概况结果支持相同的输出格式：

```bash
# 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>` | 整个管道范围内按数据源的质量摘要 |

## 后续步骤

  
#### Examples

    查看完整的端到端工作流示例
  
  
#### Database Loading

    将查询结果加载到持久化数据库中
