ALTER REPLICATION GROUP¶
既存の 複製グループ のプロパティを変更します。
ソースアカウントから、次のアクションを実行できます。
複製グループの名前を変更する。
複製が有効になっている指定されたオブジェクト型のリストをリセットする。
セカンダリ複製グループの自動更新の複製スケジュールを設定または更新する。
次の型のアカウントオブジェクトを複製グループに追加したり、複製グループから削除したりする。
データベース
共有
セキュリティの統合
API 統合
ストレージの統合
外部アクセス統合
特定の種類の通知統合(統合複製 をご参照ください)
複製が有効になっているターゲットアカウントを追加または削除する。
データベースまたは共有をある複製グループから別の複製グループに移動する。
ターゲットアカウントから、次のアクションを実行できます。
ソースアカウントからターゲットアカウントのオブジェクトを更新する。
スケジュールされた複製を一時停止する。
スケジュールされた複製を再開する。
構文¶
ソースアカウント
ALTER REPLICATION GROUP [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
[ OBJECT_TYPES = <object_type> [ , <object_type> , ... ] ]
[ ALLOWED_DATABASES = <db_name> [ , <db_name> , ... ] ]
[ ALLOWED_SHARES = <share_name> [ , <share_name> , ... ] ]
ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
OBJECT_TYPES = INTEGRATIONS [ , <object_type> , ... ]
ALLOWED_INTEGRATION_TYPES = <integration_type_name> [ , <integration_type_name> ... ]
ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
REPLICATION_SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }'
ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
ERROR_INTEGRATION = <integration_name>
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
ADD <db_name> [ , <db_name> , ... ] TO ALLOWED_DATABASES
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
MOVE DATABASES <db_name> [ , <db_name> , ... ] TO REPLICATION GROUP <move_to_rg_name>
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
REMOVE <db_name> [ , <db_name> , ... ] FROM ALLOWED_DATABASES
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
ADD <share_name> [ , <share_name> , ... ] TO ALLOWED_SHARES
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
MOVE SHARES <share_name> [ , <share_name> , ... ] TO REPLICATION GROUP <move_to_rg_name>
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
REMOVE <share_name> [ , <share_name> , ... ] FROM ALLOWED_SHARES
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
ADD <org_name>.<target_account_name> [ , <org_name>.<target_account_name> , ... ] TO ALLOWED_ACCOUNTS
[ IGNORE EDITION CHECK ]
ALTER REPLICATION GROUP [ IF EXISTS ] <name>
REMOVE <org_name>.<target_account_name> [ , <org_name>.<target_account_name> , ... ] FROM ALLOWED_ACCOUNTS
ターゲットアカウント
ALTER REPLICATION GROUP [ IF EXISTS ] <name> REFRESH
ALTER REPLICATION GROUP [ IF EXISTS ] <name> SUSPEND [ IMMEDIATE ]
ALTER REPLICATION GROUP [ IF EXISTS ] <name> RESUME
パラメーター¶
ソースアカウント
name
複製グループの識別子を指定します。
RENAME TO new_name
new_name
複製グループの新しい識別子を指定します。識別子が別の複製またはフェールオーバーにすでに配置されている場合、新しい識別子は使用できません。
詳細については、 識別子の要件 をご参照ください。
SET ...
複製グループに設定するプロパティを指定します(空白、コンマ、または改行で区切り)。
OBJECT_TYPES = object_type [ , object_type , ... ]
ソースアカウントからターゲットアカウントに複製するオブジェクト型のリストをリセットします。
注釈
データベースおよび共有オブジェクトの場合、
DATABASES または SHARES が OBJECT_TYPES リストに含まれ、リストがリセットされた後も OBJECT_TYPES リストに残っている場合、それぞれの許可オブジェクトリスト(ALLOWED_DATABASES または ALLOWED_SHARES)は変更なしのままになります。
DATABASES を追加または削除するために OBJECT_TYPES リストがリセットされると、 ALLOWED_DATABASES リストは NULL に設定されます。
SHARES を追加または削除するために OBJECT_TYPES リストがリセットされると、 ALLOWED_SHARES リストは NULL に設定されます。
ADD、 MOVE、 REMOVE 句を使用して、許可データベースまたは共有オブジェクトのリストを変更します。
次のオブジェクト型がサポートされています。
- ACCOUNT PARAMETERS:
Business Critical Edition(またはそれ以上)が必要です。
すべてのアカウントレベルのパラメーター。これには、 アカウントパラメーター と、 アカウントに設定 できるパラメーターが含まれます。
- DATABASES:
データベースオブジェクトをオブジェクト型のリストに追加します。指定されたオブジェクト型のリストにデータベースオブジェクトがすでに含まれている場合は、
ALLOWED_DATABASES
リストは変更なしのままになります。データベースのリストを変更するには、 ADD、 MOVE、または REMOVE 句を使用します。- INTEGRATIONS:
Business Critical Edition(またはそれ以上)が必要です。
現在、セキュリティ、 API、ストレージ、外部アクセス、特定のタイプの通知統合のみがサポートされています。詳細については、 統合複製 をご参照ください。
指定されたオブジェクト型のリストに統合オブジェクトが含まれている場合は、
ALLOWED_INTEGRATION_TYPES
パラメーターを設定する必要があります。- NETWORK POLICIES:
Business Critical Edition(またはそれ以上)が必要です。
ソースアカウントのすべてのネットワークポリシー。
- RESOURCE MONITORS:
Business Critical Edition(またはそれ以上)が必要です。
ソースアカウントのすべてのリソースモニター。
- ROLES:
Business Critical Edition(またはそれ以上)が必要です。
ソースアカウントのすべてのロール。ロールの複製には、複製グループに含まれるオブジェクト型のすべての付与が暗黙的に含まれます。たとえば、
ROLES
が複製される唯一のオブジェクト型である場合は、ロールの階層(つまり、他のロールに付与されたロール)のみがターゲットアカウントに複製されます。USERS
オブジェクト型も含まれている場合は、ユーザーへのロールの付与も複製されます。- SHARES:
オブジェクト型のリストに共有オブジェクトを追加します。指定されたオブジェクト型のリストに共有オブジェクトがすでに含まれている場合は、
ALLOWED_SHARES
リストは変更なしのままになります。共有のリストを変更するには、 ADD、 MOVE、または REMOVE 句を使用します。- USERS:
Business Critical Edition(またはそれ以上)が必要です。
ソースアカウントのすべてのユーザー。
- WAREHOUSES:
Business Critical Edition(またはそれ以上)が必要です。
ソースアカウントのすべてのウェアハウス。
ALLOWED_DATABASES = db_name [ , db_name , ... ]
ソースアカウントからターゲットアカウントへの複製を有効にしているデータベースまたはデータベースのリストを指定します。このパラメーターを設定するには、
OBJECT_TYPES
リストにDATABASES
を含める必要があります。db_name
データベースの識別子を指定します。
ALLOWED_SHARES = share_name [ , share_name , ... ]
ソースアカウントからターゲットアカウントへの複製を有効にしている共有または共有のリストを指定します。このパラメーターを設定するには、
OBJECT_TYPES
リストにSHARES
を含める必要があります。share_name
共有の識別子を指定します。
注釈
ALLOWED_DATABASES または ALLOWED_SHARES リストが変更された場合、以前にリスト内にあり削除されたオブジェクトは、次のリフレッシュ操作が発生したときに、セカンダリ複製グループがリンクされているターゲットアカウントですべてドロップされます。
ALLOWED_INTEGRATION_TYPES = integration_type_name [ , integration_type_name , ... ]
Business Critical Edition(またはそれ以上)が必要です。
ソースアカウントからターゲットアカウントへの複製を有効にしている統合の型。
このプロパティには、このパラメーターを設定するために、
OBJECT_TYPES
リストにINTEGRATIONS
を含める必要があります。次の統合型がサポートされています。
- SECURITY INTEGRATIONS:
セキュリティ統合を指定します。
このプロパティには、
OBJECT_TYPES
リストにROLES
を含める必要があります。- API INTEGRATIONS:
API 統合を指定します。
API 統合複製では、 API 統合がターゲットアカウントに複製された後で追加のセットアップが必要です。詳細については、 API 統合のリモートサービスの更新 をご参照ください。
- STORAGE INTEGRATIONS:
ストレージ統合を指定します。
- EXTERNAL ACCESS INTEGRATIONS:
外部アクセス統合 を指定します。
詳細については、 ストアドプロシージャとユーザー定義関数の複製(UDFs) をご参照ください。
- NOTIFICATION INTEGRATIONS:
通知統合を指定します。
一部の型の通知統合のみが複製されます。詳細については、 統合複製 をご参照ください。
REPLICATION_SCHEDULE ...
セカンダリ複製グループを更新するスケジュールを指定します。
USING CRON expr time_zone
セカンダリグループの更新のcron式とタイムゾーンを指定します。標準のcronユーティリティ構文のサブセットをサポートします。
タイムゾーンのリストについては、 tzデータベースタイムゾーンのリスト (Wikipedia)をご参照ください。
cron式は、次のフィールドで構成されます。
# __________ minute (0-59) # | ________ hour (0-23) # | | ______ day of month (1-31, or L) # | | | ____ month (1-12, JAN-DEC) # | | | | __ day of week (0-6, SUN-SAT, or L) # | | | | | # | | | | | * * * * *
次の特殊文字がサポートされています。
*
ワイルドカード。フィールドのオカレンスを指定します。
L
「最後」の略。曜日フィールドで使用すると、特定の月の「最後の金曜日」(「5L」)などの構造を指定できます。月の日フィールドでは、月の最後の日を指定します。
/n
特定の時間単位の nth インスタンスを示します。時間の各クォンタムは独立して計算されます。たとえば、月フィールドに
4/3
が指定されている場合、更新は4月、7月、および10月にスケジュールされます(つまり、年の4番目の月から始まる3か月ごと)。その後も同じスケジュールが維持されます。つまり、更新は1月(10月の実行から3か月後)に実行されるようにスケジュールされては いません。
注釈
cron式は現在、指定されたタイムゾーンに対してのみ評価します。アカウントの TIMEZONE パラメーター値を変更(またはユーザーレベルまたはセッションレベルで値を設定)しても、更新のタイムゾーンは変更 されません。
cron式は、更新のすべての 有効な 実行時間を定義します。Snowflakeは、このスケジュールに基づいてセカンダリグループを更新しようとします。ただし、次の有効な実行時間が始まる前に前の実行が完了していない場合、有効な実行時間はスキップされます。
cron式に特定の月の日と曜日の両方が含まれている場合、更新は月の日または曜日の いずれか を満たす日にスケジュールされます。たとえば、
SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'
は、月の10日から20日、およびそれらの日付以外の火曜日または木曜日の 0AM に更新をスケジュールします。
num MINUTE
更新間の待機時間の間隔(分単位)を指定します。正の整数のみを受け入れます。
num M
構文もサポートしています。あいまいさを避けるために、次の場合には 基本間隔時間 が設定されます。
オブジェクトの作成時(CREATE <オブジェクト> を使用) または
異なる間隔が設定されている場合(ALTER <オブジェクト> ... SET REPLICATION_SCHEDULE を使用)
基本間隔は、現在のクロックタイムから間隔カウンターを開始します。たとえば、
10
の INTERVAL 値が設定され、スケジュールされた更新が9:03 AM で有効になっている場合、更新は9:13 AM、9:23 AM というように実行されます。絶対精度を確保するために最善を尽くしますが、保証されるのは、設定間隔が発生する 前に 更新が実行されないようにすることのみです(たとえば、現在の例では、更新は最初に9:14 AM に実行されることはあっても、9:12 AM に実行されることは決してありません)。注釈
サポートされる最大値は
11520
(8日間)です。複製スケジュールのnum MINUTE
値が大きい場合、更新操作は実行されません。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
ERROR_INTEGRATION = integration_name
複製グループのリフレッシュエラー発生時にメール/プッシュ通知に使用する通知統合の名前を指定します。詳細については、 複製グループとフェールオーバーグループのエラー通知 をご参照ください。
ADD db_name [ , db_name , ... ] TO ALLOWED_DATABASES
複製が有効になっているデータベースのリストに追加する、データベースのコンマ区切りリストを指定します。データベースを追加するには、指定されたオブジェクト型のリストに DATABASES を含める必要があります。オブジェクト型のリストにまだ DATABASES が含まれていない場合は、追加する必要があります。
db_name
データベースの識別子を指定します。
MOVE DATABASES db_name [ , db_name , ... ] TO REPLICATION GROUP move_to_rg_name
ある複製グループから別の複製グループに移動する、データベースのコンマ区切りリストを指定します。データベースの移動先の複製グループには、指定されたオブジェクト型のリストに DATABASES を含める必要があります。
db_name
データベースの識別子を指定します。
move_to_rg_name
データベースの移動先の複製グループに対する識別子を指定します。
REMOVE db_name [ , db_name , ... ] FROM ALLOWED_DATABASES
複製が有効になっているデータベースのリストから、削除するデータベースのコンマ区切りリストを指定します。
注釈
プライマリ複製グループからデータベースを削除すると、次のリフレッシュ操作が発生したときに、リンクされたセカンダリ複製グループを持つすべてのターゲットアカウントでデータベースがドロップされます。
ターゲットアカウントでデータベースのドロップを回避するには、変更されたプライマリ複製グループが次回ターゲットアカウントに複製される 前 に、セカンダリ複製グループをドロップします。セカンダリ複製グループをドロップすると、グループに含まれていた読み取り専用のセカンダリデータベースは、ターゲットアカウントのスタンドアロン読み取り/書き込みデータベースになります。
ADD share_name [ , share_name , ... ] TO ALLOWED_SHARES
複製用の共有のリストに追加する、コンマで区切られた共有のリストを指定します。共有を追加するには、指定されたオブジェクト型のリストに SHARES を含める必要があります。オブジェクト型のリストにまだ SHARES が含まれていない場合は、追加する必要があります。
share_name
共有の識別子を指定します。
MOVE SHARES share_name [ , share_name , ... ] TO REPLICATION GROUP move_to_rg_name
ある複製グループから別の複製グループに移動する、共有のコンマ区切りリストを指定します。共有の移動先の複製グループには、指定されたオブジェクト型のリストに SHARES を含める必要があります。
share_name
共有の識別子を指定します。
move_to_rg_name
共有の移動先の複製グループに対する識別子を指定します。
REMOVE share_name [ , share_name , ... ] FROM ALLOWED_SHARES
複製が有効になっている共有のリストから、削除する共有のコンマ区切りリストを指定します。
注釈
プライマリ複製グループから共有を削除すると、次のリフレッシュ操作が発生したときに、リンクされたセカンダリ複製グループを持つすべてのターゲットアカウントで共有がドロップされます。
ADD org_name.target_account_name [ , org_name.target_account_name , ... ] TO ALLOWED_ACCOUNTS
ソースアカウント内にある指定されたオブジェクトのターゲットアカウントへの複製を有効にするために、プライマリ複製グループに追加するターゲットアカウントのコンマ区切りリストを指定します。
org_name
Snowflake組織の名前。
target_account_name
指定されたオブジェクトの複製を有効にするターゲットアカウント。
REMOVE org_name.target_account_name [ , org_name.target_account_name , ... ] FROM ALLOWED_ACCOUNTS
ソースアカウント内にある指定されたオブジェクトのターゲットアカウントへの複製を無効にするために、プライマリ複製グループから削除するターゲットアカウントのコンマ区切りリストを指定します。
org_name
Snowflake組織の名前。
target_account_name
指定されたオブジェクトの複製を無効にするターゲットアカウント。
IGNORE EDITION CHECK
次のいずれかのシナリオで、下位エディションのアカウントにオブジェクトを複製できるようにします。
データベースのみおよび/または共有オブジェクトがあるプライマリ複製グループはBusiness Critical(またはそれ以上)のアカウントにあるが、複製を承認された1つ以上のアカウントは下位エディションにある。Business Critical Editionは、非常に機密性の高いデータを有するSnowflakeアカウントを対象としています。
任意の オブジェクトタイプ があるプライマリ複製グループがBusiness Critical(またはそれ以上)のアカウントにあり、 HIPAA および HITRUST 規制に従ってアカウントに PHI データを格納するための署名済みビジネスアソシエイト契約が整っている。しかし、Business Critical(またはそれ以上)のアカウントであるかどうかにかかわりなく、複製が承認された1つ以上のアカウントに対してはそのような契約がない。
Business Critical(またはそれ以上)のアカウントのアカウント管理者が機密データを下位エディションのアカウントに誤って複製することを防ぐため、両方のシナリオともデフォルトで禁止されています。
ターゲットアカウント
name
複製グループの識別子を指定します。
REFRESH
ソースアカウントからターゲット(現在の)アカウントのオブジェクトを更新します。
SUSPEND [ IMMEDIATE ]
セカンダリ複製グループのスケジュールされた更新を一時停止します(プライマリ複製グループが、
REPLICATION_SCHEDULE
プロパティを使用してスケジュールされた更新を自動的に設定した場合)。オプションの
IMMEDIATE
句は、セカンダリ複製グループ(存在する場合)で現在進行中のスケジュールされたリフレッシュ操作をキャンセルします。ステートメントが返す時間と、リフレッシュ操作のキャンセルが終了する時間との間に、若干の遅れが生じる可能性があることに注意してください。RESUME
セカンダリ複製グループのスケジュールされた更新を再開します(プライマリ複製グループが、
REPLICATION_SCHEDULE
プロパティを使用してスケジュールされた更新を自動的に設定した場合)。
使用上の注意¶
次の最小限の権限が必要です。
ALTER REPLICATION GROUP ... REFRESH を使用してセカンダリ複製グループを更新するには、アクティブなプライマリロールに、複製グループに対する OWNERSHIP または REPLICATE 権限のいずれかが必要です。
複製グループにその他の変更を加える、この SQL コマンドを実行できるのは、グループに対して OWNERSHIP 権限のあるロールを持つユーザーのみです。
データベースを複製グループに追加するには、データベースに対する MONITOR 権限がアクティブなロールに必要です。
複製グループに共有を追加するには、共有に対する OWNERSHIP 権限がアクティブなロールに必要です。
アカウント内のフェールオーバーグループと複製グループの識別子は一意にする必要があります。
データベースと共有以外のオブジェクトは、同じ複製グループに属している必要があります。
データベースは、1つの複製グループまたはフェールオーバーグループにのみ追加できます。
データベースまたは共有を1つの複製グループ(移動元グループ)から別の複製グループ(移動先グループ)に移動するには、
両方のグループを同じ型の REPLICATION GROUP にする必要があります。
移動元グループの最後のデータベースが別のグループに移動された場合、移動元グループの
allowed_databases
プロパティは NULL に設定されます。同じ動作が共有にも当てはまります。移動先グループの
object_types
リストに移動先のオブジェクト型(databases
またはshares
)がない場合は、オブジェクトを移動する前に、移動先グループに明示的に追加する必要があります。
データベースまたは共有オブジェクトがプライマリ複製グループから削除された場合(REMOVE パラメーターまたは SET パラメーターを使用して、 ALLOWED_DATABASES リストまたは ALLOWED_SHARES リストを変更した場合)、それらのオブジェクトは、次のリフレッシュ操作が発生したときに、セカンダリ複製グループにリンクされたターゲットアカウントでドロップされます。
ターゲットアカウントでこれらのオブジェクトのドロップを回避するには、変更されたプライマリ複製グループが次回ターゲットアカウントに複製される 前 に、セカンダリ複製グループをドロップします。
インバウンド共有 (プロバイダーからの共有)は、複製グループまたはフェールオーバーグループに追加 できません。
複製が有効になっている組織内のアカウントのリストを取得するには、 SHOW REPLICATION ACCOUNTS コマンドを使用します。
組織内の複製グループのリストを取得するには、 SHOW REPLICATION GROUPS コマンドを使用します。
allowed_accounts
列には、ソースアカウントからの複製が有効になっているすべてのターゲットアカウントがリストされます。自動的に スケジュールされたリフレッシュ操作 は、グループに対する OWNERSHIP 権限を持つロールを使用して実行されます。権限不足のためにスケジュールされたリフレッシュ操作が失敗した場合は、そのグループのOWNERSHIP権限を持つロールに必要な権限を付与します。
ALTER FAILOVER GROUP ... SUSPEND IMMEDIATE コマンドは、手動でトリガーされた場合、進行中のリフレッシュ操作をキャンセルしません。詳細については、 自動的にスケジュールされなかった、進行中のリフレッシュ操作をキャンセルします。 をご参照ください。
SECONDARY_DOWNLOADING_METADATA または SECONDARY_DOWNLOADING_DATA フェーズにある進行中のリフレッシュ操作をキャンセルすると、ターゲットアカウントの状態が一貫しなくなる可能性があります。詳細については、 進行中のリフレッシュ操作の現在のフェーズの表示 をご参照ください。
タグ付きの複製またはフェールオーバー グループを作成したり、タグを設定して複製またはフェールオーバー グループを変更した場合、 タグ行番号 は、複製またはフェイルオーバー グループで指定したオブジェクトには適用されません。
タグの系譜は、データベース、スキーマ、テーブルなど、 親子関係 を持つオブジェクトにのみ適用されます。複製グループやフェールオーバー・グループの子オブジェクトはありません。
これらのオブジェクトは読み取り専用であるため、セカンダリ・複製・グループまたはフェールオーバー・グループにタグを設定したり、タグを変更したりすることはできません。
セカンダリ複製グループまたはフェールオーバー・グループをリフレッシュすると、プライマリ・グループに設定されているすべてのタグがセカンダリ・グループに設定されます。
メタデータについて、
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
ソースアカウントから実行¶
ソースアカウントからの指定されたオブジェクトの複製が有効になっている、ターゲットアカウントのリストに myorg.myaccount3
を追加します。
ALTER REPLICATION GROUP myrg ADD myorg.myaccount3 TO ALLOWED_ACCOUNTS;
ソースアカウントで複製するオブジェクト型リストをリセットします。
ALTER REPLICATION GROUP myrg SET
OBJECT_TYPES = DATABASES, SHARES;
複製が有効になっているデータベースのリストにデータベース db1
を追加します。
ALTER REPLICATION GROUP myrg
ADD db1 to ALLOWED_DATABASES;
複製が有効になっている共有のリストに共有 s2
を追加します。
ALTER REPLICATION GROUP myrg
ADD s2 TO ALLOWED_SHARES;
データベース db1
を別の複製グループ myrg2
に移動します。
ALTER REPLICATION GROUP myrg
MOVE DATABASES db1 TO REPLICATION GROUP myrg2;
スケジュールされた更新間隔を15分に設定します。
ALTER REPLICATION GROUP myrg SET
REPLICATION_SCHEDULE = '15 MINUTE';
ターゲットアカウントから実行¶
ターゲットアカウントの複製グループ myrg
のオブジェクトを更新します。
ALTER REPLICATION GROUP myrg REFRESH;
自動更新を一時停止します。
ALTER REPLICATION GROUP myrg SUSPEND;