构建具有链式数据源和自动化采集功能的声明式 YAML 工作流
数据集管道以 YAML 定义多数据源的采集工作流。数据源之间可以相互依赖,形成如下链条: 搜索 → 公司资料 → 员工 → 帖子。CLI 会自动处理执行顺序、并行度、错误处理和 Parquet 存储。
数据集管道需要 data 可选依赖包:pip install "anysite-cli[data]"
anysite dataset init my-dataset
这会创建一个带有初始配置的 dataset.yaml 文件:
name: my-dataset
description: My data collection pipeline
sources:
- id: search_results
endpoint: /api/linkedin/search/users
params:
keywords: "software engineer"
count: 50
parallel: 1
rate_limit: "10/s"
on_error: stop
storage:
format: parquet
path: ./data/
# Full collection
anysite dataset collect dataset.yaml
# Preview what will be collected (no API calls)
anysite dataset collect dataset.yaml --dry-run
# Collect a specific source only
anysite dataset collect dataset.yaml --source search_results
# Skip LLM processing steps
anysite dataset collect dataset.yaml --no-llm
# Cap how many input values a dependent/from_file source processes (pilot runs)
anysite dataset collect dataset.yaml --limit 20
name: competitor-research
description: Collect and analyze competitor company data
sources:
# Step 1: Search for companies
- id: companies
endpoint: /api/linkedin/search/companies
params:
keywords: "AI startup"
count: 100
parallel: 1
# Step 2: Get employee list for each company (depends on Step 1)
- id: employees
endpoint: /api/linkedin/company/employees
dependency:
from_source: companies
field: urn.value
dedupe: true
input_key: companies
parallel: 3
rate_limit: "10/s"
# Step 3: Get full profiles for each employee (depends on Step 2)
- id: profiles
endpoint: /api/linkedin/user
dependency:
from_source: employees
field: urn.value
input_key: user
parallel: 5
rate_limit: "10/s"
on_error: skip
storage:
format: parquet
path: ./data/
CLI 会解析依赖关系图,并按正确的顺序执行各个数据源。
| 字段 | 描述 |
|---|---|
name |
管道名称(用于历史记录和日志) |
description |
可选的描述 |
sources |
数据源列表(见 Source Types) |
storage.format |
会被接受但对原始采集步骤不生效 — 此 CLI 版本中,采集到的数据始终以 Parquet 格式写入 |
storage.path |
输出目录(默认:./data/) |
schedule.cron |
供 dataset schedule 使用的 cron 表达式(见 Scheduling) |
notifications |
用于成功/失败事件的 Webhook URL |
单个数据源的 export.format(csv、json 或 jsonl)确实已经实现 — 见
Per-Source Transform & Export —
它会在 Parquet 快照之外额外写出一份导出文件,不会改变快照本身的存储方式。
| 命令 | 描述 |
|---|---|
anysite dataset init <name> |
创建一个带有初始 YAML 的新数据集 |
anysite dataset collect <yaml> |
运行采集管道 |
anysite dataset collect <yaml> --dry-run |
预览执行计划,不发起 API 调用 |
anysite dataset collect <yaml> --incremental |
跳过此前已采集的输入 |
anysite dataset collect <yaml> --source <id> |
只采集单个数据源 |
anysite dataset collect <yaml> --limit <n> |
限制依赖型/文件型数据源处理的输入值数量 |
anysite dataset status <yaml> |
检查采集状态 |
anysite dataset collect <yaml> --load-db <conn> |
自动将结果加载到数据库 |
anysite dataset query <yaml> --sql "..." |
用 SQL 查询已采集的数据 |
anysite dataset stats <yaml> --source <id> |
单个数据源的按列统计信息 |
anysite dataset profile <yaml> |
按数据源的质量摘要 |
anysite dataset validate <yaml> |
验证配置但不采集(不发起 API 调用) |
anysite dataset history <name> |
查看运行历史 |
anysite dataset logs <name> --run |
查看某次运行的日志 |
anysite dataset reset-cursor <yaml> |
重置增量采集游标 |
了解 5 种数据源类型:独立型(Independent)、文件型(From File)、依赖型(Dependent)、合并型(Union)和 LLM
设置增量采集、cron/systemd 条目和 Webhook 通知