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 automatically creates a new version of a clean room after certain provider events, such as uploading Python code or enabling external or Apache Iceberg™ tables. Snowflake creates a new version only if the security scan triggered by this action passes. Relatively few provider actions can generate a new clean room version, and procedures that create a new version mention the new version in the procedure response.
Aktionen, für die der Sicherheitsscan nicht erfolgreich durchgeführt wurde, erzeugen keine neue Version.
Nur Anbieteraktionen können zu einer neuen Clean Room-Version führen. Verbraucheraktionen können dies 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.
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 und den Überprüfungsstatus für einen bestimmten Clean Room anzeigen, indem Sie SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; mit der ID des Clean Rooms aufrufen.
Standard-Release-Richtlinie¶
Each clean room is assigned a default release directive by the clean room provider. The default release directive specifies which version of the clean room should be installed or loaded in the user’s account. Consumers cannot specify which version of a clean room to install. Updates are handled automatically by Snowflake as available resources dictate, and there can be a delay before the new version is installed on the user’s account.
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.
You must always set the default release directive before publishing a clean room. If you haven’t added Python code, it should be V1.0.0, as shown here:
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
$cleanroom_name, 'V1_0', '0');
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.
Ein Anbieter muss die Standard-Release-Richtlinie nur festlegen, wenn er einen Clean Room im Code erstellt oder ändert. Die Versionierung wird automatisch durchgeführt, wenn Sie die Clean Rooms-UI verwenden.
Snowflake generates a new version only if the security scan triggered by a provider action passes. Therefore you should check the security
scan status for a clean room by calling provider.view_cleanrooom_scan_status before updating the default release directive. Not
updating the default release directive will not cause an error, but the newer version with your changes will not be published to users if you
don’t update the default release directive.
Clean Rooms mit Fehlern¶
If you publish a clean room with an error, which happens when the security scan fails or you upload Python code with a syntax error, a patch is generated, but you cannot use that version as a default release directive. Until you publish a fixed version, any additional patches incorporate the error from the previous failed patch and also result in a failed clean room patch.
Cheat Sheet zur Versionierung¶
Listen Sie alle Clean Room-Pakete (Clean Rooms) auf, die in diesem Snowflake-Konto erstellt wurden:
SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Listen Sie alle Versionen des Clean Room MY_FIRST_CLEANROOM auf:
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
See your current default release directive:
SHOW RELEASE DIRECTIVES IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_<your_clean_room_name>;
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>>');