カテゴリ:

システム関数 (システム情報)

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING

リストのコンシューマーがリストのデータを別のリージョンに再共有すると、Snowflakeは非表示の動的テーブルを作成し、ターゲットリージョンにおけるリストの自動フルフィルメントを有効にします。このシステム関数は、クロスリージョンの再共有のためにインポートされたデータを実体化するために、Snowflakeが*送信*ビューの下に作成する非表示の動的テーブルに関する情報を返します。

この関数は次のように使用できます:

  • 特定の送信ビューについて、どのインポートされたオブジェクトがバッキング動的テーブルを持っているかを識別します。

  • これら動的テーブルの最新のリフレッシュ時間を検査します(デバッグまたはコスト/健全性分析用)。

こちらもご参照ください。

リストの再共有

構文

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING( '<view_name>' )

引数

'view_name'

インポートされたデータが再共有のために非表示の動的テーブルに自動的に実体化されている、リストまたは共有にアタッチされた送信ビューの名前。

完全修飾ビュー名を渡すことができます。例:

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
  'RESHARER_DB.PUBLIC.SHARED_VIEW'
);

戻り値

オブジェクトの配列を含むJSON文字列を返します。各オブジェクトは、再共有のために指定されたビューの下に作成された非表示の動的テーブルを表します。

フィールド

説明

dtName

STRING

送信ビューの下にネストされた非表示の動的テーブルの完全修飾名(例:_<id>_IMPORTED_DB.SCHEMA.TABLE_DT_FOR_RESHARING)。

dtSourceObject

STRING

再共有のためにこの動的テーブルに実体化されている、インポートされたオブジェクト(例:IMPORTED_DB.SCHEMA.TABLE)の完全修飾名。これは、ビュー定義で参照される元のインポートされたエンティティに対応します。

dtRefreshStartTimeMillis

NUMBER

この動的テーブルの直近のリフレッシュが開始された時のエポックタイムスタンプ(ミリ秒単位)。更新が行われなかった場合はNull。``TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::number, 3)``で変換します。

dtRefreshEndTimeMillis

NUMBER

この動的テーブルの最新のリフレッシュが完了したときのエポックタイムスタンプ(ミリ秒単位)。更新が行われなかった場合はNull。``TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::number, 3)``で変換します。

status

STRING

最新の更新のステータス。更新が行われなかった場合はNull。可能な値:SCHEDULEDEXECUTINGSUCCEEDEDFAILEDCANCELLEDUPSTREAM_FAILED。各ステータスの説明については、:doc:`DYNAMIC_TABLE_REFRESH_HISTORY </sql-reference/functions/dynamic_table_refresh_history>`出力を参照してください。

使用上の注意

  • 以下のシナリオでは、動的テーブルは作成されず、関数は行を返しません。

    • ビューはインポートされたデータベースを参照しません。

    • ビューは、再共有の対象とならないインポートされたデータを使用します。

    • ビューはまだリストの自動フルフィルメントによって処理されていません。

  • この関数は、可観測性とデバッグを目的としています。

次の例では、再共有ビュー用に作成された動的テーブルを取得します。

SELECT * FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

適切なタイムスタンプを持つ読み取り可能なテーブルを取得するには:

SELECT
  value:dtName::STRING AS dt_name,
  value:dtSourceObject::STRING AS dt_source_object,
  TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::NUMBER, 3) AS dt_refresh_start_time,
  TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::NUMBER, 3) AS dt_refresh_end_time,
  value:status::STRING AS status
FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

サンプル出力:

+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| DT_NAME                                                  | DT_SOURCE_OBJECT           | DT_REFRESH_START_TIME         | DT_REFRESH_END_TIME           | STATUS            |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| _12345_IMPORTED_DB.PUBLIC.TABLE_A_DT_FOR_RESHARING       | IMPORTED_DB.PUBLIC.TABLE_A | 2026-03-19 10:00:00.000 -0700 | 2026-03-19 10:00:05.000 -0700 | SUCCEEDED |
| _12345_IMPORTED_DB.PUBLIC.VIEW_B_DT_FOR_RESHARING        | IMPORTED_DB.PUBLIC.VIEW_B  | 2026-03-19 10:00:01.000 -0700 | 2026-03-19 10:00:04.000 -0700 | SUCCEEDED |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+