צפייה בתוויות

בדף הזה מוסבר איך לראות את התוויות במשאבי BigQuery.

אפשר לראות את התוויות לפי:

  • שימוש במסוף Google Cloud
  • שאילתות על INFORMATION_SCHEMA תצוגות
  • שימוש בפקודה bq show של כלי שורת הפקודה של bq
  • שליחת קריאה לשיטות datasets.get או tables.get של API
  • שימוש בספריות הלקוח

מכיוון שתצוגות נחשבות למשאבי טבלה, משתמשים בשיטה tables.get כדי לקבל מידע על תוויות גם לגבי תצוגות וגם לגבי טבלאות.

לפני שמתחילים

מקצים תפקידים של ניהול זהויות והרשאות גישה (IAM) שמעניקים למשתמשים את ההרשאות הדרושות לביצוע כל משימה שמופיעה במאמר הזה.

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

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

הרשאות לצפייה בפרטים של מערך נתונים

כדי לראות את פרטי מערך הנתונים, צריך הרשאת IAM מסוג bigquery.datasets.get.

כל אחד מהתפקידים המוגדרים מראש ב-IAM שמופיעים בהמשך כולל את ההרשאות שנדרשות כדי להציג את פרטי מערך הנתונים:

  • roles/bigquery.user
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer
  • roles/bigquery.dataOwner
  • roles/bigquery.dataEditor
  • roles/bigquery.admin

בנוסף, אם יש לכם הרשאת bigquery.datasets.create, אתם יכולים לראות את הפרטים של מערכי הנתונים שאתם יוצרים.

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

הרשאות לצפייה בטבלה או בפרטים

כדי להציג טבלה או פרטים של תצוגה, צריך את הרשאת IAM‏ bigquery.tables.get.

כל התפקידים המוגדרים מראש ב-IAM כוללים את ההרשאות שדרושות לכם כדי להציג טבלה או פרטים חוץ מ roles/bigquery.user ו-roles/bigquery.jobUser.

בנוסף, אם יש לכם הרשאת bigquery.datasets.create, אתם יכולים לראות את הפרטים של הטבלאות והתצוגות במערכי הנתונים שאתם יוצרים.

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

הרשאות לצפייה בפרטי המשרה

כדי לראות את פרטי המשימה, צריך את הרשאת bigquery.jobs.get IAM.

כל אחד מהתפקידים המוגדרים מראש ב-IAM שמופיעים בהמשך כולל את ההרשאות שנדרשות כדי להציג את פרטי המשימה:

  • roles/bigquery.admin (מאפשרת לכם לראות את הפרטים של כל העבודות בפרויקט)
  • roles/bigquery.user (מאפשרת לכם לראות את פרטי המשרות)
  • roles/bigquery.jobUser (מאפשרת לכם לראות את פרטי המשרות)

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

הצגת תוויות של מערך נתונים, טבלה ותצוגה

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

המסוף

  1. לגבי מערכי נתונים, דף הפרטים של מערך הנתונים נפתח באופן אוטומטי. כדי לפתוח את דף הפרטים של טבלאות ותצוגות, לוחצים על פרטים. פרטי התווית מופיעים בטבלת המידע של המשאב.

    פרטי הטבלה

SQL

אפשר להריץ שאילתה על התצוגה INFORMATION_SCHEMA.SCHEMATA_OPTIONS כדי לראות את התוויות במערך נתונים, או על התצוגה INFORMATION_SCHEMA.TABLE_OPTIONS כדי לראות את התוויות בטבלה. לדוגמה, שאילתת ה-SQL הבאה מחזירה את התוויות במערך הנתונים שנקרא mydataset:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      *
    FROM
      INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
      schema_name = 'mydataset'
      AND option_name = 'labels';

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

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

bq show --format=pretty [RESOURCE_ID]

כאשר [RESOURCE_ID] הוא מערך נתונים, טבלה, תצוגה או מזהה משימה תקינים.

דוגמאות:

מזינים את הפקודה הבאה כדי להציג את התוויות של mydataset בפרויקט ברירת המחדל:

bq show --format=pretty mydataset

הפלט אמור להיראות כך:

