カテゴリ:

データメトリック関数

FRESHNESS (システムデータメトリック関数)

テーブルが最後に変更されてからの経過時間を秒単位で返します。

列の引数が指定される場合、期間は、関数の現在の実行とタイムスタンプ列の最大値の比較によって計算されます。関数を実行するスケジュールされた時間が実際に実行された時間と異なる場合は、スケジュールされた時間が比較に使用されます。

列が指定されていない場合、期間は、関数の現在の実行と、テーブルに対する DML コマンド の最後の動作との比較によって計算されます。関数を実行するスケジュールされた時間が実際に実行された時間と異なる場合は、スケジュールされた時間が比較に使用されます。

This topic provides the syntax for calling the function directly. To learn how to associate the function with a table or view so it runs at regular intervals, see DMF と関連付けて、データ品質チェックを自動化します。.

構文

SNOWFLAKE.CORE.FRESHNESS( [ <query> ] )
Copy

引数

query

指定された場合、クエリは単一のタイムスタンプ列を投影する必要があります。

If you don't want to specify a column, you must associate the function with a table rather than call it directly.

許可されるデータ型

query によって投影された列には、以下のデータ型のいずれかが必要です。

  • DATE

  • TIMESTAMP_LTZ

  • TIMESTAMP_TZ

戻り値

この関数は、 NUMBER データ型のスカラー値を返します。

使用上の注意

  • この関数をビューまたは外部テーブルに関連付ける場合は、列引数を指定する必要があります。

  • This function can be called directly only if you specify a query that projects a timestamp column. If you want to associate the function with a table or view so it runs at regular intervals with or without a column argument, see DMF と関連付けて、データ品質チェックを自動化します。.

関数をテーブル t1 に関連付けて、テーブルに対する最後の DML 操作からの経過時間を判断します。

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.FRESHNESS on ();
Copy

関数を直接呼び出して TIMESTAMP 列を測定し、テーブルのデータ鮮度(300秒または5分)を判断します。

SELECT SNOWFLAKE.CORE.FRESHNESS(
  SELECT
    timestamp
  FROM hr.tables.empl_info
) < 300;
Copy
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True                                                                |
+---------------------------------------------------------------------+