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

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

כדי לראות את התוויות:

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

מכיוון שתצוגות מטופלות כמו משאבי טבלה, משתמשים ב-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.

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

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

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

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

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

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

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

המסוף

  1. במסוף Google Cloud , בוחרים את מערך הנתונים, הטבלה או התצוגה.

  2. לוחצים על הכרטיסייה פרטים. פרטי התווית מופיעים בשורה תוויות.

SQL

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

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

    כניסה ל-BigQuery

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

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

  3. ‫לוחצים על Run.

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

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 במדריך למתחילים של 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 במדריך למתחילים של 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. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    SELECT
      query,
      labels
    FROM
      INFORMATION_SCHEMA.JOBS_BY_USER;

  3. ‫לוחצים על Run.

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

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. בתפריט הניווט, לוחצים על Workload management.

  3. לוחצים על הכרטיסייה Slot reservations.

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

SQL

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

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

    כניסה ל-BigQuery

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

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

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

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

  3. ‫לוחצים על Run.

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

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"
}

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