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.

Siehe auch:

ALTER REPLICATION GROUP, DROP REPLICATION GROUP, SHOW REPLICATION GROUPS

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> }' ]
Copy

Sekundäre Replikationsgruppe

CREATE REPLICATION GROUP [ IF NOT EXISTS ] <secondary_name>
    AS REPLICA OF <org_name>.<source_account_name>.<name>
Copy

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 Objekttyp USERS 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-Liste DATABASES 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-Liste SHARES 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 muss INTEGRATIONS enthalten, damit dieser Parameter gesetzt werden kann.

Die folgenden Integrationstypen werden unterstützt:

SECURITY INTEGRATIONS:

Gibt die Sicherheitsintegrationen an.

Die Liste OBJECT_TYPES muss ROLES 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 Wert num 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';
Copy

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;
Copy