AI 辅助 SQL:生成、审查和验证查询
Telemetry 可以使用简单语言问题和表元数据来生成第一个 DataFusion SQL 查询或可视化计划。 SQL 在查询工作区中保持可见和可编辑。这可以减少空白页时间,但不会将模糊的业务问题转变为权威指标。
使用 AI 辅助进行加速。将事件合约、计数规则、隐私决策和生产阈值的所有权交给可以审查底层系统的人员。
写一个有界提示
有用的提示标识表、事件粒度、指标、时间范围、过滤器、分组和预期输出。例如:
Using api_request_completed, calculate hourly error rate for production
over the last seven complete days. A failed request has outcome = 'error'.
Return request_count, failed_count, and error_rate. Split by route_template,
exclude incomplete current-hour data, and order newest hour first.
这比“显示 API 健康状况”更安全,因为分母、结果定义、时间界限和分组都是明确的。
请勿将机密、原始客户内容、访问令牌、私人提示或未经审核的个人数据粘贴到指令中。更喜欢模式名称、有界类别和综合示例。
查看生成的查询
在运行或保存生成的 SQL 之前,请检查以下假设:
| 审阅区 | 问题 |
|---|---|
| 表和谷物 | 一行是否代表正在计数的单位? |
| 字段名称和类型 | 引用的字段是否存在兼容类型? |
| 时间 | 是否过滤了预期的 UTC 时间戳,是否处理了不完整的存储桶? |
| 分母 | 该比率是否除以所有符合条件的结果而不仅仅是成功? |
| 空值 | 缺失值是否被故意排除、分组或默认? |
| 加入 | 每个表在加入之前是否已预先聚合为安全粒度? |
| 重复项 | 重试或重复交付是否可以将同一业务成果计算两次? |
| 尺寸 | 分组字段的范围是否足以返回有用的结果? |
| 单位 | 持续时间、字节、令牌、货币和百分比的转换是否一致? |
DataFusion SQL 与 PostgreSQL、BigQuery、Snowflake 等发动机不同。语法上熟悉的函数可能需要受支持的等效函数。当生成的表达式不规划时,请使用 DataFusion SQL 参考。
验证结果
成功执行仅证明查询已运行。使用固定装置或已知的小窗口验证含义:
- 检查原始行中是否有一个预期组。
- 手动计算一项计数、总和或比率。
- 将结果与生成的聚合进行比较。
- 测试空周期和包含空值的周期。
- 检查最新存储桶中的部分数据。
- 更换一个过滤器并确认结果按预期方向变化。
对于联接,比较联接前后的行数。意外的繁殖通常表明颗粒不相容。
仅保存已审核的分析
根据其支持的决策(而不是创建该查询的提示)重命名已审阅的查询。如果可行,请在名称中包含单位和重要范围。更改逻辑时保存新的历史记录条目,并在使用它的仪表板旁边解释材料定义更改。
在未经域审查和代表性测试的情况下,请勿将生成的 SQL 直接连接到寻呼告警、计费工作流程、访问控制决策或面向客户的财务报告。
改进较弱的第一个答案
如果第一个查询错误,请明确更正:
- 确定行粮和符合条件的人口;
- 提供准确的分类值;
- 指定身份是否针对每个用户、帐户、会话或事件;
- 命名预期时间字段和桶;
- 说明如何处理空值、重试和重复传递;
- 请求除最终百分比之外的中间计数;
- 索取 SQL 的简短假设列表。
Telemetry提示包 包括可重复使用的仪器和 SQL 审查提示。继续 SQL 可观测性和事件分析 或针对 SaaS SQL实验室 中的确定性数据进行练习。