複製とフェールオーバーの監視

このトピックでは、アカウントの複製進行状況、履歴、コストを監視する方法に関する情報を提供します。

このトピックの内容:

Snowsightを使用した複製の監視

組織内の 複製グループおよびフェイルオーバーグループ の複製の進行状況とステータスをモニターするには、 Snowsight の Replication ページを使用します。

以下のようなリフレッシュ操作のステータスや詳細を表示できます。

  • 最新のリフレッシュ操作のステータス。

  • レプリカのラグタイム(最後のリフレッシュ操作からの時間)。

  • レプリカのラグタイムのグループ間分布。

  • スケジュールされた次回リフレッシュ操作の日時。

注釈

  • Snowsight には、ロールが MONITOR 、 OWNERSHIP 、または REPLICATE 権限を持つ複製グループとフェイルオーバーグループが一覧表示されます。

  • 操作の詳細をリフレッシュできるのは、 ACCOUNTADMIN ロールまたはグループ上の OWNERSHIP 権限を持つユーザーのみです。

  • リフレッシュ操作の詳細を表示するには、ソースまたはターゲットのアカウントにサインインしている必要があります。そうでない場合は、サインインするよう促されます。

    ソースアカウントとターゲットアカウントは、両方とも同じ接続タイプ(パブリックインターネット)を使用する必要があります。それ以外の場合、ターゲットアカウントへのサインインは失敗します。

各複製グループまたはフェイルオーバーグループの複製ステータスを表示するには、以下のステップを完了します。

  1. Snowsight にサインインし、 Admin » Accounts に移動します。

  2. ReplicationGroups の順に選択します。

Groups ページには、 リフレッシュ操作の詳細 が、あなたのロールに表示権限があるすべてのグループに対して表示されます。タイルを使って表示を絞り込むことができます。

  • たとえば、 Status タイルが失敗したリフレッシュ操作があることを示している場合、そのタイルを選択して失敗したグループを調査できます。

  • Longest Replication lag タイルのタイムラグは、最後のリフレッシュ操作からの時間を指します。これは、セカンダリ複製グループまたはフェイルオーバーグループがプライマリグループに 遅れる 時間の長さです。最も長いタイムラグは、最も古いセカンダリ複製グループが最後にリフレッシュされてからの時間の長さです。

    たとえば、 fg_1fg_2fg_3 の3つのフェイルオーバーグループがあり、それぞれ独立した複製スケジュールが10分、2時間、12時間である場合、最長タイムラグは12時間にもなります。ただし、 fg_3 が、ターゲットアカウントで最近リフレッシュされた場合は、タイラムラグが0にリセットされ、別のフェイルオーバーグループではタイムラグが長くなる可能性があります。

  • Group Lag Distribution タイルで個々のバーを選択すると、結果を個々のグループに絞り込むことができます。

検索フィールドやドロップダウンメニューを使用してグループを絞り込むこともできます。

  • 検索アイコン (検索) ボックスを使用して、複製グループまたはフェイルオーバーグループの名前で検索できます。

  • 複製グループまたはフェイルオーバーグループで結果をフィルタリングするには、 Type を選択します。

  • プライマリグループ (To を選択) またはセカンダリグループ (From を選択) でフィルタリングするには、 Replicating を選択します。

  • アカウントアイコン (アカウント) メニューを選択し、アカウント名で結果をフィルタリングします。

  • Status を選択して、結果をリフレッシュ操作のステータスでフィルタリングします。

    • Refresh Cancelled

    • Refresh Failed

    • Refresh In Progress

    • Refresh Successful

複製グループとフェイルオーバーグループに関する次の詳細を確認できます。

説明

Name

複製またはフェールオーバーグループの名前。

Is Replicating

グループがターゲットアカウント 複製されるか、ソースアカウント から 複製されるかを示します。

この列に 利用可能な宛先 が含まれている場合、セカンダリ複製グループまたはフェイルオーバーグループは存在しません。利用可能な宛先数は、プライマリグループが複製できるターゲットアカウントの数を示します。

Status

最新のリフレッシュ操作のステータスを表示します。

複製の詳細にアクセスするには、ソースまたはターゲットアカウントにサインインしている必要があります。サインインしていない場合は、 Sign in を選択して、セカンダリグループのリフレッシュ操作ステータスを表示します。

ソースアカウントとターゲットアカウントは、両方とも同じ接続タイプ(パブリックインターネット)を使用する必要があります。それ以外の場合、ターゲットアカウントへのサインインは失敗します。

Replication Lag

最後のリフレッシュ操作からの時間。これは、セカンダリ複製グループがプライマリ複製グループに「遅れる」時間の長さです。

Next Refresh

スケジュールされた次回リフレッシュ操作の日時。

