Token导航 LogoToken导航TokenDH.com
效率权限需确认clawhub未标认证来源可访问clear审计通过

ak-data-timeout-market-queryak 数据超时行情查询

Agent Skill

用于辅助数据整理、表格处理、CSV/Excel 分析、指标计算和图表准备。它适合让 Agent 清洗字段、汇总数据、发现异常、生成统计口径或把分析结果转成可读说明。使用时需要确认数据来源、字段含义和时间范围,避免把样本数据当全量事实;涉及敏感数据、导出文件或批量写回时,应先确认权限和脱敏边界。

总安装

2,827

周安装

119

GitHub Stars

公开资料未说明

下载量

990
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ak-data-timeout-market-query(ak 数据超时行情查询)
来源仓库:https://github.com/leehoo29/ak-data-timeout-market-query
安装命令:
openclaw skills install ak-data-timeout-market-query
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install ak-data-timeout-market-query

简介

在不改变索引的情况下,在巨大的分片作业表(job_a~job_d)上查询任意单一作业类型的超时状态和市场超时排名。

SKILL.md

name
ak-data-timeout-market-query
description
Query timeout status and market timeout ranking for any single job type on huge sharded job tables (job_a~job_d) without index changes.

Skill: ak-data-timeout-market-query

用于查询 指定租户 + 指定单一任务类型 的超时表现,输出:

说明:本 Skill 主口径是 created_at + break_at/deliver_at。若用户明确要求 depart_at 口径、6项指标、样例自动补 log 字段,请改走 ak-data-depart-timeout-log-report
  • 超时总览(总量、超时量、超时率)
  • market 超时率排行(从 payload.market 提取)
  • 超时时长统计(小时)
  • 代表性超时样本(req_ssn)
适配大表场景(亿级),默认不改索引。

口径定义(固定)

超时条件:

  1. deliver_at > break_at
  2. deliver_at IS NULL AND UTC_TIMESTAMP() > break_at

仅统计 break_at IS NOT NULL 可判定样本。

约束:

  • jobType 必须单值;多类型场景按类型拆分执行(不要混查)。
  • 单次 SQL 仅允许单日窗口(24h)。

自然语言默认规则(新增)

当用户说“最近”但未指定日期时:

  • 默认解释为:最近两天(北京时间)
  • 但仍遵守“最多按天查询”规则:

- 拆成 2 次单日查询(D-1、D-2) - 最后再做汇总展示(不允许跨天一次性 SQL)

示例:当前日期 2026-03-04最近 => 查询 2026-03-032026-03-02 两天。


输入契约

{
  "tenantId": "AK Data",
  "jobType": "AmazonListingJob",
  "dateBjt": "2026-03-02",
  "queryPreset": "single_day",
  "rangeLimit": "single_day_only",
  "tables": ["job_a", "job_b", "job_c", "job_d"],
  "minMarketSample": 1000
}

当用户说“最近”时,转换为:

{
  "tenantId": "AK Data",
  "jobType": "AmazonListingJob",
  "queryPreset": "recent_default",
  "recentDays": 2,
  "datesBjt": ["2026-03-03", "2026-03-02"],
  "rangeLimit": "single_day_only"
}

时间换算(北京时间 -> UTC):

  • start_utc = dateBjt - 8h 00:00:00
  • end_utc = (dateBjt + 1day) - 8h 00:00:00
  • 强校验:end_utc - start_utc = 24h(否则拒绝执行)

性能策略(必须遵守)

  1. 只扫 job_a~job_d(不碰 job 主表)。
  2. 最多按天查询:单次请求只允许 1 个自然日窗口(24h)。
  3. 禁止跨天区间一次性查询;多天需求必须拆成多次单日查询后再汇总。
  4. 使用已有时间索引:FORCE INDEX(index_created_at_status)
  5. 不在过滤列上套函数(避免索引失效)。
  6. 大查询拆为“聚合优先”,明细样本再限量取。

执行流程

A) single_day

  1. 解析 dateBjt -> start_utc/end_utc
  2. 执行:

