カテゴリ:

データメトリック関数

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

DMF が実行される予定のタイムスタンプ、またはこの関数が手動で呼ばれた場合は現在のタイムスタンプを返します。

この DMF を使用して、データの鮮度を測定するカスタムメトリクスを定義したり、すでに存在する DMFs と連携して増分メトリクスを定義したりできます。

構文

SNOWFLAKE.CORE.DATA_METRIC_SCHEDULED_TIME()
Copy

引数

なし。

戻り値

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

アクセス制御の要件

システムDMFを使用するには、次のアクセス制御アプローチのいずれかを選択します。

  • テーブルに対する OWNERSHIP 権限を持つロールであるテーブル所有者ロールに、DATA_METRIC_USERデータベースロールを付与します。このデータベースロールは、SNOWFLAKE.CORE スキーマに対する USAGE 権限と、SNOWFLAKE.CORE スキーマにあるすべてのシステム DMFs に対する USAGE 権限を持ちます。

    さらに、このテーブルの権限をテーブル所有者ロールに付与します。

    権限

    オブジェクト

    メモ

    EXECUTE DATA METRIC FUNCTION

    アカウント

    この権限により、どのロールがサーバーレスのコンピューティングリソースにアクセスできるかを制御し、システムDMFを呼び出すことができます。

    USAGE

    データベース、スキーマ

    これらのオブジェクトは、 query で参照されているテーブルを含むデータベースとスキーマです。

  • テーブル内の権限をテーブル所有者ロールに付与し、これらの権限をテーブル所有者ロールに付与します。

  • ACCOUNTADMIN ロールを使用します。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

SELECT クエリでこの関数を手動で呼び出すと、 CURRENT_TIMESTAMP 関数と同じ値が返されます。

過去1時間におけるテーブルのデータ鮮度を判断するカスタムデータメトリック関数を作成します。

CREATE OR REPLACE DATA METRIC FUNCTION data_freshness_hour(
  ARG_T TABLE (ARG_C TIMESTAMP_LTZ))
  RETURNS NUMBER AS
  'SELECT TIMEDIFF(
     minute,
     MAX(ARG_C),
     SNOWFLAKE.CORE.DATA_METRIC_SCHEDULED_TIME())
   FROM ARG_T';
Copy

データメトリック関数を手動で呼び出します。

SELECT data_freshness_hour(SELECT last_updated FROM hr.tables.empl_info) < 60;
Copy

このステートメントは、過去1時間(60分)にテーブルの更新がなかった場合に True を返します。

このステートメントは、1時間よりも前にテーブルの更新があった場合に False を返します。