+-----------------+--------------------------------------------------------+---------------------+
|  Last modified  |                          ACLs                          |       Labels        |
+-----------------+--------------------------------------------------------+---------------------+
| 11 Jul 19:34:34 | Owners:                                                | department:shipping |
|                 |   projectOwners,                                       |                     |
|                 | Writers:                                               |                     |
|                 |   projectWriters                                       |                     |
|                 | Readers:                                               |                     |
|                 |   projectReaders                                       |                     |
+-----------------+--------------------------------------------------------+---------------------+

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

bq show --format=pretty myotherproject:mydataset.mytable

הפלט של טבלה מסודרת באשכולות אמור להיראות כך:

+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+
|  Last modified  |            Schema            | Total Rows | Total Bytes |   Expiration    |               Time Partitioning                | Clustered Fields | Labels  |
+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+
| 25 Jun 19:28:14 | |- timestamp: timestamp      | 0          | 0           | 25 Jul 19:28:14 | DAY (field: timestamp, expirationMs: 86400000) | customer_id      | org:dev |
|                 | |- customer_id: string       |            |             |                 |                                                |                  |         |
|                 | |- transaction_amount: float |            |             |                 |                                                |                  |         |
+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+

API

מבצעים קריאה ל-method‏ datasets.get או ל-method‏ tables.get. התשובה כוללת את כל התוויות שמשויכות למשאב הזה.

לחלופין, אפשר להשתמש ב-datasets.list כדי לראות את התוויות של כמה מערכי נתונים, או ב-tables.list כדי לראות את התוויות של כמה טבלאות ותצוגות.

מכיוון שהתצוגות נחשבות למשאבי טבלה, משתמשים בשיטות tables.get ו-tables.list כדי להציג מידע על תוויות גם בתצוגות וגם בטבלאות.

Go

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

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

