Mendapatkan metadata model

Halaman ini menunjukkan cara mendapatkan informasi atau metadata tentang model BigQuery ML. Anda bisa mendapatkan metadata model dengan:

  • Menggunakan konsol Google Cloud
  • Menggunakan perintah CLI bq show
  • Memanggil metode API models.get secara langsung atau dengan menggunakan library klien

Izin yang diperlukan

Untuk mendapatkan metadata model, Anda harus diberi peran READER pada set data, atau Anda harus diberi peran Identity and Access Management (IAM) level project yang mencakup izin bigquery.models.getMetadata. Jika Anda diberi izin bigquery.models.getMetadata di level project, Anda bisa mendapatkan metadata pada model di set data mana pun dalam project. Peran IAM yang telah ditetapkan sebelumnya dan level project berikut mencakup izin bigquery.models.getMetadata:

  • bigquery.dataViewer
  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.metadataViewer
  • bigquery.admin

Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery ML, lihat Kontrol akses.

Mendapatkan metadata model

Untuk mendapatkan metadata tentang model:

Konsol

  1. Di panel Explorer, luaskan project Anda, lalu luaskan set data.

  2. Luaskan folder Models dalam set data, lalu klik nama model untuk memilih model.

  3. Klik tab Detail. Tab ini menampilkan metadata model, termasuk deskripsi, label, jenis model, dan opsi pelatihan.

bq

Berikan perintah bq show dengan flag --model atau -m untuk menampilkan metadata model. Flag --format dapat digunakan untuk mengontrol output.

Untuk melihat kolom fitur saja untuk model Anda, gunakan flag --schema dengan flag --model. Saat Anda menggunakan flag --schema, --format harus ditetapkan ke json atau prettyjson.

Jika Anda mendapatkan informasi tentang model dalam project selain project default Anda, tambahkan project ID ke set data dalam format berikut: [PROJECT_ID]:[DATASET].

bq show --model --format=prettyjson PROJECT_ID:DATASET.MODEL

Ganti kode berikut:

  • PROJECT_ID adalah project ID Anda.
  • DATASET adalah nama set data.
  • MODEL adalah nama model.

Output perintah terlihat seperti berikut saat flag --format=pretty digunakan. Untuk melihat detail selengkapnya, gunakan format --format=prettyjson. Contoh output menunjukkan metadata untuk model regresi logistik.

+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+
|      Id      |     Model Type      |   Feature Columns   |       Label Columns       | Labels |  Creation Time  | Expiration Time |
+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+
| sample_model | LOGISTIC_REGRESSION | |- column1: string  | |- label_column: int64    |        | 03 May 23:14:42 |                 |
|              |                     | |- column2: bool    |                           |        |                 |                 |
|              |                     | |- column3: string  |                           |        |                 |                 |
|              |                     | |- column4: int64   |                           |        |                 |                 |
+--------------+---------------------+---------------------+---------------------------+--------+-----------------+-----------------+

Contoh:

Masukkan perintah berikut untuk menampilkan semua informasi tentang mymodel di mydataset. mydataset ada dalam project default Anda.

bq show --model --format=prettyjson mydataset.mymodel

Masukkan perintah berikut untuk menampilkan semua informasi tentang mymodel di mydataset. mydataset ada di myotherproject, bukan di project default Anda.

bq show --model --format=prettyjson myotherproject:mydataset.mymodel

Masukkan perintah berikut untuk hanya menampilkan kolom fitur untuk mymodel di mydataset. mydataset ada di myotherproject, bukan di project default Anda.

bq show --model --schema --format=prettyjson \
myotherproject:mydataset.mymodel

API

Untuk mendapatkan metadata model menggunakan API, panggil metode models.get dan sediakan projectId, datasetId, dan modelId.

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
)

// printModelInfo demonstrates fetching metadata about a BigQuery ML model and printing some of
// it to an io.Writer.
func printModelInfo(w io.Writer, 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()

	meta, err := client.Dataset(datasetID).Model(modelID).Metadata(ctx)
	if err != nil {
		return fmt.Errorf("couldn't retrieve metadata: %w", err)
	}
	fmt.Fprintf(w, "Got model '%q' with friendly name '%q'\n", modelID, meta.Name)
	return nil
}

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Model;
import com.google.cloud.bigquery.ModelId;

public class GetModel {

  public static void runGetModel() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String modelName = "MY_MODEL_ID";
    getModel(datasetName, modelName);
  }

  public static void getModel(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();

      ModelId modelId = ModelId.of(datasetName, modelName);
      Model model = bigquery.getModel(modelId);
      System.out.println("Model: " + model.getDescription());

      System.out.println("Successfully retrieved model");
    } catch (BigQueryException e) {
      System.out.println("Cannot retrieve model \n" + e.toString());
    }
  }
}

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function getModel() {
  // Retrieves model named "my_existing_model" in "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample
   */
  // const datasetId = "my_dataset";
  // const modelId = "my_existing_model";

  const dataset = bigquery.dataset(datasetId);
  const [model] = await dataset.model(modelId).get();

  console.log('Model:');
  console.log(model.metadata.modelReference);
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.


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'

model = client.get_model(model_id)  # Make an API request.

full_model_id = "{}.{}.{}".format(model.project, model.dataset_id, model.model_id)
friendly_name = model.friendly_name
print(
    "Got model '{}' with friendly_name '{}'.".format(full_model_id, friendly_name)
)

Langkah selanjutnya