- 超时总览 SQL - market 超时率排行 SQL - 超时时长 SQL - 限量样本 SQL

  1. 输出单日报告。

B) recent_default(用户仅说“最近”)

  1. 计算 datesBjt=[D-1,D-2]
  2. 对每个 date 按 A 流程独立执行。
  3. 产出:

- perDay 两天分日报告 - merged 两天汇总(在应用层合并,不跨天 SQL)


SQL 模板

1) 超时总览(单日)

SET @tenant_id := 'AK Data';
SET @job_type  := 'AmazonListingJob';
SET @start_utc := '2026-03-01 16:00:00';
SET @end_utc   := '2026-03-02 16:00:00';

SELECT
  SUM(total_cnt) AS total_cnt,
  SUM(timeout_cnt) AS timeout_cnt,
  ROUND(SUM(timeout_cnt) / NULLIF(SUM(total_cnt), 0), 6) AS timeout_rate
FROM (
  SELECT COUNT(*) total_cnt,
         SUM(CASE WHEN break_at IS NOT NULL
                   AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                     OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
                  THEN 1 ELSE 0 END) timeout_cnt
  FROM job_a FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type

  UNION ALL
  SELECT COUNT(*),
         SUM(CASE WHEN break_at IS NOT NULL
                   AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                     OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
                  THEN 1 ELSE 0 END)
  FROM job_b FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type

  UNION ALL
  SELECT COUNT(*),
         SUM(CASE WHEN break_at IS NOT NULL
                   AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                     OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
                  THEN 1 ELSE 0 END)
  FROM job_c FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type

  UNION ALL
  SELECT COUNT(*),
         SUM(CASE WHEN break_at IS NOT NULL
                   AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                     OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
                  THEN 1 ELSE 0 END)
  FROM job_d FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
) t;

2) market 超时率排行(单日,进一步查询)

SET @tenant_id := 'AK Data';
SET @job_type  := 'AmazonListingJob';
SET @start_utc := '2026-03-01 16:00:00';
SET @end_utc   := '2026-03-02 16:00:00';
SET @min_sample := 1000;

SELECT
  market,
  SUM(total_cnt) AS total_cnt,
  SUM(timeout_cnt) AS timeout_cnt,
  ROUND(SUM(timeout_cnt)/NULLIF(SUM(total_cnt),0), 6) AS timeout_rate,
  ROUND(SUM(timeout_cnt)/NULLIF(SUM(total_cnt),0)*100, 4) AS timeout_rate_pct,
  SUM(completed_late_cnt) AS completed_late_cnt,
  SUM(unfinished_overtime_cnt) AS unfinished_overtime_cnt
FROM (
  SELECT
    LOWER(COALESCE(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(payload,'$.market')), ''), 'unknown')) AS market,
    COUNT(*) AS total_cnt,
    SUM(CASE WHEN break_at IS NOT NULL
              AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
             THEN 1 ELSE 0 END) AS timeout_cnt,
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NOT NULL AND deliver_at > break_at
             THEN 1 ELSE 0 END) AS completed_late_cnt,
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NULL AND UTC_TIMESTAMP() > break_at
             THEN 1 ELSE 0 END) AS unfinished_overtime_cnt
  FROM job_a FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
  GROUP BY market

  UNION ALL
  SELECT
    LOWER(COALESCE(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(payload,'$.market')), ''), 'unknown')),
    COUNT(*),
    SUM(CASE WHEN break_at IS NOT NULL
              AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
             THEN 1 ELSE 0 END),
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NOT NULL AND deliver_at > break_at
             THEN 1 ELSE 0 END),
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NULL AND UTC_TIMESTAMP() > break_at
             THEN 1 ELSE 0 END)
  FROM job_b FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
  GROUP BY 1

  UNION ALL
  SELECT
    LOWER(COALESCE(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(payload,'$.market')), ''), 'unknown')),
    COUNT(*),
    SUM(CASE WHEN break_at IS NOT NULL
              AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
             THEN 1 ELSE 0 END),
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NOT NULL AND deliver_at > break_at
             THEN 1 ELSE 0 END),
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NULL AND UTC_TIMESTAMP() > break_at
             THEN 1 ELSE 0 END)
  FROM job_c FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
  GROUP BY 1

  UNION ALL
  SELECT
    LOWER(COALESCE(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(payload,'$.market')), ''), 'unknown')),
    COUNT(*),
    SUM(CASE WHEN break_at IS NOT NULL
              AND ((deliver_at IS NOT NULL AND deliver_at > break_at)
                OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
             THEN 1 ELSE 0 END),
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NOT NULL AND deliver_at > break_at
             THEN 1 ELSE 0 END),
    SUM(CASE WHEN break_at IS NOT NULL AND deliver_at IS NULL AND UTC_TIMESTAMP() > break_at
             THEN 1 ELSE 0 END)
  FROM job_d FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
  GROUP BY 1
) x
GROUP BY market
HAVING SUM(total_cnt) >= @min_sample
ORDER BY timeout_rate DESC, timeout_cnt DESC;

