モデルの削除

このページでは、BigQuery ML モデルを削除する方法を説明します。以下の方法でモデルを削除できます。

  • Google Cloud コンソールの使用
  • bq コマンドライン ツールの bq rm コマンドまたは bq query コマンドを使用する
  • models.delete API メソッドか、jobs.query メソッドを呼び出す
  • クライアント ライブラリを使用する

一度に削除できるモデルは 1 つだけです。モデルを削除すると、モデル内のデータもすべて削除されます。

指定した期間の経過後にモデルを自動的に削除するには、モデルを作成する際、bq コマンドライン ツール、API、またはクライアント ライブラリを使用してモデルの有効期限を設定します。モデルの作成時に有効期限を設定していない場合は、モデルの有効期限を更新します。

モデル削除の制限

モデルの削除には、次の制限があります。

  • 同時に複数のモデルを削除することはできません。1 つずつ削除する必要があります。
  • 削除したモデルは、復元できません。

必要な権限

データセット内のモデルを削除するには、データセットに対する WRITER ロールが割り当てられているか、bigquery.models.delete 権限を含むプロジェクト レベルの Identity and Access Management(IAM)ロールが割り当てられている必要があります。プロジェクト レベルで bigquery.models.delete 権限が付与されている場合は、プロジェクト内の任意のデータセット内のモデルを削除できます。次のプロジェクト レベルの IAM ロールには、bigquery.models.delete 権限が含まれます。

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

BigQuery ML での IAM ロールと権限の詳細については、アクセス制御をご覧ください。

モデルを削除する

モデルを削除するには、次のようにします。

コンソール

Google Cloud コンソールでモデルを削除するには、[モデルを削除] オプションを使用するか、DROP MODEL | DROP MODEL IF EXISTS DDL ステートメントを含むクエリを実行します。

オプション 1: [モデルを削除] オプションを使用する

  1. 左側のペインで、 [エクスプローラ] をクリックします。

    エクスプローラ ペインのボタンがハイライト表示されている。

    左側のペインが表示されていない場合は、 左側のペインを開くをクリックしてペインを開きます。

  2. [エクスプローラ] ペインで、プロジェクトを開き、[データセット] をクリックして、データセットをクリックします。

  3. [モデル] タブをクリックし、モデル名をクリックしてモデルを選択します。

  4. モデルのオプション アイコン をクリックし、[削除] をクリックします。

  5. [モデルを削除] ダイアログで delete と入力し、[削除] をクリックします。

オプション 2: DDL ステートメントを使用する

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    [BigQuery] ページに移動

  2. [クエリを新規作成] をクリックします。

  3. [クエリエディタ] テキスト領域に DDL ステートメントを入力します。

     DROP MODEL mydataset.mymodel

  4. [実行] をクリックします。クエリが完了すると、モデルがナビゲーション パネルから削除されます。

bq

次のように入力すると、bq コマンドライン ツールを使用してモデルを削除できます。

  • --model または -m フラグを指定した bq rm コマンド
  • DDL ステートメントをクエリ パラメータとして使用する bq query コマンド

削除するモデルがデフォルト プロジェクト以外のプロジェクトにある場合は、[PROJECT_ID]:[DATASET].[MODEL] の形式でプロジェクト ID をデータセットに追加します。

オプション 1: bq rm コマンドを入力する

bq rm コマンドでモデルを削除する場合、アクションを確認する必要があります。--force flag(または -f ショートカット)を使用すると、確認をスキップできます。

 bq rm -f --model PROJECT_ID:DATASET.MODEL 

次のように置き換えます。

  • PROJECT_ID は、プロジェクト ID です。
  • DATASET はデータセットの名前です。
  • MODEL はモデルの名前です。

rm コマンドは出力を生成しません。

例:

mymodelmydataset から削除するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトにあります。

bq rm --model mydataset.mymodel 

mymodelmydataset から削除するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトではなく myotherproject にあります。

