CREATE REPLICATION GROUP¶
Erstellt im System eine neue Replikationsgruppe der angegebenen Objekte.
Weitere Details dazu finden Sie unter Einführung in Replikation und Failover über mehrere Konten.
Dieser Befehl kann für folgende Aufgaben verwendet werden:
Erstellen einer Replikationsgruppe im Quellkonto, um die Replikation der angegebenen Objekte in ein Zielkonto derselben Organisation zu aktivieren.
Erstellen einer sekundären Replikationsgruppe in einem Zielkonto als Replikat der primären Replikationsgruppe im Quellkonto derselben Organisation.
Syntax¶
CREATE REPLICATION GROUP [ IF NOT EXISTS ] <name>
OBJECT_TYPES = <object_type> [ , <object_type> , ... ]
[ ALLOWED_DATABASES = <db_name> [ , <db_name> , ... ] ]
[ ALLOWED_SHARES = <share_name> [ , <share_name> , ... ] ]
[ ALLOWED_INTEGRATION_TYPES = <integration_type_name> [ , <integration_type_name> , ... ] ]
ALLOWED_ACCOUNTS = <org_name>.<target_account_name> [ , <org_name>.<target_account_name> , ... ]
[ IGNORE EDITION CHECK ]
[ REPLICATION_SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]
Sekundäre Replikationsgruppe
CREATE REPLICATION GROUP [ IF NOT EXISTS ] <secondary_name>
AS REPLICA OF <org_name>.<source_account_name>.<name>
Parameter¶
name
Gibt den Bezeichner der Replikationsgruppe an. Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
OBJECT_TYPES = object_type [ , object_type , ... ]
Typ(en) von Objekten, für die Sie die Replikation vom Quellkonto in das Zielkonto aktivieren.
Die folgenden Objekttypen werden unterstützt:
- ACCOUNT PARAMETERS:
Erfordert Business Critical Edition (oder höher).
Alle Parameter auf Kontoebene. Dazu gehören Kontoparameter und Parameter, die für Ihr Konto eingestellt werden können.
- DATABASES:
Fügen Sie Datenbankobjekte zur Liste der Objekttypen hinzu. Wenn Datenbankobjekte in der Liste der angegebenen Objekttypen enthalten sind, muss der Parameter
ALLOWED_DATABASES
gesetzt werden.- INTEGRATIONS:
Erfordert Business Critical Edition (oder höher).
Derzeit werden nur Sicherheitsintegrationen, API-Integrationen, Speicherintegrationen [1], Integrationen für den externen Zugriff [2] sowie bestimmte Typen von Benachrichtigungsintegrationen unterstützt. Weitere Details dazu finden Sie unter Integrationsreplikation.
Wenn Integrationsobjekte in der Liste der angegebenen Objekttypen enthalten sind, muss der Parameter
ALLOWED_INTEGRATION_TYPES
gesetzt werden.- NETWORK POLICIES:
Erfordert Business Critical Edition (oder höher).
Alle Netzwerkrichtlinien im Quellkonto.
- RESOURCE MONITORS:
Erfordert Business Critical Edition (oder höher).
Alle Ressourcenmonitore im Quellkonto.
- ROLES:
Erfordert Business Critical Edition (oder höher).
Alle Rollen im Quellkonto. Das Replizieren von Rollen schließt implizit alle Berechtigungen für Objekttypen ein, die in der Replikationsgruppe enthalten sind. Wenn beispielsweise
ROLES
der einzige Objekttyp ist, der repliziert wird, werden nur Rollenhierarchien (d. h. Rollen, die anderen Rollen zugewiesen werden) in Zielkonten repliziert. Wenn der ObjekttypUSERS
ebenfalls enthalten ist, werden auch die Rollenzuweisungen an die Benutzer repliziert.- SHARES:
Fügen Sie Freigabeobjekte zur Liste der Objekttypen hinzu. Wenn Freigabeobjekte in der Liste der angegebenen Objekttypen enthalten sind, muss der Parameter
ALLOWED_SHARES
gesetzt werden.- USERS:
Erfordert Business Critical Edition (oder höher).
Alle Benutzer des Quellkontos.
- WAREHOUSES:
Erfordert Business Critical Edition (oder höher).
Alle Warehouses des Quellkontos.
Um die Liste der replizierten Objekttypen für ein bestimmtes Zielkonto zu ändern, können Sie mit ALTER REPLICATION GROUP die Liste der Objekttypen zurücksetzen.
ALLOWED_DATABASES = db_name [ , db_name , ... ]
Gibt die Datenbank oder die Liste der Datenbanken an, für die Sie die Replikation vom Quellkonto in das Zielkonto aktivieren. Damit Sie diesen Parameter einstellen können, muss die
OBJECT_TYPES
-ListeDATABASES
enthalten.ALLOWED_SHARES = share_name [ , share_name , ... ]
Gibt die Freigabe oder die Liste der Freigaben an, für die Sie die Replikation vom Quellkonto in das Zielkonto aktivieren. Damit Sie diesen Parameter einstellen können, muss die
OBJECT_TYPES
-ListeSHARES
enthalten.ALLOWED_INTEGRATION_TYPES = integration_type_name [ , integration_type_name , ... ]
Erfordert Business Critical Edition (oder höher).
Typ(en) von Integrationen, für die Sie die Replikation vom Quellkonto in das Zielkonto aktivieren.
Die Liste
OBJECT_TYPES
mussINTEGRATIONS
enthalten, damit dieser Parameter gesetzt werden kann.Die folgenden Integrationstypen werden unterstützt:
- SECURITY INTEGRATIONS:
Gibt die Sicherheitsintegrationen an.
Die Liste
OBJECT_TYPES
mussROLES
enthalten, damit dieser Parameter gesetzt werden kann.- API INTEGRATIONS:
Gibt die API-Integrationen an.
Für die Replikation von API-Integrationen sind zusätzliche Einstellungen erforderlich, nachdem die API-Integration in das Zielkonto repliziert wurde. Weitere Informationen dazu finden Sie unter Aktualisieren des Remotedienstes für API-Integrationen.
- STORAGE INTEGRATIONS:
Gibt Speicherintegrationen an.
- EXTERNAL ACCESS INTEGRATIONS:
Gibt Integrationen für den externen Zugriff an.
Weitere Informationen dazu finden Sie unter Replikation von gespeicherten Prozeduren und benutzerdefinierten Funktionen (UDFs).
Bemerkung
Der externe Zugriff wird in der Gov-Region nicht unterstützt.
- NOTIFICATION INTEGRATIONS:
Gibt die Benachrichtigungsintegrationen an.
Es werden nur bestimmte Typen von Benachrichtigungsintegrationen repliziert. Weitere Details dazu finden Sie unter Integrationsreplikation.
ALLOWED_ACCOUNTS = org_name.target_account_name1 [ , org_name.target_account_name2 , ... ]
Gibt das Zielkonto oder die Liste der Zielkonten an, für die die Replikation der angegebenen Objekte vom Quellkonto aus aktiviert wird.
org_name
Name Ihrer Snowflake-Organisation.
target_account_name
Zielkonto, für das Sie die Replikation der angegebenen Objekte aktivieren.
IGNORE EDITION CHECK
Ermöglicht das Replizieren von Objekten in Konten mit niedrigeren Editionen in einem der folgenden Szenarios:
Eine primäre Replikationsgruppe, die nur Datenbank- und/oder Freigabeobjekte enthält, befindet sich in einem Business Critical-Konto (oder höher), aber eines oder mehrere der zur Replikation genehmigten Konten weisen niedrigere Editionen auf. Die Business Critical Edition ist für Snowflake-Konten mit äußerst sensiblen Daten vorgesehen.
Eine primäre Replikationsgruppe mit einem beliebigen Objekttyp befindet sich in einem Business Critical-Konto (oder höher), und es besteht eine unterzeichnete Geschäftspartner-Vereinbarung zur Speicherung von PHI-Daten in dem Konto gemäß HIPAA- und HITRUST-Vorschriften. Allerdings besteht für eines oder mehrere der zur Replikation genehmigten Konten keine solche Vereinbarung, unabhängig davon, ob es sich um Business Critical-Konten (oder höhere) handelt.
Beide Szenarios sind standardmäßig nicht erlaubt, um zu verhindern, dass Kontoadministratoren von Business Critical-Konten (oder höher) versehentlich vertrauliche Daten in Konten mit niedrigeren Editionen replizieren.
REPLICATION_SCHEDULE ...
Gibt den Zeitplan für das Aktualisieren der sekundären Replikationsgruppen an:
USING CRON expr time_zone
Gibt einen Cron-Ausdruck und eine Zeitzone für das Aktualisieren der sekundären Gruppe an. Unterstützt eine Teilmenge der Standardsyntax des Cron-Dienstprogramms.
Eine Liste der Zeitzonen finden Sie unter List of tz database time zones (Liste der Zeitzonen aus der IANA-Zeitzonen-Datenbank) (Wikipedia).
Der Cron-Ausdruck besteht aus folgenden Feldern:
# __________ 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) # | | | | | # | | | | | * * * * *
Folgende Sonderzeichen werden unterstützt:
*
Platzhalter. Gibt jedes vorkommende Feld an.
L
Steht für „last“ (letzte). Bei Verwendung im Feld Wochentag können Sie Konstrukte wie „den letzten Freitag“ („5L“) eines bestimmten Monats angeben. Im Feld Tag des Monats wird der letzte Tag des Monats angegeben.
/n
Gibt die n-te Instanz einer bestimmten Zeiteinheit an. Jeder Zeitanteil wird unabhängig berechnet. Wenn beispielsweise im Monatsfeld
4/3
angegeben ist, ist die Aktualisierung für April, Juli und Oktober geplant (d. h. alle 3 Monate, beginnend mit dem 4. Monat des Jahres). In den Folgejahren wird derselbe Zeitplan beibehalten. Das heißt, die Aktualisierung ist nicht für eine Ausführung im Januar (3 Monate nach der Oktober-Ausführung) geplant.
Bemerkung
Der Cron-Ausdruck wird derzeit nur für die angegebene Zeitzone ausgewertet. Durch Ändern des TIMEZONE-Parameterwerts für das Konto (oder Festlegen des Werts auf Benutzer- oder Sitzungsebene) wird die Zeitzone für das Aktualisieren nicht geändert.
Der Cron-Ausdruck definiert alle gültigen Ausführungszeiten für das Aktualisieren. Snowflake versucht, die sekundären Gruppen auf Basis dieses Zeitplans zu aktualisieren. Eine gültige Laufzeit wird jedoch übersprungen, wenn eine vorherige Laufzeit nicht vor dem Start der nächsten gültigen Laufzeit abgeschlossen wurde.
Wenn sowohl ein bestimmter Tag des Monats als auch ein bestimmter Wochentag im Cron-Ausdruck enthalten sind, wird die Aktualisierung an Tagen geplant, die entweder dem Tag des Monats oder dem Wochentag entsprechen. Beispielsweise plant
SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'
eine Aktualisierung um 0:00 Uhr an jedem 10. bis 20. Tag des Monats und auch an jedem Dienstag oder Donnerstag außerhalb dieser Tage.
num MINUTE
Gibt ein Intervall (in Minuten) der Wartezeit zwischen den Aktualisierungen an. Akzeptiert nur positive ganze Zahlen.
Unterstützt auch die Syntax
num M
.Um Mehrdeutigkeiten zu vermeiden, wird in folgenden Situationen eine Basisintervallzeit festgelegt:
Das Objekt wird erstellt (mit CREATE <Objekt>) oder
Ein anderes Intervall wird festgelegt (mit ALTER <Objekt> … SET REPLICATION_SCHEDULE)
Die Basisintervallzeit startet den Intervallzähler ab der aktuellen Uhrzeit. Wenn beispielsweise ein INTERVAL-Wert von
10
festgelegt ist und die geplante Aktualisierung um 9:03 Uhr aktiviert wird, wird die Aktualisierung um 9:13 Uhr, 9:23 Uhr usw. ausgeführt. Beachten Sie, dass wir uns nach besten Kräften bemühen, absolute Präzision sicherzustellen, aber nur garantieren, dass Aktualisierungen nicht vor ihrem festgelegten Intervall ausgeführt werden (im aktuellen Beispiel könnte es sein, dass die Aktualisierung erst 9:14 Uhr ausgeführt wird, aber definitiv nicht 9:12 Uhr).Bemerkung
Der maximal unterstützte Wert ist
11520
(8 Tage). Wenn der Replikationsplan einen größeren Wertnum MINUTE
hat, wird die Aktualisierungsoperation nie ausgeführt.
Parameter der sekundären Replikationsgruppe
secondary_name
Gibt den Bezeichner der sekundären Replikationsgruppe an. Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten. Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.Die Bezeichner für die sekundäre Replikationsgruppe (
secondary_name
) und die primäre Replikationsgruppe (name
) können identisch sein, müssen es aber nicht.AS REPLICA OF org_name.source_account_name.name
Gibt den Bezeichner der primären Replikationsgruppe an, aus der eine sekundäre Replikationsgruppe erstellt werden soll.
org_name
Name Ihrer Snowflake-Organisation.
source_account_name
Quellkonto, von dem aus Sie Replikation der angegebenen Objekte aktivieren.
name
Bezeichner der primären Replikationsgruppe im Quellkonto.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
CREATE REPLICATION GROUP |
Konto |
Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. |
MONITOR |
Datenbank |
Um eine Datenbank zu einer Replikationsgruppe hinzuzufügen, muss die aktive Rolle über die MONITOR-Berechtigung für die Datenbank verfügen. |
OWNERSHIP |
Freigabe |
Um eine Freigabe zu einer Replikationsgruppe hinzuzufügen, muss die aktive Rolle über die OWNERSHIP-Berechtigung für die Freigabe verfügen. |
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Bezeichner für Failover-Gruppen und Replikationsgruppen in einem Konto müssen eindeutig sein.
Eine Datenbank kann nur zu einer einzigen Replikations- oder Failover-Gruppe hinzugefügt werden.
Eingehende Freigaben (Freigaben von Anbietern) können nicht zu einer Replikations- oder Failover-Gruppe hinzugefügt werden.
Um die Menge der Konten Ihrer Organisation abzurufen, die für die Replikation aktiviert sind, verwenden Sie den Befehl SHOW REPLICATION ACCOUNTS.
Um die Liste der Replikations- und Failover-Gruppen Ihrer Organisation abzurufen, verwenden Sie SHOW REPLICATION GROUPS. In der Spalte
allowed_accounts
werden alle Zielkonten aufgelistet, die für die Objektreplikation von einem Quellkonto aus aktiviert sind.Wenn Sie Kontoobjekte (z. B. Benutzer oder Rollen) in einem Zielkonto haben, die Sie während der Replikation nicht löschen möchten, können Sie mit der Systemfunktion SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME eine globale ID auf Objekte anwenden, die auf andere Weise als durch Replikation erstellt wurden. Weitere Informationen dazu finden Sie unter Globale IDs auf Objekte anwenden, die von Skripten in Zielkonten erstellt wurden, bevor Sie eine Replikationsgruppe erstellen.
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Von Quellkonto ausführen¶
Erstellen Sie eine Replikationsgruppe mit dem Namen myrg
im Quellkonto, und aktivieren Sie die Replikation der Datenbank db1
und der Freigabe s1
vom Quellkonto in Konto myaccount2
für eine automatische Aktualisierung alle 10 Minuten:
CREATE REPLICATION GROUP myrg
OBJECT_TYPES = DATABASES, SHARES
ALLOWED_DATABASES = db1
ALLOWED_SHARES = s1
ALLOWED_ACCOUNTS = myorg.myaccount2
REPLICATION_SCHEDULE = '10 MINUTE';
Von Zielkonto ausführen¶
Erstellen Sie eine Replikationsgruppe im Zielkonto als Replikat der Replikationsgruppe myrg
im Quellkonto:
CREATE REPLICATION GROUP myrg
AS REPLICA OF myorg.myaccount1.myrg;