カテゴリ:

Information Schemaテーブル関数

NOTIFICATION_HISTORY

このテーブル関数を使用して、Snowflakeを介して送信された通知の履歴をクエリできます。これらの通知には次が含まれます。

返される行は以下の通りです。

  • 処理中のリクエスト。

  • 通知送信の失敗。

  • 正常に送信された通知。

STATUS 列 は、各行が何を表しているかを示しています。 関数からの出力例 をご参照ください。

構文

NOTIFICATION_HISTORY(
  [ START_TIME => <constant_expr> ]
  [, END_TIME => <constant_expr> ]
  [, INTEGRATION_NAME => '<string>' ]
  [, RESULT_LIMIT => <integer> ] )
Copy

引数

すべての引数はオプションです。

START_TIME=> constant_expr. END_TIME=> constant_expr

通知が送信される時間範囲(TIMESTAMP_LTZ 形式)。

  • START_TIME が指定されていない場合、範囲は END_TIME の24時間前に開始されます。

  • END_TIME が指定されていない場合、デフォルトは CURRENT_TIMESTAMP です。

最大時間範囲は14日間です。

INTEGRATION_NAME => 'string'

通知に関連付けられている統合の完全修飾名。この引数を省略すると、関数はすべての通知を返します。

デフォルト: 空の文字列。

RESULT_LIMIT => integer

関数によって返される行の最大数を指定する数です。

範囲: 110000

デフォルト: 100

出力

この関数は、次の列を返します。

列名

データ型

説明

CREATED

TIMESTAMP_LTZ

通知が作成されたときのタイムスタンプ。

PROCESSED

TIMESTAMP_LTZ

通知の送信を最後に試みたときのタイムスタンプ。

MESSAGE_SOURCE

VARCHAR

通知を生成したオブジェクトまたは機能の型。有効な値:

INTEGRATION_NAME

VARCHAR

この通知に使用される統合 の名前。

STATUS

VARCHAR

通知のステータス。有効な値:

  • QUEUED: 通知送信リクエストは処理中です。

  • SUCCESS: 通知は正常に送信されました。

  • RETRIABLE_FAILURE: 通知送信は失敗し、システムは再度通知の送信を試みます。

  • FAILURE: 通知を送信するための複数の試みが失敗し、これ以上通知を送信しようとはしません。

ERROR_MESSAGE

VARCHAR

通知が失敗した場合は、通知が失敗した理由についての詳細を提供します。

注釈

ウェブフック通知の場合、この列は HTTP レスポンスの本体を含み、機密データを含んでいる可能性があります。このデータを使用する前に、必ずデータから機密データを取り除いてください。

ID

VARCHAR

通知送信リクエストの一意の ID。

Snowflakeが通知の送信に失敗し、再度通知を送信しようとした場合、この関数は各試行の行を返します。各試行の行の ID 列の値は同じですが、 ATTEMPT 列の値は異なります。

ATTEMPT

INTEGER

通知の送信を試みた回数。

MESSAGE_SOURCE_INFO

OBJECT

通知元に関する情報を含むオブジェクト。このオブジェクトのフィールドは、ソースのタイプによって異なります。

  • 予算に関する通知の場合、このオブジェクトには以下のフィールドが含まれます。

    • budget_id: 予算の識別子。

    • budget_name: 予算の名前。

  • タスクのエラー通知の場合、オブジェクトには以下のフィールドが含まれます。

    • name: タスクの名前。

    • graph_run_group_id: グラフ実行の識別子。

    • attempt_number: このタスクの実行を試みた回数を表す整数。

  • Snowpipeのエラー通知の場合、オブジェクトにはパイプ名を指定する pipe_name フィールドが含まれます。

  • SYSTEM$SEND_SNOWFLAKE_NOTIFICATION または SYSTEM$SEND_EMAIL ストアドプロシージャを呼び出して送信される通知の場合、オブジェクトにはストアドプロシージャを呼び出したステートメントの ID を指定する query_id フィールドが含まれます。

使用上の注意

  • ACCOUNTADMIN ロール、統合の所有者(つまり、統合に対する OWNERSHIP 権限を持つロール)、または統合に対する USAGE 権限を持つロールにのみ結果を返します。

  • Information Schemaテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。

以下のセクションには、関数の呼び出しの例と関数からの出力の例が含まれています。

関数の呼び出し例

以下の例は、この関数を呼び出し方を説明しています。

最新の通知の取得

過去24時間に作成された最新の通知を取得します。

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

時刻と統合名による通知の取得

過去1時間に作成され、 my_integration という名前の統合を使用して送信された最新の通知を取得します。

SELECT * FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY(
  START_TIME=>DATEADD('hour',-1,CURRENT_TIMESTAMP()),
  END_TIME=>CURRENT_TIMESTAMP(),
  RESULT_LIMIT=>100,
  INTEGRATION_NAME=>'my_integration'));
Copy

関数からの出力例

以下の例は、異なる状態の通知要求に対してこの関数が返す出力について説明しています。

2回の試行が失敗し、3回目の試行が進行中の場合の出力例

この例では、出力中の列のサブセットを選択しています。

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

出力には、1つの通知を送信しようとした行が含まれます。出力では:

  • ID 列は、送信されている通知を特定します。

  • 通知送信の最初の2回の試みは失敗しましたが、システムは再度通知送信を試みることができます(STATUS 列の値 RETRIABLE_FAILURE で示されます)。

  • STATUS 列の値 QUEUED が示すように、3回目の試みが処理中です。

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   ID              |   ATTEMPT   |   CREATED                         |   PROCESSED                       |   STATUS              |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   10ae695e-93c3   |   3         |   2023-12-05 15:10:15.194 -0800   |   NULL                            |   QUEUED              |
|   10ae695e-93c3   |   2         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:11:21.443 -0800   |   RETRIABLE_FAILURE   |
|   10ae695e-93c3   |   1         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:10:21.443 -0800   |   RETRIABLE_FAILURE   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+

2回の試行が失敗し、3回目の試行が成功した場合の出力例

この例では、出力中の列のサブセットを選択しています。

SELECT id, attempt, created, processed, status
  FROM TABLE(INFORMATION_SCHEMA.NOTIFICATION_HISTORY());
Copy

出力には、1つの通知を送信しようとした行が含まれます。出力では:

  • ID 列は、送信されている通知を特定します。

  • 通知送信の最初の2回の試みは失敗しましたが、システムは再度通知送信を試みることができます(STATUS 列の値 RETRIABLE_FAILURE で示されます)。

  • STATUS 列の値 SUCCESS で示されているように、3回目の試みは成功しました。

+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   ID              |   ATTEMPT   |   CREATED                         |   PROCESSED                       |   STATUS              |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+
|   10ae695e-93c3   |   3         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:12:21.443 -0800   |   SUCCESS             |
|   10ae695e-93c3   |   2         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:11:21.443 -0800   |   RETRIABLE_FAILURE   |
|   10ae695e-93c3   |   1         |   2023-12-05 15:10:15.194 -0800   |   2023-12-05 15:10:21.443 -0800   |   RETRIABLE_FAILURE   |
+-------------------+-------------+-----------------------------------+-----------------------------------+-----------------------+