3) 超时时长统计(单日)

SET @tenant_id := 'AK Data';
SET @job_type  := 'AmazonListingJob';
SET @start_utc := '2026-03-01 16:00:00';
SET @end_utc   := '2026-03-02 16:00:00';

SELECT
  COUNT(*) AS timeout_cnt,
  ROUND(AVG(overdue_hours), 4) AS avg_hours,
  ROUND(MAX(overdue_hours), 4) AS max_hours
FROM (
  SELECT TIMESTAMPDIFF(SECOND, break_at, COALESCE(deliver_at, UTC_TIMESTAMP())) / 3600.0 AS overdue_hours
  FROM job_a FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
    AND break_at IS NOT NULL
    AND ((deliver_at IS NOT NULL AND deliver_at > break_at) OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))

  UNION ALL
  SELECT TIMESTAMPDIFF(SECOND, break_at, COALESCE(deliver_at, UTC_TIMESTAMP())) / 3600.0
  FROM job_b FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
    AND break_at IS NOT NULL
    AND ((deliver_at IS NOT NULL AND deliver_at > break_at) OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))

  UNION ALL
  SELECT TIMESTAMPDIFF(SECOND, break_at, COALESCE(deliver_at, UTC_TIMESTAMP())) / 3600.0
  FROM job_c FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
    AND break_at IS NOT NULL
    AND ((deliver_at IS NOT NULL AND deliver_at > break_at) OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))

  UNION ALL
  SELECT TIMESTAMPDIFF(SECOND, break_at, COALESCE(deliver_at, UTC_TIMESTAMP())) / 3600.0
  FROM job_d FORCE INDEX(index_created_at_status)
  WHERE created_at >= @start_utc AND created_at < @end_utc
    AND tenant_id=@tenant_id AND type=@job_type
    AND break_at IS NOT NULL
    AND ((deliver_at IS NOT NULL AND deliver_at > break_at) OR (deliver_at IS NULL AND UTC_TIMESTAMP() > break_at))
) t;

输出契约

single_day 输出

{
  "scope": {
    "tenantId": "AK Data",
    "jobType": "AmazonListingJob",
    "dateBjt": "2026-03-02",
    "rangeLimit": "single_day_only"
  },
  "summary": {
    "total": 0,
    "timeout": 0,
    "timeoutRate": 0
  },
  "marketRank": [],
  "durationHours": {
    "avg": 0,
    "median": 0,
    "p90": 0,
    "p95": 0,
    "max": 0
  },
  "samples": [],
  "visualization": {
    "charts": [
      "overview pie/bar chart",
      "market top horizontal-bar chart",
      "day trend chart (single_day 可退化为单点)"
    ]
  }
}

recent_default 输出

{
  "scope": {
    "tenantId": "AK Data",
    "jobType": "AmazonListingJob",
    "queryPreset": "recent_default",
    "recentDays": 2,
    "datesBjt": ["2026-03-03", "2026-03-02"]
  },
  "perDay": [
    { "dateBjt": "2026-03-03", "summary": {}, "marketRank": [] },
    { "dateBjt": "2026-03-02", "summary": {}, "marketRank": [] }
  ],
  "merged": {
    "summary": {},
    "marketRank": []
  },
  "visualization": {
    "charts": [
      "overview pie chart",
      "market top horizontal-bar chart",
      "per-day timeout rate line/bar chart"
    ]
  }
}

