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

  1. 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;
    
    Copy
  2. 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;
    
    Copy
  3. Um es der Rolle prod_role zu 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;
    
    Copy

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

  1. Primäre Replikationsgruppe im Quellkonto erstellen:

    CREATE REPLICATION GROUP models_replication_group
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = dev_db
    ALLOWED_ACCOUNTS = org.production_account;
    
    Copy
  2. 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;
    
    Copy
  3. Aktualisieren Sie die Datenbank im Zielkonto vom Quellkonto aus:

    ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
    
    Copy
  4. 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';
    
    Copy

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:

  1. 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_role zu:

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

Nachdem Sie die erforderlichen Berechtigungen erteilt haben, muss ein Benutzer mit der prod_role-Rolle die folgenden Schritte ausführen:

  1. 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;
    
    Copy
  2. 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;
    
    Copy

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.