checking-freshness by astronomer/agents
npx skills add https://github.com/astronomer/agents --skill checking-freshness快速判断数据是否足够新鲜可用。
针对每个待检查的表:
寻找指示数据加载或更新时间的列:
_loaded_at、_updated_at、_created_at(常见 ETL 模式)updated_at、created_at、modified_at(应用时间戳)load_date、etl_timestamp、ingestion_time广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
date、event_date、transaction_date(业务日期)如果需要查看列名,请查询 INFORMATION_SCHEMA.COLUMNS。
SELECT
MAX(<timestamp_column>) as last_update,
CURRENT_TIMESTAMP() as current_time,
TIMESTAMPDIFF('hour', MAX(<timestamp_column>), CURRENT_TIMESTAMP()) as hours_ago,
TIMESTAMPDIFF('minute', MAX(<timestamp_column>), CURRENT_TIMESTAMP()) as minutes_ago
FROM <table>
对于定期更新的表,检查近期活动:
SELECT
DATE_TRUNC('day', <timestamp_column>) as day,
COUNT(*) as row_count
FROM <table>
WHERE <timestamp_column> >= DATEADD('day', -7, CURRENT_DATE())
GROUP BY 1
ORDER BY 1 DESC
使用以下等级报告状态:
| 状态 | 时间间隔 | 含义 |
|---|---|---|
| 新鲜 | < 4 小时 | 数据是最新的 |
| 陈旧 | 4-24 小时 | 可能已过时,检查是否符合预期 |
| 非常陈旧 | > 24 小时 | 除非是批处理作业,否则很可能有问题 |
| 未知 | 无时间戳 | 无法确定新鲜度 |
检查源管道的 Airflow:
af dags list 并查找匹配的名称。af dags get <dag_id>af dags stats如果您在 Astro 上运行,还可以:
提供清晰、易于浏览的报告:
新鲜度报告
============
表:database.schema.table_name
最后更新:2024-01-15 14:32:00 UTC
时间间隔:2 小时 15 分钟
状态:新鲜
表:database.schema.other_table
最后更新:2024-01-14 03:00:00 UTC
时间间隔:37 小时
状态:非常陈旧
源 DAG:daily_etl_pipeline(失败)
操作:使用 **debugging-dags** 技能进行调查
如果用户只想要是/否答案:
每周安装量
374
代码仓库
GitHub 星标数
269
首次出现
2026 年 1 月 23 日
安全审计
安装于
opencode270
github-copilot266
cursor266
codex264
gemini-cli250
claude-code236
Quickly determine if data is fresh enough to use.
For each table to check:
Look for columns that indicate when data was loaded or updated:
_loaded_at, _updated_at, _created_at (common ETL patterns)updated_at, created_at, modified_at (application timestamps)load_date, etl_timestamp, ingestion_timedate, event_date, transaction_date (business dates)Query INFORMATION_SCHEMA.COLUMNS if you need to see column names.
SELECT
MAX(<timestamp_column>) as last_update,
CURRENT_TIMESTAMP() as current_time,
TIMESTAMPDIFF('hour', MAX(<timestamp_column>), CURRENT_TIMESTAMP()) as hours_ago,
TIMESTAMPDIFF('minute', MAX(<timestamp_column>), CURRENT_TIMESTAMP()) as minutes_ago
FROM <table>
For tables with regular updates, check recent activity:
SELECT
DATE_TRUNC('day', <timestamp_column>) as day,
COUNT(*) as row_count
FROM <table>
WHERE <timestamp_column> >= DATEADD('day', -7, CURRENT_DATE())
GROUP BY 1
ORDER BY 1 DESC
Report status using this scale:
| Status | Age | Meaning |
|---|---|---|
| Fresh | < 4 hours | Data is current |
| Stale | 4-24 hours | May be outdated, check if expected |
| Very Stale | > 24 hours | Likely a problem unless batch job |
| Unknown | No timestamp | Can't determine freshness |
Check Airflow for the source pipeline:
Find the DAG : Which DAG populates this table? Use af dags list and look for matching names.
Check DAG status :
af dags get <dag_id>af dags statsDiagnose if needed : If the DAG failed, use the debugging-dags skill to investigate.
If you're running on Astro, you can also:
Provide a clear, scannable report:
FRESHNESS REPORT
================
TABLE: database.schema.table_name
Last Update: 2024-01-15 14:32:00 UTC
Age: 2 hours 15 minutes
Status: Fresh
TABLE: database.schema.other_table
Last Update: 2024-01-14 03:00:00 UTC
Age: 37 hours
Status: Very Stale
Source DAG: daily_etl_pipeline (FAILED)
Action: Investigate with **debugging-dags** skill
If user just wants a yes/no answer:
Weekly Installs
374
Repository
GitHub Stars
269
First Seen
Jan 23, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode270
github-copilot266
cursor266
codex264
gemini-cli250
claude-code236
Azure 升级评估与自动化工具 - 轻松迁移 Functions 计划、托管层级和 SKU
68,100 周安装