カテゴリ:

Information Schemaテーブル関数

REPLICATION_GROUP_REFRESH_HISTORY, REPLICATION_GROUP_REFRESH_HISTORY_ALL

テーブル関数の REPLICATION_GROUP_REFRESH_HISTORY ファミリーを使用すると、1つのセカンダリ複製グループまたはフェールオーバーグループ、またはそのようなすべてのグループの複製履歴をクエリできます。

デフォルトでは(日付範囲の引数が指定されていない場合)、これらの関数は過去12時間のデータを返します。オプションの DATE_RANGE_START および DATE_RANGE_END 引数を使用して、14日の保持期間内のカスタム範囲をクエリできます。

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

REPLICATION_GROUP_REFRESH_HISTORY ビュー

構文

REPLICATION_GROUP_REFRESH_HISTORY(
      '<secondary_group_name>'
      [ , DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

REPLICATION_GROUP_REFRESH_HISTORY_ALL(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

引数

'secondary_group_name'

セカンダリグループの名前。名前全体を一重引用符で囲む必要があります。REPLICATION_GROUP_REFRESH_HISTORY には必須です。REPLICATION_GROUP_REFRESH_HISTORY_ALL では使用されません。

次の引数は、どちらの関数でもオプションです。

DATE_RANGE_START => constant_expr. DATE_RANGE_END => constant_expr

複製の更新履歴を返す日付/時刻の範囲。

  • 開始日も終了日も指定されていない場合、過去12時間がデフォルトです。

  • 開始日は指定されているが、終了日は指定されていない場合は、:doc:`/sql-reference/functions/current_date`の午前0時が範囲の終了として使用されます。

  • 終了日は指定されているが、開始日は指定されていない場合、範囲は:samp:`DATE_RANGE_END`の開始12時間前に開始します。

データは14日間保持されます。リクエストされた範囲が14日の保持期間を超えている場合、関数はエラーを返します。

出力

この関数は、次の列を返します。REPLICATION_GROUP_REFRESH_HISTORY_ALL には、結果セットの最初の2列として追加の列が含まれています。

列名

データ型

説明

GROUP_NAME

TEXT

結果セットのこの行に対応するセカンダリの複製またはフェールオーバーグループを指定します。REPLICATION_GROUP_REFRESH_HISTORY_ALL にのみ適用されます。

GROUP_TYPE

TEXT

結果セットのこの行に対応するグループがフェールオーバーグループであるか複製グループであるかを指定します。値は FAILOVER または REPLICATION のいずれかです。REPLICATION_GROUP_REFRESH_HISTORY_ALL にのみ適用されます。

PHASE_NAME

TEXT

複製操作の現在のフェーズ。フェーズのリストについては、 使用上の注意 をご参照ください。

START_TIME

TIMESTAMP_LTZ

複製操作が開始された時刻。

END_TIME

TIMESTAMP_LTZ

複製操作が終了した時刻(該当する場合)。進行中の場合は NULL

JOB_UUID

TEXT

更新ジョブのクエリ ID。

TOTAL_BYTES

VARIANT

更新されたデータベースに関する詳細情報を提供する JSON オブジェクト:

  • totalBytesToReplicate: 複製が予想される合計バイト数。

  • bytesUploaded: 実際にアップロードされたバイト数。

  • bytesDownloaded: 実際にダウンロードされたバイト数。

  • databases: 各メンバーデータベースの次のフィールドを含む JSON オブジェクトのリスト:

    • name: データベースの名前。

    • totalBytesToReplicate: データベースのために複製が予想される合計バイト数。

OBJECT_COUNT

VARIANT

更新されたオブジェクトに関する詳細情報を提供する JSON オブジェクト:

  • totalObjects: 複製またはフェールオーバーグループ内にあるオブジェクトの合計数。

  • completedObjects: 完了したオブジェクトの合計数。

  • objectTypes: 型ごとに次のフィールドを含む JSON オブジェクトのリスト:

    • objectType: オブジェクトの型(例: ユーザー、ロール、付与、ウェアハウス、スキーマ、テーブル、列など)。

    • totalObjects: 複製またはフェールオーバーグループ内にあるこの型のオブジェクトの合計数。

    • completedObjects: 完了したこの型のオブジェクトの合計数。

PRIMARY_SNAPSHOT_TIMESTAMP

TIMESTAMP_LTZ

プライマリスナップショットが作成されたときのタイムスタンプ。

ERROR

VARIANT

更新操作に成功した場合は NULL。更新操作に失敗した場合は、エラーに関する詳細情報を提供する JSON オブジェクトを返します。

  • errorCode: 失敗のエラーコード。

  • errorMessage: 失敗のエラーメッセージ。

使用上の注意

  • DATE_RANGE_START または DATE_RANGE_END 引数が指定されていない場合、関数は過去12時間のデータを返します。過去12時間を超えるデータを取得するには、日付範囲を明示的に指定します。データは最大14日間利用できます。

  • 複製またはフェールオーバーグループに対する権限を持つロールの行のみを返します。

  • 現在のアカウント内にあるセカンダリ複製またはフェールオーバーグループの行のみを返します。

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

  • 次は、処理される順序のフェーズのリストです。

    #

    フェーズ名

    説明

    1

    SECONDARY_SYNCHRONIZING_MEMBERSHIP

    セカンダリ複製グループまたはフェイルオーバーグループが、グループに含まれるオブジェクトに関する情報をプライマリグループから受け取り、そのメンバーシップメタデータを更新します。

    2

    SECONDARY_UPLOADING_INVENTORY

    セカンダリ複製またはフェイルオーバーグループが、ターゲットアカウント内のオブジェクトのインベントリを、プライマリグループに送信します。

    3

    PRIMARY_UPLOADING_METADATA

    プライマリ複製グループまたはフェイルオーバーグループが、ソースアカウントのメタデータのスナップショットを作成し、セカンダリグループに送信します。

    4

    PRIMARY_UPLOADING_DATA

    プライマリ複製グループまたはフェイルオーバーグループが、セカンダリグループがソースアカウントとターゲットアカウントのオブジェクト間の差分を調整するために使用するファイルをコピーします。

    5

    SECONDARY_DOWNLOADING_METADATA

    セカンダリ複製グループまたはフェイルオーバーグループが、プライマリから送信されたメタデータのスナップショットを適用します。メタデータの更新はアトミックに適用されるのではなく、時間をかけて適用されます。

    6

    SECONDARY_DOWNLOADING_DATA

    セカンダリ複製グループまたはフェイルオーバーグループが、プライマリグループから送信されたファイルをターゲットアカウントにコピーします。

    7

    COMPLETED / FAILED / CANCELED

    更新処理のステータス。

セカンダリグループ myfg の更新履歴を取得するには、以下のステートメントを実行します。

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY('myfg')
  );

すべてのフェールオーバーグループと複製グループの過去12時間(デフォルト)の更新履歴を取得するには、以下のステートメントを実行します。

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL()
  );

すべてのグループの過去7日間の更新履歴を取得するには:

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL(
          DATE_RANGE_START => DATEADD(D, -7, CURRENT_DATE),
          DATE_RANGE_END => CURRENT_DATE)
  );

セカンダリグループ myfg の特定の日付範囲の更新履歴を取得するには:

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY(
          'myfg',
          DATE_RANGE_START => '2025-04-01',
          DATE_RANGE_END => '2025-04-07')
  );