マルチステップワークフローでの内部テーブルの使用¶
概要¶
多くのクリーンルームのユースケースには、クリーンルームの1つ以上のテーブルに対する単一の SQL クエリの実行、応答での結果の表示などがあります。ただし、マルチステップワークフローをサポートするために、後続のテンプレート内で使用できる内部テーブルを作成する必要があるユースケースがあります。たとえば、機械学習フローがそうです。モデルはデータセットに対して1回トレーニングされ、その後、単一またはバッチで、さまざまな入力データに対して複数回実行されます。
内部テーブルの作成¶
中間結果を格納するためにクリーンルーム内に内部テーブルを作成したり、下流で使用するための永続的なストレージとして(たとえば、複数の実行に使用されるトレーニングデータを保存するために)作成したりできます。以下の内部テーブルのプロパティとガイダンスをご参照ください。
CREATE TABLE を実行するクリーンルームテンプレートを使用して、またはPythonを使用してテーブルを作成する UDF/UDTF を実行して内部テーブルを作成できます。
内部テーブルは
cleanroomスキーマで作成でき、デフォルトで使用可能です。カスタムスキーマが好ましい場合は、テーブルを作成する前に、まずスキーマを作成する必要があります。デフォルトでは、内部テーブルはクリーンルームの承認されたテンプレートによってのみアクセスできます。テンプレートの外部でアクセスを提供する必要がある場合は、クリーンルームの CLEANROOM_PUBLIC_ROLE アプリケーションロールに、対応する権限を付与する必要があります。たとえば、次のような付与が可能です。
GRANT SELECT ON TABLE CLEANROOM.MY_TABLE TO APPLICATION ROLE CLEANROOM_PUBLIC_ROLE;適切なアクセス権があれば、コラボレーションの内部テーブルを一覧表示することができます。内部テーブルは
SFDCR_collaboration_name.cleanroomにあり、次の SQL コードを実行することで一覧表示できます。SHOW TABLES IN SCHEMA SFDCR_collaboration_name.CLEANROOM;コラボレーションが削除されると、内部テーブルは削除されます。ただし、内部テーブルの有効期間がコラボレーションよりも短く設計されている場合は、不要になったテーブルを削除することを検討してください。
以下は内部テーブルの作成例です:
JinjaSQL テンプレートは内部テーブルを作成できます。これは一部のタイプの アクティベーション で行われます。
このテンプレート例は、テーブルを作成し、テーブル名を返します。これにより、名前を他のテンプレートにパラメーターとして渡すことができます。
UDF は内部テーブルを作成できます。これには通常、Pythonで SQL が実行されます。