カテゴリ:

Information Schemaテーブル関数

REPLICATION_GROUP_DANGLING_REFERENCES

複製グループまたはフェールオーバーグループで参照されているオブジェクトが、実際にはセカンダリアカウントに複製されていない場合を検出します。Snowflakeでは、これらのタイプの参照を ダングリングリファレンス と呼びます。

この関数を使用して複製構成のダングリングリファレンスを検出した後は、参照されるすべてのオブジェクトがすべて含まれるように複製グループまたはフェールオーバーグループを再配置できます。または、SQL オブジェクト階層を変更することもできます。参照されるオブジェクトは、複製グループやフェールオーバーグループに含まれるデータベースやスキーマなどのコンテナの一部です。

複数の複製グループまたはフェールオーバーグループを使用する場合は、ダングリングリファレンスを解決するために必要なオブジェクトが、それらを参照するオブジェクトの前にセカンダリアカウントに複製されるように、更新操作の順序も指定できます。

重要

TRUE の値 IS_BLOCKING_REFRESH 列に特別な注意を払ってください。これらの参照を解決するまで、リフレッシュとフェールオーバーの両方の操作は続行できません。

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

複製グループ間での複製と参照

構文

REPLICATION_GROUP_DANGLING_REFERENCES( '<replication_or_failover_group_name>' )
Copy

引数

'replication_or_failover_group_name'

ダングリングリファレンスをチェックする複製グループまたはフェールオーバーグループの名前。名前全体を一重引用符で囲む必要があります。

出力

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

列名

データ型

説明

REFERENCED_ENTITY_DOMAIN

VARCHAR

ダングリングリファレンスによって参照されるエンティティのドメイン。

REFERENCED_ENTITY_NAME

VARCHAR

ダングリングリファレンスによって参照されるエンティティの完全修飾名。

REFERENCING_ENTITY_DOMAIN

VARCHAR

ダングリングリファレンスを持つ複製グループ内のエンティティのドメイン。 例: Table

REFERENCING_ENTITY_NAME

VARCHAR

ダングリングリファレンスを持つ複製グループ内のエンティティの完全修飾名。

REFERENCING_ENTITY_GROUPS

VARCHAR

参照しているエンティティを含むすべての複製グループのコンマ区切りリスト。 いずれのエンティティを含むグループがない場合は NULL。

IS_BLOCKING_REFRESH

BOOLEAN

TRUE の場合、この参照が解決されるまで、複製の更新とフェールオーバーは失敗します。FALSE の場合、ダングリングリファレンス情報が切れていても、Snowflakeはこれらの操作を実行できます。

使用上の注意

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

  • この関数は、組織内のどのアカウントからでも実行できます。指定する複製グループまたはフェールオーバーグループは、関数を呼び出すアカウントに存在している必要があります。つまり、関数を呼び出すクラウドサービスプロバイダーのリージョンで使用するグループ名を指定します。

    • プライマリアカウントの複製グループまたはフェールオーバーグループを使用して 関数が呼び出された場合、参照されるオブジェクトが すべて のセカンダリアカウントに複製されていないと、ダングリングリファレンスを報告します。

    • セカンダリアカウントの複製グループまたはフェールオーバーグループを使用して 関数が呼び出された場合、参照されるオブジェクトが関数が呼び出された特定のセカンダリに複製されていないと、ダングリングリファレンスを報告します。

  • 複製グループおよびフェールオーバーグループにおけるダングリングリファレンスの処理方法については、複製グループ間での複製と参照 をご参照ください。

フェールオーバーグループ myfg のダングリングリファレンスを確認するには、プライマリアカウントまたはセカンダリアカウントから次の ステートメントを実行します。

SELECT *
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_DANGLING_REFERENCES('myfg')
  );
Copy