複製グループまたはフェイルオーバーグループを選択すると、各リフレッシュ操作の詳細情報を表示できます。詳細については、 Snowsightの複製履歴のセクション をご参照ください。

リフレッシュ操作の進行状況のモニター

このセクションでは、Snowsightまたは SQL を使用して、特定の複製またはフェールオーバーグループの複製の進行状況を監視する方法について説明します。

Snowsightを使用した、リフレッシュ操作の進行状況の監視

Snowsight を使用して、実行中のリフレッシュ操作のステータスと、過去のリフレッシュ操作の詳細を表示できます。

  1. Snowsight にサインインし、 Admin » Accounts に移動します。

  2. Replication を選択してから、 Groups を選択します。

  3. 複製グループまたはフェイルオーバーグループの名前を選択します。

詳細表示の詳細については、 Snowsightの複製履歴のセクション を参照してください。

SQL を使用した、リフレッシュ操作の進行状況の監視

複製またはフェールオーバーグループの更新の進行状況をモニターするには、 REPLICATION_GROUP_REFRESH_PROGRESS, REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB テーブル関数(Snowflake Information Schema 内)をクエリします。

フェールオーバーグループ myfg に対する最新の更新操作の進行状況を表示します。

SELECT phase_name, start_time, end_time, progress, details
  FROM TABLE(INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_PROGRESS('myfg'));
Copy

複製履歴の表示

複製履歴は、 Snowsight または SQL を使用して表示できます。

注釈

ロールが MONITOR 、 OWNERSHIP 、または REPLICATE 権限を持つ複製グループおよびフェイルオーバーグループの複製履歴を表示できます。

Snowsightを使用した複製履歴の表示

特定の複製グループまたはフェイルオーバーグループの詳細ページで、各リフレッシュ操作の複製履歴と詳細を表示できます。

  1. Snowsight にサインインし、 Admin » Accounts に移動します。

  2. Replication を選択してから、 Groups を選択します。

  3. 複製グループまたはフェイルオーバーグループの名前を選択します。

その後、グループに関する以下の情報を確認できます。

  • グループタイプ (複製グループまたはフェイルオーバーグループ)。

  • 複製のスケジュール (たとえば10分ごと)。

  • 各複製操作の時間。

  • レプリカのタイムラグ (最後のリフレッシュ操作からの時間)。

  • スケジュールされた次回リフレッシュ操作の日時。

このページでは、ステータスや期間でデータを絞り込むことができます。

  • Status を選択して、結果をリフレッシュ操作のステータスでフィルタリングします。

    • Refresh Cancelled

    • Refresh Failed

    • Refresh In Progress

    • Refresh Successful

  • リフレッシュ操作の詳細を表示するには、 Duration を選択します。

    • Last hour

    • Last 24 hours

    • Last 7 days

    • All

    All を選択すると、過去14日間のリフレッシュ操作が表示されます。

各リフレッシュ操作の詳細には、以下の列が含まれます。

説明

Query ID

リフレッシュ操作のクエリ ID 。

Status

リフレッシュ操作のステータスを表示します。有効な値には、 SuccessfulFailedIn Progress が含まれます。

Ended

リフレッシュ処理が終了した日時。

Duration

リフレッシュ処理が完了するまでにかかった時間。

持続期間は、 複製フェーズ ごとに色分けされています。各色のセグメントの幅は、そのフェーズに費やされた時間の割合を示しています。

下の画像はイメージです。このグラフは、追加の詳細のために リフレッシュ操作 を選択したときに表示されます。

色分けされた複製フェーズと期間。

Transferred

複製されたバイト数。

Objects

複製されたオブジェクトの数。

行を選択すると、以下のような特定のリフレッシュ操作の追加の詳細が表示されます。

  • 各複製フェーズの期間。

  • エラーメッセージ (リフレッシュ操作に失敗した場合)。

  • 複製されたデータベースオブジェクトの種類と数のリスト。

  • 複製されたデータベースの数とデータベース名。

SQL を使用した複製履歴の表示

指定した日付範囲内の特定の複製またはフェールオーバーグループの複製履歴を表示するには、次のいずれかをクエリします。

Information Schema REPLICATION_GROUP_REFRESH_HISTORY テーブル関数をクエリして、過去7日間のフェールオーバーグループ myfg のアカウント複製履歴を表示します。

SELECT PHASE_NAME, START_TIME, END_TIME, TOTAL_BYTES, OBJECT_COUNT
  FROM TABLE(information_schema.replication_group_refresh_history('myfg'))
  WHERE START_TIME >= CURRENT_DATE() - INTERVAL '7 days';
Copy

Account Usage REPLICATION_GROUP_REFRESH_HISTORY ビューをクエリして、当月のアカウント複製履歴を表示します。

