专业版爬虫采集SQL查询编写提示词
这是一份为数据工程师与爬虫开发者设计的结构化提示词方案,旨在将“专业版爬虫采集SQL查询编写...
提示词内容
复制角色定义与任务定位
请以“数据管道架构师”或“高级数据采集工程师”的身份,运用此方案。您的核心目标是:针对特定的网页爬虫数据采集任务,设计并生成可直接用于数据库查询、数据清洗与结构化的专业级SQL语句,确保数据提取的准确性、效率与可维护性。
适用场景
- 将从爬虫获取的原始、非结构化或半结构化数据(如JSON、HTML表格、API响应)清洗并存入关系型数据库后,进行复杂查询与分析。
- 需要从海量爬虫采集记录中,进行去重、关联、筛选、聚合统计等操作。
- 构建数据仓库中与爬虫数据相关的ETL(提取、转换、加载)流程中的查询逻辑。
- 为数据看板或报告编写基于爬虫采集数据的核心查询脚本。
核心提示词(可直接使用或组合)
- 基础查询与清洗:“编写SQL,从 `raw_crawl_data` 表中提取昨日采集的所有商品信息,去除 `title` 字段完全重复的记录,并按采集时间降序排列。”
- 关联与整合:“基于 `product_id`,关联 `crawl_product_table` 和 `crawl_price_history` 表,查询每个商品的最新价格及其相较于首次采集的价格变化百分比。”
- 条件筛选与聚合:“统计过去一周内,来自‘新闻类’站点的采集数据中,状态码为200的成功请求数量,并按站点域名分组,显示采集条目数前十名。”
- 数据质量检查:“查询 `article_content` 表中,内容长度小于100字符或 `publish_date` 为未来日期的异常数据记录。”
- 更新与去重逻辑:“使用CTE(公共表表达式)和窗口函数,为 `staging_crawl_data` 表实现基于 `unique_key` 的增量更新(upsert)逻辑,保留最新版本数据。”
风格方向
- 代码风格:优先采用清晰、模块化的写法(如使用CTE、视图逻辑),强调注释的完整性,特别是对复杂业务逻辑和爬虫特定字段(如`crawl_timestamp`, `source_url`, `response_status`)的说明。
- 性能风格:提示中应考虑查询性能,在涉及大数据集时,建议使用索引优化提示(如对`crawl_time`、`source_domain`字段建立索引)、避免全表扫描的写法。
- 安全风格:注意防范SQL注入风险,在提示中应体现使用参数化查询或对输入值进行严格校验的意识。
构图建议(查询结构设计)
- “SELECT...FROM...WHERE...”基础构图:明确数据来源表(FROM)和核心筛选条件(WHERE),这是查询的骨架。
- “JOIN...ON...”关联构图:清晰描述表之间的关联键和关联类型(INNER, LEFT),如同构建数据的关系网络。
- “GROUP BY...HAVING...ORDER BY...”聚合与排序构图:定义数据的分组维度、聚合后的过滤条件以及最终呈现的序列。
- “WITH...AS...”子查询/CTE分层构图:将复杂查询分解为多个逻辑步骤,像搭建多层脚手架,使逻辑层层递进、清晰可读。
细节强化
- 字段精确化:在提示中具体化字段名,例如使用 `parsed_price` 而非 `价格`,使用 `crawl_session_id` 而非 `批次`。
- 异常处理:明确提示需包含对NULL值、空字符串、格式错误数据的处理逻辑(如使用 `COALESCE`, `NULLIF`, `TRY_CAST`)。
- 时间处理:强调时区统一(如将爬虫时间戳 `crawl_utc_time` 转换为本地时区)和日期范围查询的优化写法。
- 扩展词提示:可在提示中加入“请使用窗口函数进行去重”、“请考虑使用临时表优化性能”、“请输出完整的建表语句(包含索引)以备测试”等具体指令。
使用建议
- 在向AI工具(如ChatGPT、Claude)或代码助手输入时,请将“核心提示词”部分的具体需求与“细节强化”中的要点结合,形成完整、清晰的指令。
- 在实际数据库执行生成SQL前,务必在测试环境或使用 `EXPLAIN` 命令进行执行计划分析,验证其安全性与效率。
- 可将此方案中的模块作为模板,根据实际爬虫数据表结构进行字段和条件的替换,快速生成各类查询需求。
- 建议将常用的复杂查询模式(如增量更新、数据质量报告)保存为标准化提示词片段,以便复用。