mcpField
C
checking-freshness

checking-freshness

github.com/astronomerデータ・データベース4571.0k 回インストール3 週間前に更新
リポジトリ

checking-freshness について

データ利用者向けに、テーブルのタイムスタンプと最近の行数から、データが最新か、古いか、判定不能かを確認するスキルです。古い場合のAirflow確認手順も示します。

主な機能

  1. 01候補となるタイムスタンプ列の特定
  2. 02最終更新からの経過時間を計算
  3. 03最近の行数を確認
  4. 04データ鮮度の状態を判定
  5. 05古い場合にAirflowの実行を確認

活用シーン

  1. 01会議で使う前にテーブルの鮮度を確認
  2. 02最近の日次ロードの実行を確認
  3. 03パイプライン状況から古いデータを調査

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/checking-freshnessを入力して読み込まれたか確認します。

詳細

データの鮮度チェック

データを使うのに十分新しいかどうかをすばやく確認します。

鮮度チェックの手順

チェックする各テーブルについて、次の手順を実行します。

1. タイムスタンプ列を見つける

データが読み込まれた時刻や更新された時刻を示す列を探します。

  • _loaded_at、_updated_at、_created_at(一般的な ETL パターン)
  • updated_at、created_at、modified_at(アプリケーションのタイムスタンプ)
  • load_date、etl_timestamp、ingestion_time
  • date、event_date、transaction_date(業務日付)

列名を確認する必要がある場合は、INFORMATION_SCHEMA.COLUMNS にクエリを実行します。

2. 最終更新時刻をクエリする
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. 時間別に行数を確認する

定期的に更新されるテーブルでは、最近の更新状況を確認します。

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 hoursデータは最新です
古い4-24 hours古くなっている可能性があります。想定どおりか確認してください
非常に古い> 24 hoursバッチジョブでない限り、問題がある可能性が高いです
不明タイムスタンプなし鮮度を判断できません

データが古い場合

ソースパイプラインについて Airflow を確認します。

  1. DAG を見つける:このテーブルにデータを取り込む DAG はどれですか?af dags list を使い、一致する名前を探します。

  2. DAG のステータスを確認する:

    • DAG は一時停止されていますか?af dags get <dag_id> を使います
    • 最後の実行は失敗しましたか?af dags stats を使います
    • 現在実行中の実行はありますか?
  3. 必要に応じて診断する:DAG が失敗している場合は、debugging-dags スキルを使って調査します。

Astro の場合

Astro で実行している場合は、次の方法も利用できます。

  • Astro UI の DAG 履歴:デプロイの DAG 実行履歴で、最近の実行とその結果を時系列で確認します
  • SLA 監視のための Astro アラート:DAG が想定された完了時間を過ぎたときに通知されるようアラートを設定し、ユーザーから報告される前にデータの古さを検知します
OSS Airflow の場合
  • Airflow UI:DAG ビューとタスクログを使って、最後に成功した実行と SLA の未達を確認します

出力形式

明確でひと目で確認できるレポートを提示します。

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

簡単なチェック

ユーザーが「はい」または「いいえ」の回答だけを求めている場合:

  • 「X のデータは新しいですか?」→ チェックして、ステータスと一文で回答します
  • 「午前 9 時の会議で X を使えますか?」→ チェックして、状況を添えて明確に「はい」または「いいえ」で回答します

コメント