모델 삭제

이 페이지에서는 BigQuery ML 모델을 삭제하는 방법을 설명합니다. 다음 방법을 사용하여 모델을 삭제할 수 있습니다.

  • Google Cloud 콘솔 사용
  • bq 명령줄 도구의 bq rm 명령어 또는 bq query 명령어 사용
  • models.delete API 메서드 호출 또는 jobs.query 메서드 호출
  • 클라이언트 라이브러리 사용

한 번에 하나의 모델만 삭제할 수 있습니다. 모델을 삭제하면 모델에 포함된 데이터도 모두 삭제됩니다.

지정된 기간이 경과한 후 모델을 자동으로 삭제하려면 bq 명령줄 도구, API 또는 클라이언트 라이브러리를 사용하여 모델을 만들 때 모델의 만료 시간을 설정합니다. 모델을 만들 때 만료 시간을 설정하지 않았으면 모델 만료 시간을 업데이트하면 됩니다.

모델 삭제 제한사항

모델을 삭제하는 경우 다음과 같은 제한사항이 있습니다.

  • 여러 모델을 동시에 삭제할 수 없습니다. 개별적으로 삭제해야 합니다.
  • 삭제된 모델은 복원할 수 없습니다.

필수 권한

데이터 세트의 모델을 삭제하려면 데이터 세트에 대한 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 역할과 권한에 대한 자세한 내용은 액세스 제어를 참조하세요.

모델 삭제

모델을 삭제하려면 다음 단계를 따르세요.

콘솔

모델 삭제 옵션을 사용하거나 DROP MODEL | DROP MODEL IF EXISTS DDL 문이 포함된 쿼리를 실행하여 Google Cloud 콘솔에서 모델을 삭제할 수 있습니다.

옵션 1: 모델 삭제 옵션 사용

  1. 탐색기 창에서 프로젝트를 펼친 다음 데이터 세트를 펼칩니다.

  2. 데이터 세트에서 Models 폴더를 펼친 다음 모델 이름을 클릭하여 모델을 선택합니다.

  3. 모델의 옵션 아이콘 을 클릭한 다음 삭제를 클릭합니다.

  4. 모델 삭제 대화상자에서 delete를 입력한 후 삭제를 클릭합니다.

옵션 2: DDL 문 사용

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery 페이지로 이동

  2. 새 쿼리 작성을 클릭합니다.

  3. 쿼리 편집기 텍스트 영역에 DDL 문을 입력합니다.

     DROP MODEL mydataset.mymodel

  4. 실행을 클릭합니다. 쿼리가 완료되면 탐색창에서 모델이 삭제됩니다.

bq

다음 명령어를 입력하여 bq 명령줄 도구로 모델을 삭제할 수 있습니다.

  • bq rm 명령어(--model 또는 -m 플래그와 함께 사용)
  • bq query 명령어(DDL 문을 쿼리 매개변수로 함께 사용)

기본 프로젝트가 아닌 다른 프로젝트에서 프로젝트를 삭제하는 경우 프로젝트 ID를 [PROJECT_ID]:[DATASET].[MODEL] 형식으로 데이터 세트에 추가합니다.

옵션 1: bq rm 명령어 입력

bq rm 명령어를 사용하여 모델을 삭제할 때는 작업을 확인해야 합니다. --force flag(또는 -f 단축키)를 사용하면 확인 절차를 건너뛸 수 있습니다.

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

다음을 바꿉니다.

  • PROJECT_ID는 프로젝트 ID입니다.
  • DATASET: 데이터 세트 이름
  • MODEL은 모델 이름입니다.

rm 명령어는 출력을 생성하지 않습니다.

예:

다음 명령어를 입력하면 mydataset에서 mymodel가 삭제됩니다. mydataset는 기본 프로젝트에 있습니다.

bq rm --model mydataset.mymodel

다음 명령어를 입력하면 mydataset에서 mymodel가 삭제됩니다. mydataset는 기본 프로젝트가 아닌 myotherproject에 있습니다.

bq rm --model myotherproject:mydataset.mymodel

다음 명령어를 입력하면 mydataset에서 mymodel가 삭제됩니다. mydataset는 기본 프로젝트에 있습니다. 이 명령어는 -f 단축키를 사용하여 확인을 건너뜁니다.

bq rm -f --model mydataset.mymodel

bq ls 명령어를 실행하면 모델이 삭제되었는지 확인할 수 있습니다. 자세한 내용은 모델 나열을 참조하세요.

옵션 2: bq query 명령어 입력

bq query 명령어를 사용하여 모델을 삭제하려면 쿼리 매개변수에 DROP MODEL 문을 제공하고 --use_legacy_sql=false 플래그를 제공하여 GoogleSQL 쿼리 구문을 지정합니다.

예:

다음 명령어를 입력하면 mydataset에서 mymodel가 삭제됩니다. mydataset는 기본 프로젝트에 있습니다.

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

다음 명령어를 입력하면 mydataset에서 mymodel가 삭제됩니다. mydataset는 기본 프로젝트가 아닌 myotherproject에 있습니다.

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

API

옵션 1: models.delete 메서드 호출

모델을 삭제하려면 models.delete 메서드를 호출하고 projectId, datasetId, 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
}

자바

이 샘플을 사용해 보기 전에 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))

삭제된 모델 복원

삭제된 모델은 복원할 수 없습니다.

다음 단계