Versionierung im Reinraum

Bemerkung

Dieses Thema ist für Ersteller von Clean Rooms. Verbraucher von Clean Rooms müssen sich keine Gedanken über die Versionierung von Clean Rooms machen.

Clean Room-Versionsnummerierung

Snowflake-Clean Rooms sind versioniert. Die erste Version eines Clean Room ohne Python-Code ist V1.0.0.

Snowflake erstellt automatisch eine neue Version eines Clean Room nach bestimmten Anbieter-Ereignissen, wie dem Hochladen von Python-Code oder der Aktivierung externer oder Iceberg-Tabellen. Snowflake erstellt nur dann eine neue Version, wenn der durch diese Aktion ausgelöste Sicherheitsscan erfolgreich war. Bei Aktionen, die eine neue Version erstellen, wird dies in der Antwort der Prozedur erwähnt. Aktionen, die den Sicherheitsscan nicht bestehen, erzeugen keine neue Version. Nur Anbieteraktionen können zu einer neuen Clean Room-Version führen, Verbraucheraktionen nicht.

Snowflake erhöht bei jeder neuen Version nur die Patchnummer (die letzte Ziffer). Die Versionsnummern für drei aufeinanderfolgende Versionen wären also V1.0.0, V1.0.1 und V1.0.2.

Bemerkung

Clean Rooms sind versioniert, da sie als native Anwendungspakete implementiert sind. Im nativen Anwendungsframework von Snowflake gilt für die Version V1.0.2 die Konvention, dass „V1.0“ (eine Zeichenfolge) die Versionsnummer und 2 (eine Ganzzahl) die Patchnummer ist. In der Clean Room-Dokumentation wird der Begriff „Version“ in der Regel für die gesamte Nummer (V1.0.1) verwendet und nicht nur für das Präfix „V1.0“ (wie manchmal im Native App-Framework verwendet).

Sie können den Versionsverlauf für einen bestimmten Clean Room einsehen, indem Sie SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; mit der ID des Clean Room aufrufen.

Standard-Release-Richtlinie

Jedem Clean Room ist eine Standard-Release-Richtlinie durch den Ersteller des Clean Room zugeordnet. Die Standard-Release-Richtlinie gibt an, welche Version des Clean Room im Konto des Benutzers installiert werden soll. Verbraucher können nicht angeben, welche Version eines Clean Room sie installieren möchten. Aktualisierungen werden von Snowflake automatisch durchgeführt, sobald die verfügbaren Ressourcen dies erfordern, und es kann eine gewisse Verzögerung geben, bevor die neue Version auf dem Konto des Benutzers installiert wird.

Ein Anbieter von Clean Rooms muss die Standard-Release-Richtlinie eines Clean Room angeben, bevor der Clean Room erstmals freigegeben werden kann (entweder intern oder extern) oder immer dann, wenn der Anbieter Code hochlädt und der Sicherheitsscan bestanden wird. Wenn eine neue Version des Clean Room erstellt wird, aber die Standard-Release-Richtlinie nicht aktualisiert wird, wird den Verbrauchern weiterhin die letzte Standardversion bereitgestellt.

Ein Anbieter von Clean Rooms kann die Standard-Release-Richtlinie auf Wunsch auf einen früheren Release zurücksetzen.

Geben Sie die Standard-Release-Richtlinie für einen Clean Room an, indem Sie provider.set_default_release_directive aufrufen.

Bemerkung

Ein Anbieter muss die Standard-Release-Richtlinie nur setzen, wenn er einen Clean Room im Code erstellt oder ändert. Die Versionierung wird bei der Verwendung der Webanwendung automatisch durchgeführt.

Relativ wenige Anbieteraufrufe können eine neue Clean Room-Version erzeugen. Nur wenn der Sicherheitsscan erfolgreich war, erstellt Snowflake eine neue Version. Daher sollten Sie den Status des Sicherheitsscans für einen Clean Room überprüfen, indem Sie provider.view_cleanrooom_scan_status aufrufen, bevor Sie die Standard-Release-Richtlinie aktualisieren. Wenn Sie die Standard-Release-Richtlinie nicht aktualisieren, tritt kein Fehler auf, aber die neuere Version mit Ihren Änderungen wird den Benutzern nicht bereitgestellt, wenn Sie sie nicht aktualisieren.

Beispiele

Listen Sie alle Clean Room-Pakete (Clean Rooms) auf, die in diesem Snowflake-Konto erstellt wurden:

SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Copy

Listen Sie alle Versionen des Clean Room MY_FIRST_CLEANROOM auf:

SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Copy

Sie müssen die Standard-Release-Richtlinie immer vor der ersten Veröffentlichung eines Clean Room festlegen. Wenn Sie keinen Python-Code hinzugefügt haben, sollte dies V1.0.0 sein:

CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '0');
Copy

Prüfen Sie den Status der Scanüberprüfung, bevor Sie die Version festlegen, wenn es sich um einen Clean Room handelt, den Sie gerade als extern festgelegt haben, oder wenn dieser bereits extern ist und die Version geändert wurde:

CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status('MY_FIRST_CLEANROOM');

-- When REVIEW_STATUS = APPROVED, you can update the default version to the
-- latest version, if you haven't done so already.
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '<<LATEST_PATCH_NUMBER>>');
Copy