SELECT REPLICATION_GROUP_NAME, PHASE_NAME, START_TIME, END_TIME, TOTAL_BYTES, OBJECT_COUNT
  FROM snowflake.account_usage.replication_group_refresh_history
  WHERE START_TIME >= DATE_TRUNC('month', CURRENT_DATE());
Copy

複製コストをモニターする

複製のクレジット使用状況をモニターするには、次のいずれかをクエリします。

REPLICATION_GROUP_USAGE_HISTORY テーブル関数をクエリして、過去7日間にアカウントの複製に使用されたクレジットを表示します。

SELECT start_time, end_time, replication_group_name, credits_used, bytes_transferred
  FROM TABLE(information_schema.replication_group_usage_history(date_range_start=>DATEADD('day', -7, CURRENT_DATE())));
Copy

Account Usage REPLICATION_GROUP_USAGE_HISTORY ビューをクエリして、当月内にアカウント複製履歴のために、複製またはフェールオーバーグループによって使用されたクレジットを表示します。

SELECT start_time, 
  end_time, 
  replication_group_name, 
  credits_used, 
  bytes_transferred
FROM snowflake.account_usage.replication_group_usage_history
WHERE start_time >= DATE_TRUNC('month', CURRENT_DATE());
Copy

データベースの複製コストをモニターする

複製またはフェールオーバーグループに含まれる個別データベースの複製のコストは、データベースのコピーされたバイト数を取得し、それを使用されたクレジットに関連付けることによって計算できます。

アカウント使用状況ビューのクエリ

次の例では、過去30日間における複製グループ1つのデータベース複製のコストを計算します。

  1. REPLICATION_GROUP_REFRESH_HISTORY Account Usageビューをクエリして、データベースごとに複製されたバイト数の合計を計算します。

    たとえば、過去30日間に複製グループ myrg 内のデータベースで複製されたバイト数の合計を計算するには、次を実行します。

    SELECT SUM(value:totalBytesToReplicate) as sum_database_bytes
      FROM snowflake.account_usage.replication_group_refresh_history rh,
        LATERAL FLATTEN(input => rh.total_bytes:databases)
      WHERE rh.replication_group_name = 'MYRG' AND
            rh.start_time >= CURRENT_DATE() - INTERVAL '30 days';
    
    Copy

    データベースバイトの合計の出力に注意してください。

    +--------------------+
    | SUM_DATABASE_BYTES |
    |--------------------|
    |              22016 |
    +--------------------+
    
  2. REPLICATION_GROUP_USAGE_HISTORY Account Usageビューをクエリして、使用されたクレジット数の合計と、複製のために転送されたバイトの合計を計算します。

    たとえば、過去30日間に使用されたクレジット数の合計と、複製グループ myrg の複製のために転送されたバイトの合計を計算するには、次を実行します。

    SELECT SUM(credits_used) AS credits_used, SUM(bytes_transferred) AS bytes_transferred
      FROM snowflake.account_usage.replication_group_usage_history
      WHERE replication_group_name = 'MYRG' AND
            start_time >= CURRENT_DATE() - INTERVAL '30 days';
    
    Copy

    使用されたクレジットの合計と転送されたバイトの合計の出力に注意してください。

    +--------------+-------------------+
    | CREDITS_USED | BYTES_TRANSFERRED |
    |--------------+-------------------|
    |  1.357923604 |             22013 |
    +--------------+-------------------+
    
  3. データベースに転送されたバイトの値、使用されたクレジットの合計、および前の2つのステップから複製のために転送されたすべてのバイトの合計を使用して、データベースの複製コストを計算します。

    (<転送されたデータのバイト> / <転送されたバイト>) * <使用されたクレジット>

    例:

    (22016 / 22013) * 1.357923604 = 1.35810866)

情報スキーマテーブル関数のクエリ

過去14日以内の更新操作の場合は、関連するInformation Schemaテーブル関数をクエリします。

  1. REPLICATION_GROUP_REFRESH_HISTORY テーブル関数をクエリして、複製グループ myrg のデータベース複製用にコピーされたバイト数の合計を表示します。

    SELECT SUM(value:totalBytesToReplicate)
      FROM TABLE(information_schema.replication_group_refresh_history('myrg')) AS rh,
      LATERAL FLATTEN(input => total_bytes:databases)
      WHERE rh.phase_name = 'COMPLETED' AND
            rh.start_time >= CURRENT_DATE() - INTERVAL '14 days';
    
    Copy
  2. REPLICATION_GROUP_USAGE_HISTORY テーブル関数をクエリして、使用されたクレジット数の合計と、複製グループ myrg の複製のために転送されたバイトの合計を表示します。

    SELECT SUM(credits_used), SUM(bytes_transferred)
      FROM TABLE(information_schema.replication_group_usage_history(
        date_range_start => DATEADD('day', -14, CURRENT_DATE()),
        replication_group_name => 'myrg'));
    
    Copy