|sf-cli|を使用したDCMプロジェクトの管理

|sf-cli|を使用して|dcmp|を管理できます。DCMプロジェクトについて詳しくは、:doc:`/user-guide/dcm-projects/dcm-projects-overview`をご参照ください。

DCM project 機能を使用して Snowflake CLI をインストールする

snow dcm`コマンドを使用するには、|sf-cli|バージョン3.16.0以降をインストールする必要があります。詳細については、 :doc:/developer-guide/snowflake-cli/installation/installation` をご参照ください。

Snowflakeへの有効な接続があることを確認する

Snowflake CLI には、Snowflakeとやり取りするための有効な接続が必要です。接続の管理については、 Snowflake CLI の構成 をご参照ください。

|sf-cli|でDCMコマンドを有効にする

DCMコマンドを使用するには、以下のいずれかの方法で:codenowrap:`SNOWFLAKE_CLI_FEATURES_ENABLE_SNOWFLAKE_PROJECTS`機能フラグを有効にする必要があります。

  • コマンドを実行する前に、環境変数:codenowrap:`SNOWFLAKE_CLI_FEATURES_ENABLE_SNOWFLAKE_PROJECTS`を:codenowrap:`true`に設定する。

  • 以下の例に示すように、:file:`config.toml`ファイル内の:codenowrap:`enable_snowflake_projects`設定オプションを:codenowrap:`true`に設定する。

    [cli.features]
    enable_snowflake_projects = true
    

テンプレートから|dcmp|を初期化する

  • テンプレートから|dcmp|を初期化するには、:codenowrap:`snow init`コマンドを使用します。

    snow init <project_dir_name> --template dcm_project
    

    :codenowrap:`<project_dir_name>`は、|dcmp|ファイルを格納するディレクトリです。このディレクトリは:codenowrap:`snow init`コマンドによって作成され、指定したテンプレートから生成されたプロジェクトファイルが格納されます。

    たとえば、次のコマンドは:codenowrap:`MY_PROJECT`ディレクトリにプロジェクトファイルを作成します。

    snow init MY_PROJECT --template dcm_project
    

Snowflake CLI コマンド

|sdps|をサポートするために、|sf-cli|には以下のコマンドが追加されました。

|dcmps|の作成とデプロイ

このセクションでは、|sf-cli|を使用して|dcmps|を作成、検証、およびデプロイする方法について説明します。

DCM project の作成

Snowflakeで新しい|dcmp|を作成するには、:codenowrap:`snow dcm create`コマンドを使用します。プロジェクト識別子は、引数として直接指定することも、:file:`manifest.yml`ファイルから解決することもできます。

  • マニフェストで指定されたデフォルトターゲットの識別子を使用してプロジェクトを作成します。

    snow dcm create
    
  • マニフェストで指定された``dev``ターゲットの識別子を使用してプロジェクトを作成します。

    snow dcm create --target dev
    
  • プロジェクトがまだ存在しない場合にのみ作成します。

    snow dcm create --if-not-exists
    

詳細については、 snow dcm create をご参照ください。

|dcmp|の計画

プロジェクトをデプロイ前に検証するには、:codenowrap:`snow dcm plan`コマンドを使用します。このコマンドは、実際に変更を行わずに、適用される変更を表示します。

  • プロジェクトを検証します。

    snow dcm plan
    
  • 変数置換を使用して検証します。

    snow dcm plan -D "db_name=my_database" -D "schema_name=my_schema"
    
  • 特定のターゲットプロファイルを使用して検証し、出力を保存します。

    snow dcm plan --target dev --save-output
    

    :codenowrap:`--save-output`を使用する場合、コマンドの応答とアーティファクトはローカルの:file:`out/`ディレクトリに保存されます。

詳細については、 snow dcm plan をご参照ください。

|dcmp|のデプロイ

|dcmp|で定義された変更をSnowflakeに適用するには、:codenowrap:`snow dcm deploy`コマンドを使用します。

  • プロジェクトをデプロイします。

    snow dcm deploy
    
  • 変数置換を使用してデプロイします。

    snow dcm deploy -D "table_name='MY_DB.PUBLIC.MY_TABLE'"
    
  • デプロイメントのエイリアスを使用してデプロイします。

    snow dcm deploy --alias v1.0
    
  • ターゲットプロファイルを使用して、特定のディレクトリからデプロイします。

    snow dcm deploy --from /path/to/project --target prod
    

