モデルの削除

このページでは、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. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] ページに移動

  2. ナビゲーション パネルの [リソース] セクションで、プロジェクト名とデータセット名を展開します。

  3. モデル名をクリックします。モデルにはモデルアイコン モデルアイコン がついています。

  4. ウィンドウの右側にある [モデルを削除] をクリックします。

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

オプション 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))

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

現在、削除したモデルを復元することはできません。

次のステップ