Clean Roomのバージョン管理

注釈

このトピックはclean roomの作成者向けです。Clean roomのコンシューマーは、clean roomのバージョン管理について考える必要はありません。

Clean roomのバージョンナンの番号付け

Snowflakeclean roomはバージョン管理されています。Pythonコードのないclean roomの初期バージョンはV1.0.0です。

Snowflakeは、Pythonコードのアップロードや外部テーブルまたはIcebergテーブルの有効化など、特定の プロバイダー イベントの後に、clean roomの新しいバージョンを自動的に作成します。Snowflakeは、このアクションによってトリガーされたセキュリティスキャンがパスした場合にのみ、新しいバージョンを作成します。新しいバージョンを作成したアクションは、プロシージャのレスポンスにその旨を記載します。セキュリティスキャンに失敗したアクションは、新しいバージョンを生成しません。新しいclean roomにバージョンを作成し得るのはプロバイダーのアクションのみであり、コンシューマーのアクションでは作成されません。

Snowflakeは、新しいバージョンが作成されるたびにパッチ番号(最後の桁)のみをインクリメントします。つまり、3つの連続したバージョンでは、番号がV1.0.0、V1.0.1、V1.0.2となります。

注釈

Clean roomがバージョン管理されるのは、 ネイティブアプリケーションパッケージ として実装されているからです。SnowflakeのNativeアプリケーションフレームワークでは、バージョンV1.0.2の場合、「V1.0」(文字列)がバージョン番号で、「2」(整数)がパッチ番号になります。Clean roomのドキュメントでは通常、(Native Apps Frameworkで使用されることがあるような)単に「V1.0」というプレフィックスではなく、番号全体(V1.0.1)を示す「バージョン」という用語を使用します。

指定したclean roomのバージョン履歴は、そのclean roomの ID で SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; を呼び出すと見ることができます。

デフォルトリリースディレクティブ

各clean roomには、clean room作成者によって デフォルトリリースディレクティブ が割り当てられます。デフォルトのリリースディレクティブには、clean roomのどのバージョンをユーザーのアカウントにインストールするかを指定します。コンシューマーではインストールするclean roomのバージョンを指定できません。アップデートは リソースが使用可能になると Snowflakeによって自動的に処理され、新しいバージョンがユーザーのアカウントにインストールされるまでに若干の遅延が発生する場合があります。

clean roomプロバイダーは、clean roomが最初に共有される前(内部または外部)、またはプロバイダーがコードをアップロードし、セキュリティスキャンをパスするたびに、clean roomのデフォルトリリースディレクティブを指定する必要があります。clean roomの新しいバージョンが生成されても、デフォルトリリースディレクティブが更新されない場合、コンシューマーは引き続き最新のデフォルトバージョンで提供されます。

clean roomプロバイダーは、必要であれば、デフォルトのリリースディレクティブを以前のリリースに戻すことができます。

provider.set_default_release_directive を呼び出して、clean roomのデフォルトリリースディレクティブを指定します。

注釈

プロバイダーにデフォルトのリリースディレクティブをセットする必要があるのは、コードでclean roomを作成または変更するときのみです。ウェブアプリケーションを使用する場合は、バージョン管理が自動的に処理されます。

プロバイダーの呼び出しが比較的少なければ、新しいclean roomバージョンが生成されるかもしれません。セキュリティスキャンにパスした場合のみ、Snowflakeは新しいバージョンを生成します。したがって、デフォルトのリリースディレクティブを更新する前に、 provider.view_cleanrooom_scan_status を呼び出して、clean roomのセキュリティスキャンのステータスをチェックする必要があります。デフォルトのリリースディレクティブを更新しなくてもエラーにはなりませんが、更新しなければ、変更後の新しいバージョンがユーザーに提供されません。

このSnowflakeアカウントで作成されたすべてのclean roomパッケージ(clean room)のリストを表示します:

SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Copy

clean room MY_FIRST_CLEANROOMのすべてのバージョンのリストを表示します:

SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Copy

clean roomを最初に公開する前に、必ずデフォルトのリリースディレクティブをセットする必要があります。Python コードを追加していない場合は、V1.0.0 にしてください:

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

clean roomを外部化した場合、またはステータスをチェックしてから、バージョンをセットしてください:

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