checking-freshness

Verifikasi kesegaran data dengan memeriksa timestamp tabel dan pola pembaruan terhadap skala ketidaksegaran. Mengidentifikasi kolom timestamp menggunakan pola penamaan ETL umum (_loaded_at, _updated_at, created_at, dll.) dan menanyakan nilai maksimumnya untuk menentukan usia. Mengklasifikasikan data ke dalam empat status kesegaran: Segar (< 4 jam), Agak Basi (4–24 jam), Sangat Basi (> 24 jam), atau Tidak Diketahui (tidak ada timestamp ditemukan). Menyediakan template SQL untuk memeriksa waktu pembaruan terakhir dan tren jumlah baris selama beberapa hari terakhir hingga...

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

Lebih banyak skill dari 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
Ekstraktor OpenLineage kustom untuk operator Airflow yang tidak didukung dan skenario lineage yang kompleks. Dua pendekatan: tambahkan metode OpenLineage langsung ke operator yang Anda miliki (direkomendasikan), atau buat ekstraktor kustom untuk operator pihak ketiga yang tidak dapat Anda modifikasi. Ekstraktor mencegat eksekusi operator di tiga titik: sebelum eksekusi untuk lineage statis, setelah sukses untuk output yang ditentukan saat runtime, dan opsional setelah kegagalan untuk lineage parsial. Daftarkan ekstraktor melalui airflow.cfg atau lingkungan...
debugging-dags
astronomer
Analisis akar penyebab sistematis dan perbaikan untuk DAG Airflow yang gagal dengan alur investigasi terstruktur. Memandu melalui proses diagnosis empat langkah: mengidentifikasi kegagalan, mengekstrak detail kesalahan, mengumpulkan informasi kontekstual, dan memberikan langkah perbaikan yang dapat ditindaklanjuti. Mengkategorikan kegagalan ke dalam empat jenis (data, kode, infrastruktur, ketergantungan) untuk memfokuskan investigasi dan menyarankan perbaikan yang sesuai. Menyediakan perintah CLI siap pakai untuk pengambilan log, perbandingan proses, pembersihan tugas, dan DAG...
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
Menyebarkan DAG dan proyek Airflow. Gunakan saat pengguna ingin menyebarkan kode, mendorong DAG, menyiapkan CI/CD, menyebarkan ke produksi, atau bertanya tentang strategi penyebaran…
deploying-go-sdk-bundles
astronomer
Membangun, mengemas, dan menyebarkan bundel Airflow Go SDK yang telah dikompilasi agar ExecutableCoordinator dapat menjalankannya. Gunakan ketika pengguna ingin mengompilasi bundel tugas Go, meminta…
testing-dags
astronomer
Siklus uji-debug-perbaikan iteratif untuk DAG Airflow dengan diagnosis kegagalan yang komprehensif. Mulai dengan af runs trigger-wait <dag_id> untuk menjalankan DAG dan menunggu hingga selesai; tidak diperlukan pemeriksaan awal. Jika gagal, gunakan af runs diagnose untuk ringkasan kegagalan yang komprehensif dan af tasks logs untuk memeriksa detail kesalahan dari tugas tertentu. Mendukung konfigurasi kustom, batas waktu, dan percobaan ulang; menangani skenario sukses, gagal, dan batas waktu dengan interpretasi respons yang jelas. Validasi cepat tersedia...
tracing-downstream-lineage
astronomer
Lacak lineage data hilir untuk menilai dampak perubahan sebelum memodifikasi tabel atau DAG. Mengidentifikasi konsumen langsung dari tabel atau DAG target melalui pencarian kode sumber, dependensi tampilan, dan koneksi alat BI. Membangun pohon dependensi lengkap yang memetakan semua dampak hilir, dari tabel hingga dasbor hingga model ML. Mengkategorikan dependensi berdasarkan tingkat kepentingan (kritis, tinggi, sedang, rendah) untuk memprioritaskan komunikasi pemangku kepentingan dan pengujian. Menghasilkan laporan dampak dengan penilaian risiko, yang terpengaruh...