图表模板(强制,稳定输出)

当产出给 Web Luca 前端时,必须附带 3 张标准 chart 配置(正文后用 ```chart 包裹)。

Chart-1:总览(超时 vs 非超时)

{
  "type": "pie",
  "title": "{jobType} 超时占比({scopeLabel})",
  "xAxisKey": "name",
  "data": [
    { "name": "timeout", "value": 355807 },
    { "name": "ontime", "value": 327460 }
  ],
  "series": [
    { "key": "value", "name": "任务量", "color": "#ef4444" },
    { "key": "value", "name": "任务量", "color": "#22c55e" }
  ],
  "summary": [
    { "label": "总任务", "value": 683267 },
    { "label": "超时任务", "value": 355807 },
    { "label": "超时率", "value": "52.07%", "progress": 52.07, "color": "#f59e0b" }
  ],
  "description": "用于快速判断整体风险水平。"
}

Chart-2:market Top 风险(横向条形)

{
  "type": "horizontal-bar",
  "title": "{jobType} Market 超时率 Top10({scopeLabel})",
  "xAxisKey": "market",
  "labelKey": "timeout_rate_pct",
  "data": [
    { "market": "uk", "timeout_rate_pct": 86.75, "timeout_cnt": 12345, "total_cnt": 14230 },
    { "market": "de", "timeout_rate_pct": 76.42, "timeout_cnt": 10002, "total_cnt": 13088 }
  ],
  "series": [
    { "key": "timeout_rate_pct", "name": "超时率(%)", "color": "#ef4444" }
  ],
  "summary": [
    { "label": "样本门槛", "value": "min 1000" },
    { "label": "Top1", "value": "uk 86.75%", "progress": 86.75, "color": "#ef4444" }
  ],
  "description": "优先排查前 3 market 的队列积压与上游限流。"
}

Chart-3:分天趋势(最近两天)

{
  "type": "line",
  "title": "{jobType} 分天超时率趋势",
  "xAxisKey": "date",
  "data": [
    { "date": "2026-03-02", "timeout_rate_pct": 46.45, "total_cnt": 341154, "timeout_cnt": 158475 },
    { "date": "2026-03-03", "timeout_rate_pct": 57.68, "total_cnt": 342113, "timeout_cnt": 197332 }
  ],
  "series": [
    { "key": "timeout_rate_pct", "name": "超时率(%)", "color": "#f59e0b" }
  ],
  "summary": [
    { "label": "D-2", "value": "46.45%", "progress": 46.45, "color": "#22c55e" },
    { "label": "D-1", "value": "57.68%", "progress": 57.68, "color": "#ef4444" }
  ],
  "description": "用于识别最近是否恶化;若 D-1 显著上升,优先做小时级热点排查。"
}

规则:

  1. 单次单一 jobType,图里不得混入其他类型。
  2. recent_default 必须来自两次单日查询汇总,不得跨天大 SQL。
  3. 数值字段保持 number;summary.value 可字符串用于展示。
  4. 若数据不足(如 market 样本 < 阈值),chart 仍输出,但 data 可为空并在 description 说明。
  5. 文本报告结构固定为:执行范围 -> 核心结论(<=3 条)-> 3 张图 -> 行动建议(P0/P1/P2)。

失败与降级策略

  • 若 JSON 解析 market 失败:归入 unknown
  • 若某分表超时/报错:先返回其余分表结果,并在报告显式标注缺失分表。
  • 若全量时长分位查询过慢:先返回 avg/max + 样本,分位数改离线补算。

使用提示

  • 这是“运营诊断”技能,不做 DDL,不改线上结构。
  • 多天查看请走“按天拆分 + 汇总”,不要跨天大 SQL。

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

83.69%
按下载量换算829

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills