カテゴリ:

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

SYSTEM$DATABASE_REFRESH_PROGRESS , SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB

SYSTEM$DATABASE_REFRESH_PROGRESS 族の関数を使用して、さまざまなディメンションに沿ってデータベース更新のステータスをクエリできます。

  • SYSTEM$DATABASE_REFRESH_PROGRESS は、セカンダリデータベースの現在の更新ステータスを名前で示す JSON オブジェクトを返します。

  • SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB は、更新クエリによるグローバルセカンダリデータベースの現在の更新ステータスを示す JSON オブジェクトを返します。

注釈

これらの関数は、過去14日以内のデータベース更新アクティビティを返します。

構文

SYSTEM$DATABASE_REFRESH_PROGRESS( '<secondary_db_name>' )

SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB( '<query_id>' )

引数

セカンダリデータベース名

セカンダリデータベースの名前。セカンダリデータベースが現在のセッションのアクティブデータベースである場合、この引数はオプションです。

名前全体を一重引用符で囲む必要があります。

クエリID

データベース更新クエリのID 。クエリ ID は、ウェブインターフェイスの History History tab ページから取得できます。

出力

この関数は、 JSON オブジェクトで次の要素を返します。

列名

データ型

説明

phaseName

TEXT

これまでに完了した(または進行中の)複製フェーズの名前。フェーズのリストについては、使用上の注意をご参照ください。

resultName

TEXT

複製フェーズのステータス。

startTimeUTC

NUMBER

複製フェーズが開始された時刻。形式はエポック時間です。

endTimeUTC

NUMBER

フェーズが終了した時間(該当する場合)。形式はエポック時間です。

詳細

VARIANT

データ更新の合計バイト数と、フェーズでこれまでにコピーされたバイト数を示す個別の JSON オブジェクト。更新ステートメントが以前に失敗したかキャンセルされて再度開始された場合、オブジェクトは2回目の試行でスキップされたバイト数を示します。 details オブジェクトは、 Copying Primary Data および Copying Replica Data フェーズ情報に含まれています。

使用上の注意

  • アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)の結果のみを返します。

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

    1. SECONDARY_UPLOADING_INVENTORY

    2. PRIMARY_UPLOADING_METADATA

    3. PRIMARY_UPLOADING_DATA

    4. SECONDARY_DOWNLOADING_METADATA

    5. SECONDARY_DOWNLOADING_DATA

    6. COMPLETED / FAILED / CANCELED

次の例では、指定されたセカンダリデータベースの現在の更新状態を取得します。結果は JSON オブジェクトで返されます。

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS('mydb');

次の例では、前の例と同じ詳細を取得しますが、結果はリレーショナル列に分割され、タイムスタンプは TIMESTAMP_LTZ としてキャストされます。

SELECT value:phaseName::string AS "Phase",
  value:resultName::string AS "Result",
  TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
  TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
  value:details AS "details"
  FROM table(flatten(INPUT=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS('mydb1'))));

次の例では、指定されたデータベース更新クエリのステータスを取得します。結果は JSON オブジェクトで返されます。

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b');

次の例では、前の例と同じ詳細を取得しますが、結果はリレーショナル列に分割され、タイムスタンプは TIMESTAMP_LTZ としてキャストされます。

SELECT value:phaseName::string AS "Phase",
  value:resultName::string AS "Result",
  TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
  TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
  value:details AS "details"
  FROM TABLE(FLATTEN(input=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b'))));