מחיקת מודלים

בדף הזה מוסבר איך למחוק מודלים של BigQuery ML. כדי למחוק מודל:

  • שימוש במסוף Google Cloud
  • שימוש בפקודה bq rm או בפקודה bq query של כלי שורת הפקודה של BigQuery
  • קריאה ל-API method ‏models.delete או קריאה ל-method ‏jobs.query
  • שימוש בספריות הלקוח

אפשר למחוק רק מודל אחד בכל פעם. כשמוחקים מודל, נמחקים גם כל הנתונים במודל.

כדי למחוק מודלים באופן אוטומטי אחרי פרק זמן מסוים, צריך להגדיר את זמן התפוגה של המודל כשיוצרים אותו באמצעות כלי שורת הפקודה של BigQuery, ה-API או ספריות הלקוח. אם לא הגדרתם תאריך תפוגה כשנוצר המודל, אתם יכולים לעדכן את תאריך התפוגה של המודל.

מגבלות על מחיקת מודלים

אלה המגבלות שחלות על מחיקת מודל:

  • אי אפשר למחוק כמה מודלים בו-זמנית. צריך למחוק אותם בנפרד.
  • אי אפשר לשחזר מודל שנמחק.

ההרשאות הנדרשות

כדי למחוק מודלים במערך נתונים, צריך להקצות לכם את התפקיד WRITER במערך הנתונים, או להקצות לכם תפקיד לניהול זהויות והרשאות גישה (IAM) ברמת הפרויקט שכולל את ההרשאות bigquery.models.delete. אם קיבלתם bigquery.models.deleteהרשאות ברמת הפרויקט, אתם יכולים למחוק מודלים בכל מערך נתונים בפרויקט. תפקידי ה-IAM הבאים ברמת הפרויקט כוללים את ההרשאות bigquery.models.delete:

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

במאמר בקרת גישה מוסבר בהרחבה איך מנהלים את התפקידים וההרשאות ב-IAM ב-BigQuery ML.

מחיקת מודל

כדי למחוק מודל:

המסוף

אפשר למחוק מודל במסוף Google Cloud באמצעות האפשרות מחיקת מודל או באמצעות הפעלת שאילתה שמכילה הצהרת DDL‏ DROP MODEL | DROP MODEL IF EXISTS.

אפשרות ראשונה: משתמשים באפשרות מחיקת המודל.

  1. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  2. בחלונית Explorer מרחיבים את הפרויקט, לוחצים על Datasets ואז על מערך הנתונים.

  3. לוחצים על הכרטיסייה מודלים ואז על שם של מודל כדי לבחור אותו.

  4. לוחצים על סמל האפשרויות הנוספות ליד המודל ואז על מחיקה.

  5. בתיבת הדו-שיח מחיקת מודל, מקלידים delete ולוחצים על מחיקה.

אפשרות שנייה: שימוש בהצהרת DDL.

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    לדף BigQuery

  2. לוחצים על Compose new query (כתיבת שאילתה חדשה).

  3. מקלידים את הצהרת ה-DDL באזור הטקסט של עורך השאילתות.

     DROP MODEL mydataset.mymodel

  4. לוחצים על Run. כשהשאילתה מסתיימת, המודל מוסר מחלונית הניווט.

BQ

כדי למחוק מודל באמצעות כלי שורת הפקודה של BigQuery, מזינים את:

  • הפקודה bq rm עם הדגל --model או -m
  • פקודת bq query עם הצהרת ה-DDL כפרמטר של השאילתה

אם אתם מוחקים מודל בפרויקט שאינו פרויקט ברירת המחדל שלכם, צריך להוסיף את מזהה הפרויקט למערך הנתונים בפורמט הבא: [PROJECT_ID]:[DATASET].[MODEL].

אפשרות ראשונה: מזינים את הפקודה bq rm

כשמשתמשים בפקודה bq rm כדי להסיר מודל, צריך לאשר את הפעולה. אפשר להשתמש במקש --force flag (או במקשי הקיצור -f) כדי לדלג על האישור.

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID הוא מזהה הפרויקט.
  • DATASET הוא שם מערך הנתונים.
  • MODEL הוא שם המודל.

הפקודה rm לא מפיקה פלט.

דוגמאות:

מזינים את הפקודה הבאה כדי למחוק את mymodel מ-mydataset. ‫mydataset נמצא בפרויקט ברירת המחדל שלכם.

bq rm --model mydataset.mymodel

מזינים את הפקודה הבאה כדי למחוק את mymodel מ-mydataset. mydataset נמצא ב-myotherproject, ולא בפרויקט ברירת המחדל שלכם.

bq rm --model myotherproject:mydataset.mymodel

מזינים את הפקודה הבאה כדי למחוק את mymodel מ-mydataset. ‫mydataset נמצא בפרויקט ברירת המחדל שלכם. הפקודה משתמשת בקיצור הדרך -f כדי לדלג על האישור.

bq rm -f --model mydataset.mymodel

כדי לוודא שהמודל נמחק, מריצים את הפקודה bq ls. מידע נוסף זמין במאמר בנושא רשימת מודלים.

אפשרות שנייה: מזינים את הפקודה bq query

כדי למחוק מודל באמצעות הפקודה bq query, צריך לספק את ההצהרה DROP MODEL בפרמטר השאילתה ואת הדגל --use_legacy_sql=false כדי לציין את תחביר השאילתה של GoogleSQL.

דוגמאות:

מזינים את הפקודה הבאה כדי למחוק את mymodel מ-mydataset. ‫mydataset נמצא בפרויקט ברירת המחדל שלכם.

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

מזינים את הפקודה הבאה כדי למחוק את mymodel מ-mydataset. mydataset נמצא ב-myotherproject, ולא בפרויקט ברירת המחדל שלכם.

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

API

אפשרות ראשונה: קריאה ל-models.delete

כדי למחוק מודל, צריך לבצע קריאה ל-method‏ models.delete ולספק את הערכים projectId, datasetId ו-modelId.

אפשרות שנייה: קריאה ל-jobs.query

כדי למחוק מודל, מבצעים קריאה ל-method‏ jobs.query ומספקים את הצהרת ה-DDL‏ DROP MODEL במאפיין query של גוף הבקשה.

Go

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

// 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

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


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))

שחזור מודל שנמחק

אי אפשר לשחזר מודל שנמחק.

המאמרים הבאים