checking-freshness

Vérification rapide de la fraîcheur des données. À utiliser quand l'utilisateur demande si les données sont à jour, quand une table a été mise à jour pour la dernière fois, si les données sont obsolètes, ou s'il a besoin de vérifier la fraîcheur des données avant de les utiliser.

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

Vérification de la Fraîcheur des Données

Déterminez rapidement si les données sont suffisamment à jour pour être utilisées.

Processus de Vérification de la Fraîcheur

Pour chaque table à vérifier :

1. Trouver la Colonne Timestamp

Recherchez les colonnes qui indiquent quand les données ont été chargées ou mises à jour :

  • _loaded_at, _updated_at, _created_at (patterns ETL courants)
  • updated_at, created_at, modified_at (timestamps applicatifs)
  • load_date, etl_timestamp, ingestion_time
  • date, event_date, transaction_date (dates métier)

Interrogez INFORMATION_SCHEMA.COLUMNS si vous avez besoin de voir les noms de colonnes.

2. Interroger l'Heure de Dernière Mise à Jour

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. Vérifier les Comptages de Lignes par Période

Pour les tables avec mises à jour régulières, vérifiez l'activité récente :

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

Statut de Fraîcheur

Rapportez le statut en utilisant cette échelle :

Statut Âge Signification
Fresh < 4 heures Les données sont à jour
Stale 4-24 heures Peut être obsolète, vérifiez si prévu
Very Stale > 24 heures Problème probable à moins que job batch
Unknown Pas de timestamp Impossible de déterminer la fraîcheur

Si les Données sont Obsolètes

Vérifiez Airflow pour le pipeline source :

  1. Trouver le DAG : Quel DAG remplit cette table ? Utilisez af dags list et cherchez les noms correspondants.

  2. Vérifier le statut du DAG :

    • Le DAG est-il en pause ? Utilisez af dags get <dag_id>
    • La dernière exécution a-t-elle échoué ? Utilisez af dags stats
    • Une exécution est-elle en cours ?
  3. Diagnostiquer si nécessaire : Si le DAG a échoué, utilisez la skill debugging-dags pour enquêter.

Sur Astro

Si vous utilisez Astro, vous pouvez aussi :

  • Historique des DAGs dans l'interface Astro : Vérifiez l'historique des exécutions de DAGs du déploiement pour une chronologie visuelle des exécutions récentes et de leurs résultats
  • Alertes Astro pour le monitoring SLA : Configurez des alertes pour être notifié quand les DAGs dépassent leurs fenêtres d'exécution attendues, détectant l'obsolescence avant que les utilisateurs la signalent

Sur OSS Airflow

  • Interface Airflow : Utilisez la vue des DAGs et les logs des tâches pour vérifier les dernières exécutions réussies et les manquements aux SLA

Format de Sortie

Fournissez un rapport clair et facile à parcourir :

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

Vérifications Rapides

Si l'utilisateur veut juste une réponse oui/non :

  • "X est-il à jour ?" -> Vérifiez et répondez avec le statut + une ligne
  • "Puis-je utiliser X pour ma réunion de 9h ?" -> Vérifiez et donnez un clair oui/non avec contexte

Skills similaires