arctic-extract-Modelle zwischen Datenbanken, Schemas und Konten kopieren¶
Unter diesem Thema wird erklärt, wie Sie optimierte arctic-extract-Modelle zwischen Datenbanken oder Schemas im selben Konto oder zwischen verschiedenen Konten in derselben Organisation kopieren. Sie könnten zum Beispiel ein Modell aus einem Entwicklungskonto in ein Produktionskonto kopieren.
Modelle zwischen Datenbanken und/oder Schemas innerhalb eines Kontos kopieren¶
Erstellen Sie das Modell aus dem Quellmodell mit der Rolle, die das Quellmodell erstellt hat:
Tipp
Um die Versionen eines Modells aufzulisten, verwenden Sie SHOW VERSIONS IN MODEL.
CREATE MODEL prod_db.prod_schema.invoices_model WITH VERSION V1 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V1;
Optional: Fügen Sie eine weitere Version des Modells hinzu:
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
Um es der Rolle
prod_rolezu ermöglichen, das kopierte Modell zu verwenden, weisen Sie dieser Rolle die OWNERSHIP-Berechtigung für das Modell zu:GRANT OWNERSHIP ON MODEL prod_db.prod_schema.invoices_model TO ROLE prod_role;
Modelle zwischen Konten kopieren¶
Sie können ein Modell von einem Quellkonto in ein oder mehrere Zielkonten derselben Organisation replizieren. Weitere Informationen zur Replikation finden Sie unter Einführung in Replikation und Failover über mehrere Konten.
Um das Modell von einem Quellkonto in ein Zielkonto zu replizieren, müssen Sie im Quellkonto eine Replikationsgruppe erstellen, um die Replikation der Datenbank, in der das Modell erstellt wurde, in ein Zielkonto zu ermöglichen. Außerdem müssen Sie die Produktionsbenutzerrolle einrichten.
Bemerkung
Sie müssen ein Benutzer mit der ACCOUNTADMIN-Rolle sein, um eine Replikationsgruppe erstellen und die Produktionsbenutzerrolle einrichten zu können.
Datenbank replizieren, in der das Modell erstellt wurde¶
Primäre Replikationsgruppe im Quellkonto erstellen:
CREATE REPLICATION GROUP models_replication_group OBJECT_TYPES = DATABASES ALLOWED_DATABASES = dev_db ALLOWED_ACCOUNTS = org.production_account;
Erstellen Sie eine sekundäre Replikationsgruppe in einem Zielkonto als Replikat der primären Replikationsgruppe im Quellkonto:
CREATE REPLICATION GROUP models_secondary_replication_group AS REPLICA OF org.dev_account.models_replication_group;
Aktualisieren Sie die Datenbank im Zielkonto vom Quellkonto aus:
ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
Optional: Geben Sie den Zeitplan für die Aktualisierung der sekundären Replikationsgruppe an, sodass das Konto automatisch alle 10 Minuten synchronisiert wird:
ALTER REPLICATION GROUP models_secondary_replication_group SET REPLICATION_SCHEDULE = '10 MINUTE';
Benutzerrolle für die Produktion einrichten¶
Um sicherzustellen, dass der Benutzende, der im Ziel-Produktionskonto arbeitet (z. B. ein Benutzender mit der prod_role-Rolle), das replizierte Modell verwenden kann, führen Sie die folgenden Schritte aus:
Weisen Sie die USAGE-Berechtigung für die Quelldatenbank und das Schema sowie die Eigentümerschaft an allen Modellen in diesem Schema der Rolle
prod_rolezu:GRANT USAGE ON DATABASE dev_db TO ROLE prod_role; GRANT USAGE ON SCHEMA dev_db.dev_schema TO ROLE prod_role; GRANT OWNERSHIP ON ALL MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
Optional: Eigentümerschaft an allen zukünftigen Modellen gewähren, die repliziert werden:
GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
Nachdem Sie die erforderlichen Berechtigungen erteilt haben, muss ein Benutzer mit der prod_role-Rolle die folgenden Schritte ausführen:
Modell aus dem Quellmodell erstellen:
CREATE MODEL prod_db.prod_schema.invoices_model WITH VERSION V1 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V1;
Optional: Fügen Sie eine weitere Version des Modells hinzu:
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
Bemerkung
Das Modell im Zielschema ist ein vom Modell in der replizierten Datenbank getrenntes Modellobjekt. Neue Versionen werden nicht automatisch kopiert. Sie müssen jede Version mit ALTER MODEL … ADD VERSION hinzufügen.