checking-freshness

Überprüft die Datenaktualität durch Abgleich von Tabellenzeitstempeln und Aktualisierungsmustern mit einer Veraltungsskala. Identifiziert Zeitstempelspalten anhand gängiger ETL-Benennungsmuster (_loaded_at, _updated_at, created_at usw.) und fragt deren Maximalwerte ab, um das Alter zu bestimmen. Klassifiziert Daten in vier Aktualitätsstatus: Frisch (< 4 Stunden), Veraltet (4–24 Stunden), Stark veraltet (> 24 Stunden) oder Unbekannt (kein Zeitstempel gefunden). Stellt SQL-Vorlagen zur Überprüfung der letzten Aktualisierungszeit und der Zeilenanzahltrends der letzten Tage bereit, um...

npx skills add https://github.com/astronomer/agents --skill checking-freshness

Data Freshness Check

Quickly determine if data is fresh enough to use.

Freshness Check Process

For each table to check:

1. Find the Timestamp Column

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_time
  • date, event_date, transaction_date (business dates)

Query INFORMATION_SCHEMA.COLUMNS if you need to see column names.

2. Query Last Update Time

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>

3. Check Row Counts by Time

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

Freshness Status

Report status using this scale:

StatusAgeMeaning
Fresh< 4 hoursData is current
Stale4-24 hoursMay be outdated, check if expected
Very Stale> 24 hoursLikely a problem unless batch job
UnknownNo timestampCan't determine freshness

If Data is Stale

Check Airflow for the source pipeline:

  1. Find the DAG: Which DAG populates this table? Use af dags list and look for matching names.

  2. Check DAG status:

    • Is the DAG paused? Use af dags get <dag_id>
    • Did the last run fail? Use af dags stats
    • Is a run currently in progress?
  3. Diagnose if needed: If the DAG failed, use the debugging-dags skill to investigate.

On Astro

If you're running on Astro, you can also:

  • DAG history in the Astro UI: Check the deployment's DAG run history for a visual timeline of recent runs and their outcomes
  • Astro alerts for SLA monitoring: Configure alerts to get notified when DAGs miss their expected completion windows, catching staleness before users report it

On OSS Airflow

  • Airflow UI: Use the DAGs view and task logs to verify last successful runs and SLA misses

Output Format

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

Quick Checks

If user just wants a yes/no answer:

  • "Is X fresh?" -> Check and respond with status + one line
  • "Can I use X for my 9am meeting?" -> Check and give clear yes/no with context

Mehr Skills von astronomer

airflow-state-store
astronomer
Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores (`task_state_store`, `asset_state_store`) and the…
creating-openlineage-extractors
astronomer
Benutzerdefinierte OpenLineage-Extraktoren für nicht unterstützte Airflow-Operatoren und komplexe Lineage-Szenarien. Zwei Ansätze: Fügen Sie OpenLineage-Methoden direkt zu Operatoren hinzu, die Sie besitzen (empfohlen), oder erstellen Sie benutzerdefinierte Extraktoren für Drittanbieter-Operatoren, die Sie nicht ändern können. Extraktoren greifen an drei Punkten in die Operatorausführung ein: vor der Ausführung für statisches Lineage, nach Erfolg für zur Laufzeit bestimmte Ausgaben und optional nach Fehlschlag für partielles Lineage. Registrieren Sie Extraktoren über airflow.cfg oder Umgebungsvariablen...
debugging-dags
astronomer
Systematische Ursachenanalyse und Behebung fehlgeschlagener Airflow-DAGs mit strukturierten Untersuchungsabläufen. Führt durch einen vierstufigen Diagnoseprozess: Fehler identifizieren, Fehlerdetails extrahieren, Kontextinformationen sammeln und umsetzbare Abhilfeschritte liefern. Kategorisiert Fehler in vier Typen (Daten, Code, Infrastruktur, Abhängigkeiten), um die Untersuchung zu fokussieren und geeignete Korrekturen vorzuschlagen. Stellt einsatzbereite CLI-Befehle für Logabruf, Ausführungsvergleich, Task-Löschung und DAG... bereit.
delegating-to-otto
astronomer
Drives Astronomer's Otto agent (`astro otto`) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Use when the user explicitly asks to "use…
deploying-airflow
astronomer
Airflow-DAGs und -Projekte bereitstellen. Verwenden, wenn der Benutzer Code bereitstellen, DAGs pushen, CI/CD einrichten, in die Produktion bereitstellen oder nach Bereitstellungsstrategien fragt…
deploying-go-sdk-bundles
astronomer
Erstellt, packt und stellt kompilierte Airflow Go SDK-Bundles bereit, damit der ExecutableCoordinator sie ausführen kann. Verwenden Sie dies, wenn der Benutzer ein Go-Task-Bundle kompilieren möchte, fragt…
testing-dags
astronomer
Iterative Test-Debug-Fix-Zyklen für Airflow-DAGs mit umfassender Fehlerdiagnose. Starten Sie mit af runs trigger-wait <dag_id>, um einen DAG auszuführen und auf dessen Abschluss zu warten; keine Pre-Flight-Checks erforderlich. Bei Fehlern verwenden Sie af runs diagnose für eine umfassende Fehlerzusammenfassung und af tasks logs, um Fehlerdetails von bestimmten Tasks zu überprüfen. Unterstützt benutzerdefinierte Konfiguration, Timeouts und Wiederholungsversuche; behandelt Erfolgs-, Fehler- und Timeout-Szenarien mit klarer Antwortinterpretation. Schnelle Validierung verfügbar...
tracing-downstream-lineage
astronomer
Verfolgen Sie die nachgelagerte Datenherkunft, um die Auswirkungen von Änderungen vor der Modifikation von Tabellen oder DAGs zu bewerten. Identifiziert direkte Konsumenten einer Ziel-Tabelle oder eines Ziel-DAGs durch Quellcode-Suche, View-Abhängigkeiten und BI-Tool-Verbindungen. Erstellt einen vollständigen Abhängigkeitsbaum, der alle nachgelagerten Auswirkungen abbildet – von Tabellen über Dashboards bis hin zu ML-Modellen. Kategorisiert Abhängigkeiten nach Kritikalität (kritisch, hoch, mittel, niedrig), um die Kommunikation mit Stakeholdern und Tests zu priorisieren. Generiert einen Auswirkungsbericht mit Risikobewertung, betroffenen...