詳細については、 snow dcm deploy をご参照ください。

|dcmp|のプレビュー

:codenowrap:`snow dcm preview`コマンドを使用すると、プロジェクトで定義された任意のテーブル、ビュー、または動的テーブルから行が返されます。このコマンドは、デプロイ前またはデプロイ後に定義をテストするのに役立ちます。

  • テーブルからデータをプレビューします。

    snow dcm preview --object MY_DB.PUBLIC.MY_TABLE
    
  • 行を制限してプレビューします。

    snow dcm preview --object MY_DB.PUBLIC.MY_VIEW --limit 10
    
  • 変数置換を使用してプレビューします。

    snow dcm preview --object MY_DB.PUBLIC.MY_VIEW -D "filter_date='2024-01-01'"
    

詳細については、 snow dcm preview をご参照ください。

DCM project をテストする

:codenowrap:`snow dcm test`コマンドを使用すると、プロジェクトで定義されたすべての期待値(データメトリック関数)を実行できます。このコマンドはデータ品質ルールを検証し、合格/不合格の結果を返します。

  • プロジェクトをテストします。

    snow dcm test
    
  • ターゲットプロファイルを使用してテストします。

    snow dcm test --target dev
    
  • テストを実行して結果を保存します。

    snow dcm test --save-output
    

すべてのテストが合格した場合は終了コード0、いずれかのテストが失敗した場合は終了コード1が返されます。

詳細については、 snow dcm test をご参照ください。

|dcmp|のリフレッシュ

:codenowrap:`snow dcm refresh`コマンドを使用すると、|dcmp|で定義されているすべての動的テーブルをリフレッシュできます。これにより、データの即時リフレッシュがトリガーされます。

  • プロジェクト内の動的テーブルをリフレッシュします。

    snow dcm refresh
    
  • ターゲットプロファイルを使用してリフレッシュします。

    snow dcm refresh --target prod
    
  • 出力をリフレッシュして保存します。

    snow dcm refresh --save-output
    

このコマンドは、挿入および削除された行数を含む、各動的テーブルのステータスをレポートします。

詳細については、 snow dcm refresh をご参照ください。

|dcmp|のドロップ

:codenowrap:`snow dcm drop`コマンドを使用すると、|dcmp|をドロップできます。このコマンドは、プロジェクトとそのすべてのバージョンを削除します。プロジェクトに関連付けられたステージは削除されません。

  • プロジェクトをドロップします。

    snow dcm drop
    
  • プロジェクトが存在する場合のみドロップします。

    snow dcm drop --if-exists
    

詳細については、 snow dcm drop をご参照ください。

デプロイ済み|dcmps|の管理

|dcmp|をデプロイした後は、個々のデプロイメントを一覧表示して管理できます。

デプロイ済み|dcmps|の一覧表示

:codenowrap:`snow dcm list-deployments`コマンドを使用すると、指定した|dcmp|のすべてのデプロイメントを一覧表示できます。

  • プロジェクトのデプロイメントを一覧表示します。

    snow dcm list-deployments
    
  • ターゲットプロファイルを使用してデプロイメントを一覧表示します。

    snow dcm list-deployments --target dev
    

出力には、各デプロイメントのデプロイメント名とエイリアス(設定されている場合)が表示されます。

詳細については、 snow dcm list-deployments をご参照ください。

デプロイ済み|dcmps|のドロップ

:codenowrap:`snow dcm drop-deployment`コマンドを使用すると、|dcmp|から特定のデプロイメントをドロップできます。

  • 名前を指定してデプロイメントをドロップします。

    snow dcm drop-deployment --deployment 'DEPLOYMENT$1'
    

    注釈

    :codenowrap:`$`を含むデプロイメント名の場合は、シェル展開を防ぐために一重引用符を使用してください。

  • エイリアスを指定してデプロイメントをドロップします。

    snow dcm drop-deployment --deployment v1.0
    
  • デプロイメントが存在する場合のみドロップします。

    snow dcm drop-deployment --deployment v1.0 --if-exists
    

詳細については、 snow dcm drop-deployment をご参照ください。