|dcm|でサポートされているオブジェクト型¶
DEFINEステートメントは、|dcm-object|定義ファイルでのみ使用される特別なコマンドです。その構文は:doc:`CREATE OR ALTER </sql-reference/sql/create-or-alter>`コマンドと似ていますが、次の重要な違いがあります。
DEFINEステートメントの順序とロケーションは関係ありません。Snowflakeは、プロジェクトの実行中に、すべての定義ファイルからすべてのステートメントを収集し、ソートします。
以前にデプロイされたDEFINEステートメントを削除すると、Snowflakeは次にプロジェクトをデプロイしたときに、対応するオブジェクトをドロップします。以前にデプロイされた後に削除されるGRANTおよびATTACHステートメントにも同じことが適用されます。
Snowflakeオブジェクト型のサブセットのみがサポートされています。
すべてのオブジェクトは完全修飾名(
database.schema.object_name)で定義する必要があります。他のオブジェクトへの参照は、完全修飾名でなければなりません。
次のオブジェクト型は、DEFINE、GRANT、またはATTACHステートメントを使用する|dcm|定義ファイルでネイティブにサポートされています。
データベース¶
🚫 サポートされていない変更:
`CREATE OR ALTERの制限<https://docs.snowflake.com/sql-reference/sql/create-database#create-or-alter-database-usage-notes>`_(データベースの名前変更を含む)
スキーマ¶
🚫 サポートされていない変更:
`CREATE OR ALTERの制限<https://docs.snowflake.com/en/sql-reference/sql/create-schema#create-or-alter-schema-usage-notes>`_(スキーマの名前変更を含む)
テーブル¶
🚫 サポートされていない変更:
`CREATE OR ALTERの制限<https://docs.snowflake.com/en/sql-reference/sql/create-table#create-or-alter-table-usage-notes>`_(次の操作を含む)
テーブルの名前変更
列の名前の変更
列の並べ替え
列の型から互換性のない型への変更
テーブルまたは列への検索最適化の追加
テーブルまたは列へのタグおよびポリシーの追加
動的テーブル¶
✅ サポートされている変更
フルリフレッシュなし
ウェアハウス
ターゲットラグ
再初期化またはフルリフレッシュを行う場合:
リフレッシュモード
以下を含む本体の変更:
列のドロップ
末尾への列の追加
⚠️ 不変の引数:
INITIALIZE
🚫 サポートされていない変更:
`CREATE OR ALTERの制限<https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table#create-or-alter-dynamic-table-usage-notes>`_(次の操作を含む)
列の並べ替え
動的テーブルの名前変更
ビュー¶
🚫 サポートされていない変更:
`CREATE OR ALTERの制限<https://docs.snowflake.com/en/sql-reference/sql/create-view#create-or-alter-view-usage-notes>`_(次の操作を含む)
ビューの名前変更
列の並べ替え
内部ステージ¶
✅ サポートされている変更
ディレクトリテーブル
コメント
⚠️ 不変の属性:
暗号化タイプ
ウェアハウス¶
⚠️ 不変の属性:
INITIALLY_SUSPENDED
ロールおよびデータベースロール¶
🚫 サポートされていない型:
アプリケーションロール
Grant¶
🚫 サポートされていないGRANT型:
APPLICATION ROLE付与
CALLER付与
データメトリック関数¶
データメトリック関数(DMFs)を使用すると、データ品質の期待値を定義し、その期待値をテーブルに添付できます。既存のシステムDMFsから選択するか、独自のユーザー定義データメトリック関数(UDMFs)を記述することができます。その後、多対多の関係でテーブル、ビュー、および動的テーブルにアタッチできます。詳細については、 SQLを使用したデータメトリック関数の設定 をご参照ください。
データメトリック関数をアタッチするには、まず各テーブル、動的テーブル、またはビューの定義に``DATA_METRIC_SCHEDULE``を追加する必要があります。例: DATA_METRIC_SCHEDULE = TRIGGER_ON_CHANGES。``TRIGGER_ON_CHANGES``スケジュールはビューでは使用できません。
期待値のユーザー定義名は、プロジェクトおよびアタッチメントごとに一意である必要があります。
テーブル列にDMFsをアタッチする場合、期待値の定義はオプションですが、推奨されます。期待値が設定されていないアタッチ済みのDMFsは、``EXECUTE DCM PROJECT <my_project> TEST ALL``の実行時に考慮されません。
✅ サポートされている変更
UDMFs(ユーザー定義データメトリック関数)の定義
|dcm-object|の内部および外部のテーブル、ビュー、または動的テーブルへのシステムDMFsおよびUDMFsのアタッチ
テーブル列のデータ期待値の定義
例:
UDMFを定義する例
期待値を持つシステムDMFのアタッチの例
期待値を持つUDMFのアタッチの例
利用可能なすべてのシステムDMFsを表示するには、``SHOW DATA METRIC FUNCTIONS IN DATABASE SNOWFLAKE``をクエリします。
タスク¶
既に開始されているタスクに定義の変更がデプロイされると、Snowflakeは自動的にそのタスク(またはそのルートタスク)を一時的に中断し、変更を適用してから、再開します。
新しくデプロイされたタスクは、デフォルトで一時停止されます。
🚫 サポートされていない変更:
CREATE OR ALTER TASKステートメントの制限詳細については、 CREATE TASK をご参照ください。
SQL 関数¶
🚫 サポートされていない変更:
CREATE OR ALTERステートメントの制限詳細については、 CREATE FUNCTION をご参照ください。
タグ¶
🚫 サポートされていない属性:
伝播