支付数据大师 - 理解支付业务语义,将自然语言转化为SQL查询并执行。支持GMV/PMV查询、退款分析、分账明细、手续费统计、充值提现、商户数据等。触发:提及GMV/PMV、支付表名(ods.pay_*/dm_pay.*)、kdt_id/user_no、支付业务术语(退款/分账/手续费/充值/提现)时使用。默认金融云。触发:提及数仓表名、dp 平台、SQL 查询、数据血缘/任务、或用业务术语描述数据需求时使用。
直接调用:
请 pay-data-master 帮我查询...
触发条件(满足任一即自动调用):
ods.pay_*、dm_pay.*、dev.pay_* 等命令行直接调用:
# 进入技能目录
cd "/Users/huangzhenxin/Documents/youzan/鑫一笔记/支付数据助手/pay-data-master"
# 搜索知识库
python3 pay_data_master.py search --keyword "GMV"
# 执行 SQL
python3 pay_data_master.py query --sql "SELECT * FROM ods.pay_order LIMIT 10"
# 自然语言解析(自动分析是否值得沉淀为工作流)
python3 pay_data_master.py nl --text "查询店铺117301428的PMV"
# 自然语言 + 执行 + 自动保存工作流
python3 pay_data_master.py nl --text "查询店铺117301428的2026年PMV" --execute --save-workflow
# 工作流管理
python3 pay_data_master.py workflow list
python3 pay_data_master.py workflow analyze --sql "..." --text "描述"
python3 pay_data_master.py workflow save --sql "..." --text "描述" --name "my_pattern"
python3 pay_data_master.py workflow delete --name "my_pattern"
支付数据大师:理解支付业务,说人话查数据。
用户用自然语言描述数据需求,skill 自动完成:
每次技能执行前,必须执行以下步骤:
bash scripts/pre-execute.sh pay-data-master
python3 scripts/dp.py <子命令> [参数]
每个子命令支持:--site fin|main(默认 fin 金融云),--format json|table|csv|markdown
query 和 export 还支持:--engine SPARK|PRESTO|HIVE(可选,默认 SPARK)
Token 存储在 ~/.config/dp-platform/token.json。Token 失效(401 错误)时:
# 金融云 dp(访问 https://dp.fin.qima-inc.com 登录后复制 Cookie)
python3 scripts/token_manager.py --save "YOUR_COOKIE"
# 主站 dp
python3 scripts/token_manager.py --save-main "YOUR_COOKIE"
python3 scripts/dp.py query --sql "SELECT * FROM ods.pay_order LIMIT 10"
python3 scripts/dp.py query --sql "SELECT * FROM ods.pay_order LIMIT 10" --format markdown
python3 scripts/dp.py get-result --uuid "UUID"
python3 scripts/dp.py table-columns --db ods --table pay_order
python3 scripts/dp.py table-sample --db ods --table pay_order --limit 5
自动从数据库获取表结构、枚举值,并写入知识库:
# 基本用法 - 自动翻译表
python3 scripts/translate_table.py dev.dm_all_pay_recharge_22_now
# 指定表名和描述
python3 scripts/translate_table.py dm_pay.pay_merchant_pay_config \
--name "子商户号配置表" \
--desc "商户的子商户号配置,包括类型、状态、费率、渠道等" \
--business "商户配置"
python3 scripts/domain_manager.py search --keyword "充值"
python3 scripts/domain_manager.py get --type table --key "ods.pay_order"
python3 scripts/domain_manager.py list --type table
python3 scripts/domain_manager.py upsert --type table --key "ods.pay_order" \
--fields '{"name":"支付订单","description":"记录所有支付订单明细"}'
在生成任何 SQL 之前,必须先执行:
python3 pay_data_master.py workflow list
检查 workflow 的目的:
⚠️ 跳过此步骤会导致业务语义理解偏差、表关系遗漏、过滤条件错误!
收到自然语言查询后,读取 agents/nl-to-sql.md,按照以下流程处理:
domain_manager.py search 搜索相关表,确定目标表table-columns 查询字段信息SQL 生成必须遵循安全约束:
par 分区(快照分区):
par='${DP_1_DAYS_AGO_Ymd}' 取前一天(最新)数据SELECT * FROM dm_pay.pay_merchant_pay_config WHERE par='${DP_1_DAYS_AGO_Ymd}' LIMIT 10非快照分区(事件时间分区):
非分区表:
pay_day >= '2026-03-01'WHERE pay_day >= '2026-03-01'任务完成后,读取 agents/knowledge-extractor.md,判断对话中是否产生了新的业务知识:
如有值得沉淀的知识,用 domain_manager.py upsert/batch-upsert 更新知识库。
每次执行自然语言查询后,自动分析 SQL 是否值得沉淀为工作流:
沉淀评分标准:
| 特征 | 分数 | 说明 |
|---|---|---|
| 多表 JOIN | +2 | 表关联规则值得沉淀 |
| ID 转换规则 | +2 | 涉及 pay_funds_user type=10 |
| 复杂过滤(≥2个 AND) | +1 | 过滤条件多 |
| 枚举字段过滤 | +1 | offline_tag/gmv_type 等 |
| 聚合计算 | +1 | SUM/AVG/COUNT |
| 时间范围过滤 | +1 | pay_day/pay_month 等 |
阈值:分数 ≥ 3 分建议沉淀
自动沉淀流程:
nl 命令时自动分析 SQL--save-workflow 参数确认保存workflows/ 目录# 查看分析结果
python3 pay_data_master.py nl --text "查询店铺PMV"
# 确认保存
python3 pay_data_master.py nl --text "查询店铺PMV" --save-workflow
dev.pay_gmv_pmv_mch_22_now(按商户+日维度汇总)dev.all_pay_recharge_22_now → dev.dm_tc_trade_pay_recharge_22_nowdm_pay.dm_all_pay_recharge_22_nowods.pay_tc_trade(一笔交易一条记录)ods.pay_pc_payment_detail(通道层支付明细)ods.pay_new_pay_orderods.pay_orderdm_pay.all_pay_succ_payment_detailods.pay_pc_refund_detailods.pay_pc_refund_contractods.pay_profit_sharing_billdm_pay.profit_sharing_channel_trade_detaildm_pay.profit_sharing_bills_check_error_detailods.pay_fee_bill_tradeods.pay_settle_feedwd.dwd_pay_recharge_detail_dfods.pay_pc_payment_voucherods.pay_pc_withdraw_instructionods.pay_pc_transfer_detailods.pay_withdraw_channel_trans_flow_maindev.pay_transfer_success_itemsdev.pay_withdraw_mch_date_22_nowdw.dim_team_biz_extenddw.dim_team_cert_infoods.pay_funds_userdm_pay.pay_channel_typedm_pay.pay_tool_pay_methoddm_pay.pay_partner_id_infodm_pay.pay_biz_prod_enumdm_pay.yz_to_fin_shop_type_for_pay_pmv表写入知识库时或使用前,需要校验枚举字段的实际值是否被知识库描述完整覆盖。
# 有 par 分区的表(快照分区,默认 par='${DP_1_DAYS_AGO_Ymd}')
python3 scripts/enum_validator.py --db dm_pay --table pay_merchant_pay_config
python3 scripts/enum_validator.py --db dm_pay --table pay_merchant_pay_config --par 20260309
# 无 par 分区的表(需指定时间字段或自动检测)
python3 scripts/enum_validator.py --db dev --table dm_all_pay_recharge_22_now --time-field pay_day
详细处理流程见 agents/enum-validator.md。
触发时机:
处理原则:
存储常用 SQL 查询模板,快速复用和理解表关系。
# 列出所有示例
python3 scripts/query_examples.py list
# 按标签过滤
python3 scripts/query_examples.py list --tag GMV
# 按表名过滤
python3 scripts/query_examples.py list --table dev.dm_all_pay_recharge_22_now
# 查看示例详情
python3 scripts/query_examples.py show gmv_by_kdt_date
# 运行示例(带参数)
python3 scripts/query_examples.py run gmv_by_kdt_date \
--param kdt_id=56789 \
--param start_date=2026-03-01 \
--param end_date=2026-03-10
# 跳过预览直接执行
python3 scripts/query_examples.py run gmv_by_kdt_date --param kdt_id=56789 -y
# 添加新示例(交互式)
python3 scripts/query_examples.py add "示例名称" "描述" "SELECT * FROM table WHERE id={{id}}"
每个示例包含:
{{param_name}})# 列出所有示例(会显示最新数量和详情)
python3 scripts/query_examples.py list
# 按标签过滤
python3 scripts/query_examples.py list --tag GMV
# 按表名过滤
python3 scripts/query_examples.py list --table dev.dm_all_pay_recharge_22_now
💡 示例库会持续扩充,使用
list命令查看最新示例
agents/nl-to-sql.md — 自然语言转 SQL 的核心处理流程agents/enum-validator.md — 枚举值完整性校验策略agents/knowledge-extractor.md — 知识提取与沉淀策略scripts/translate_table.py — 表翻译工具(自动获取表结构和枚举值)scripts/query_examples.py — SQL 查询示例管理器examples/query_examples.json — SQL 示例库数据workflows/*.json — SQL 工作流模板(必须优先检查)