import (
	"context"
	"fmt"
	"io"

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

// printDatasetLabels retrieves label metadata from a dataset and prints it to an io.Writer.
func printDatasetLabels(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	meta, err := client.Dataset(datasetID).Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "Dataset %s labels:\n", datasetID)
	if len(meta.Labels) == 0 {
		fmt.Fprintln(w, "Dataset has no labels defined.")
		return nil
	}
	for k, v := range meta.Labels {
		fmt.Fprintf(w, "\t%s:%s\n", k, v)
	}
	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.Dataset;

// Sample to get dataset labels
public class GetDatasetLabels {

  public static void runGetDatasetLabels() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    getDatasetLabels(datasetName);
  }

  public static void getDatasetLabels(String datasetName) {
    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();

      Dataset dataset = bigquery.getDataset(datasetName);
      dataset
          .getLabels()
          .forEach((key, value) -> System.out.println("Retrieved labels successfully"));
    } catch (BigQueryException e) {
      System.out.println("Label was not found. \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 getDatasetLabels() {
  // Gets labels on a dataset.

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

  // Retrieve current dataset metadata.
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();
  const labels = metadata.labels;

  console.log(`${datasetId} Labels:`);
  for (const [key, value] of Object.entries(labels)) {
    console.log(`${key}: ${value}`);
  }
}
getDatasetLabels();

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 dataset_id to the ID of the dataset to fetch.
# dataset_id = "your-project.your_dataset"

dataset = client.get_dataset(dataset_id)  # Make an API request.

# View dataset labels.
print("Dataset ID: {}".format(dataset_id))
print("Labels:")
if dataset.labels:
    for label, value in dataset.labels.items():
        print("\t{}: {}".format(label, value))
else:
    print("\tDataset has no labels defined.")

הצגת תוויות של טבלאות

Go

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

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

import (
	"context"
	"fmt"
	"io"

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

// tableLabels demonstrates fetching metadata from a table and printing the Label metadata to an io.Writer.
func tableLabels(w io.Writer, projectID, datasetID, tableID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	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).Table(tableID).Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "Table %s labels:\n", datasetID)
	if len(meta.Labels) == 0 {
		fmt.Fprintln(w, "Table has no labels defined.")
		return nil
	}
	for k, v := range meta.Labels {
		fmt.Fprintf(w, "\t%s:%s\n", k, v)
	}
	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.Table;
import com.google.cloud.bigquery.TableId;

// Sample to get table labels
public class GetTableLabels {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String tableName = "MY_TABLE_NAME";
    getTableLabels(datasetName, tableName);
  }

  public static void getTableLabels(String datasetName, String tableName) {
    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();

      // This example table starts with existing label { color: 'green' }
      Table table = bigquery.getTable(TableId.of(datasetName, tableName));
      table
          .getLabels()
          .forEach((key, value) -> System.out.println("Retrieved labels successfully"));
    } catch (BigQueryException e) {
      System.out.println("Label 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 getTableLabels() {
  // Gets labels on a dataset.

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

  // Retrieve current dataset metadata.
  const table = bigquery.dataset(datasetId).table(tableId);
  const [metadata] = await table.getMetadata();
  const labels = metadata.labels;

  console.log(`${tableId} Labels:`);
  for (const [key, value] of Object.entries(labels)) {
    console.log(`${key}: ${value}`);
  }
}
getTableLabels();

Python

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

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

from google.cloud import bigquery

client = bigquery.Client()

# TODO(dev): Change table_id to the full name of the table you want to create.
table_id = "your-project.your_dataset.your_table_name"

table = client.get_table(table_id)  # API Request

# View table labels
print(f"Table ID: {table_id}.")
if table.labels:
    for label, value in table.labels.items():
        print(f"\t{label}: {value}")
else:
    print("\tTable has no labels defined.")

הצגת תוויות של משרות

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

SQL

כדי לראות את התוויות של משרה מסוימת, צריך להריץ שאילתה על התצוגות של INFORMATION_SCHEMA.JOB_BY_*. לדוגמה, שאילתת ה-SQL הבאה מחזירה את טקסט השאילתה ואת התוויות של העבודות שנשלחו על ידי המשתמש הנוכחי בפרויקט הנוכחי:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      query,
      labels
    FROM
      INFORMATION_SCHEMA.JOBS_BY_USER;

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

כדי לראות את התוויות של עבודת שאילתה באמצעות כלי שורת הפקודה של BigQuery, מזינים את הפקודה bq show -j עם מזהה המשימה של עבודת השאילתה. אפשר להשתמש בדגל --format כדי לשלוט בפלט. לדוגמה, אם למשימת השאילתה יש מזהה משימה bqjob_r1234d57f78901_000023746d4q12_1, מזינים את הפקודה הבאה:

bq show -j --format=pretty bqjob_r1234d57f78901_000023746d4q12_1

הפלט אמור להיראות כך:

+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+
| Job Type |  State  |   Start Time    | Duration |    User Email     | Bytes Processed | Bytes Billed |        Labels        |
+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+
| query    | SUCCESS | 03 Dec 15:00:41 | 0:00:00  | email@example.com | 255             | 10485760     | department:shipping  |
|          |         |                 |          |                   |                 |              | costcenter:logistics |
+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+

API

מבצעים קריאה ל-method‏ jobs.get. התשובה כוללת את כל התוויות שמשויכות למשאב הזה.

צפייה בתוויות של הזמנות

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

המסוף

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

    כניסה ל-BigQuery

  2. בתפריט הניווט, לוחצים על ניהול קיבולת.

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

  4. התוויות של כל הזמנה מפורטות בעמודה Labels.

SQL

כדי לראות את התוויות בהזמנה, שולחים שאילתה אל INFORMATION_SCHEMA.RESERVATIONS views. לדוגמה, שאילתת ה-SQL הבאה מחזירה את שם המקום השמור ואת התוויות שלו:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      reservation_name,
      labels
    FROM
      INFORMATION_SCHEMA.RESERVATIONS
    WHERE reservation_name = RESERVATION_NAME;

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

    • RESERVATION_NAME: השם של ההזמנה.

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

משתמשים בפקודה bq show כדי לראות את תוויות ההזמנה.

bq show --format=prettyjson --reservation=true --location=LOCATION RESERVATION_NAME

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

  • LOCATION: המיקום של ההזמנה.
  • RESERVATION_NAME: השם של ההזמנה.

הפלט אמור להיראות כך:

{
  "autoscale": {
    "maxSlots": "100"
  },
  "creationTime": "2023-10-26T15:16:28.196940Z",
  "edition": "ENTERPRISE",
  "labels": {
    "department": "shipping"
  },
  "name": "projects/myproject/locations/US/reservations/myreservation",
  "updateTime": "2025-06-05T19:37:28.125914Z"
}

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