bq rm --model myotherproject:mydataset.mymodel 

mymodelmydataset から削除するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトにあります。このコマンドでは -f ショートカットを使用しているため、確認は省略されます。

bq rm -f --model mydataset.mymodel 

モデルが削除されたことを確認するには、bq ls コマンドを実行します。詳細については、モデルの一覧表示をご覧ください。

オプション 2: bq query コマンドを入力する

bq query コマンドを使用してモデルを削除するには、クエリ パラメータに DROP MODEL ステートメントを指定し、--use_legacy_sql=false フラグを指定して GoogleSQL クエリ構文を指定します。

例:

mymodelmydataset から削除するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトにあります。

bq query --use_legacy_sql=false 'DROP MODEL mydataset.mymodel' 

mymodelmydataset から削除するには、次のコマンドを入力します。mydataset はデフォルト プロジェクトではなく myotherproject にあります。

bq query --use_legacy_sql=false \ 'DROP MODEL myotherproject:mydataset.mymodel' 

API

オプション 1: models.delete メソッドを呼び出す

モデルを削除するには、models.delete メソッドを呼び出して、projectIddatasetId、および modelId を指定します。

オプション 2: jobs.query メソッドを呼び出す

モデルを削除するには、jobs.query メソッドを呼び出し、リクエスト本文のクエリ プロパティで DROP MODEL DDL ステートメントを指定します。

Go

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Go の設定手順を完了してください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import ( 	"context" 	"fmt"  	"cloud.google.com/go/bigquery" )  // deleteModel demonstrates deletion of BigQuery ML model. func deleteModel(projectID, datasetID, modelID string) error { 	// projectID := "my-project-id" 	// datasetID := "mydataset" 	// modelID := "mymodel" 	ctx := context.Background() 	client, err := bigquery.NewClient(ctx, projectID) 	if err != nil { 		return fmt.Errorf("bigquery.NewClient: %w", err) 	} 	defer client.Close()  	model := client.Dataset(datasetID).Model(modelID) 	if err := model.Delete(ctx); err != nil { 		return fmt.Errorf("couldn't delete model: %w", err) 	} 	return nil } 

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.ModelId;  // Sample to delete a model public class DeleteModel {    public static void main(String[] args) {     // TODO(developer): Replace these variables before running the sample.     String datasetName = "MY_DATASET_NAME";     String modelName = "MY_MODEL_NAME";     deleteModel(datasetName, modelName);   }    public static void deleteModel(String datasetName, String modelName) {     try {       // Initialize client that will be used to send requests. This client only needs to be created       // once, and can be reused for multiple requests.       BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();       boolean success = bigquery.delete(ModelId.of(datasetName, modelName));       if (success) {         System.out.println("Model deleted successfully");       } else {         System.out.println("Model was not found");       }     } catch (BigQueryException e) {       System.out.println("Model was not deleted. \n" + e.toString());     }   } }

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Node.js の設定手順を完了してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

// Import the Google Cloud client library const {BigQuery} = require('@google-cloud/bigquery'); const bigquery = new BigQuery();  async function deleteModel() {   // Deletes a model named "my_model" from "my_dataset".    /**    * TODO(developer): Uncomment the following lines before running the sample    */   // const datasetId = "my_dataset";   // const modelId = "my_model";    const dataset = bigquery.dataset(datasetId);   const model = dataset.model(modelId);   await model.delete();    console.log(`Model ${modelId} deleted.`); }

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Python の設定手順を完了してください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

 from google.cloud import bigquery  # Construct a BigQuery client object. client = bigquery.Client()  # TODO(developer): Set model_id to the ID of the model to fetch. # model_id = 'your-project.your_dataset.your_model'  client.delete_model(model_id)  # Make an API request.  print("Deleted model '{}'.".format(model_id))

削除したモデルを復元する

削除したモデルは、復元できません。

次のステップ