עדכון המאפיינים של מערך נתונים

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

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

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

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

כדי לעדכן את מאפייני מערך הנתונים, אתם צריכים את הרשאות ה-IAM הבאות:

  • bigquery.datasets.update
  • bigquery.datasets.setIamPolicy (נדרשת רק כשמעדכנים את אמצעי בקרת הגישה למערך נתונים ב Google Cloud מסוף)

תפקיד ה-IAM המוגדר מראש roles/bigquery.dataOwner כולל את ההרשאות שנדרשות לעדכון מאפיינים של מערך נתונים.

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

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

עדכון התיאורים של מערכי נתונים

אפשר לעדכן את התיאור של מערך נתונים בדרכים הבאות:

  • באמצעות מסוף Google Cloud .
  • שימוש בפקודה bq update של כלי שורת הפקודה של bq.
  • קריאה ל-API method ‏datasets.patch.
  • שימוש בספריות לקוח.

כדי לעדכן את תיאור מערך הנתונים:

המסוף

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

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

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

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

  3. בחלונית פרטים, לוחצים על עריכת הפרטים כדי לערוך את טקסט התיאור.

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

    1. בשדה Description (תיאור), מזינים תיאור או עורכים את התיאור הקיים.
    2. כדי לשמור את הטקסט החדש של התיאור, לוחצים על שמירה.

SQL

כדי לעדכן את התיאור של מערך נתונים, משתמשים בהצהרת ALTER SCHEMA SET OPTIONS כדי להגדיר את האפשרות description.

בדוגמה הבאה מוגדר תיאור לקבוצת נתונים בשם mydataset:

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

    כניסה ל-BigQuery

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

     ALTER SCHEMA mydataset
     SET OPTIONS (
         description = 'Description of mydataset');
     

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

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

BQ

מריצים את הפקודה bq update עם הדגל --description. אם אתם מעדכנים מערך נתונים בפרויקט שאינו פרויקט ברירת המחדל שלכם, צריך להוסיף את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא: project_id:dataset.

bq update \
--description "string" \
project_id:dataset

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

  • string: הטקסט שמתאר את מערך הנתונים, במירכאות
  • project_id: מזהה הפרויקט
  • dataset: השם של מערך הנתונים שאתם מעדכנים

דוגמאות:

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

bq update --description "Description of mydataset" mydataset

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

bq update \
--description "Description of mydataset" \
myotherproject:mydataset

API

מתקשרים אל datasets.patch ומעדכנים את מאפיין description במקור הנתונים. השיטה המועדפת היא datasets.patch, כי השיטה datasets.update מחליפה את כל משאב מערך הנתונים.

Go

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

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

import (
	"context"
	"fmt"

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

// updateDatasetDescription demonstrates how the Description metadata of a dataset can
// be read and modified.
func updateDatasetDescription(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()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{
		Description: "Updated Description.",
	}
	if _, err = ds.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

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

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

יוצרים מופע של Dataset.Builder ממופע קיים של Dataset באמצעות השיטה Dataset.toBuilder(). מגדירים את האובייקט של כלי ליצירת מערכי נתונים. יוצרים את מערך הנתונים המעודכן באמצעות השיטה Dataset.Builder.build() ומפעילים את השיטה Dataset.update() כדי לשלוח את העדכון ל-API.
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;

public class UpdateDatasetDescription {

  public static void runUpdateDatasetDescription() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String newDescription = "this is the new dataset description";
    updateDatasetDescription(datasetName, newDescription);
  }

  public static void updateDatasetDescription(String datasetName, String newDescription) {
    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);
      bigquery.update(dataset.toBuilder().setDescription(newDescription).build());
      System.out.println("Dataset description updated successfully to " + newDescription);
    } catch (BigQueryException e) {
      System.out.println("Dataset description was not updated \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 updateDatasetDescription() {
  // Updates a dataset's description.

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

  // Set new dataset description
  const description = 'New dataset description.';
  metadata.description = description;

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newDescription = apiResponse.description;

  console.log(`${datasetId} description: ${newDescription}`);
}

Python

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

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

מגדירים את המאפיין Dataset.description וקוראים לפונקציה Client.update_dataset() כדי לשלוח את העדכון ל-API.

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.
dataset.description = "Updated description."
dataset = client.update_dataset(dataset, ["description"])  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset '{}' with description '{}'.".format(
        full_dataset_id, dataset.description
    )
)

עדכון ברירת המחדל של זמני התפוגה של הטבלה

אפשר לעדכן את זמן התפוגה של טבלת ברירת המחדל של מערך נתונים בדרכים הבאות:

  • באמצעות מסוף Google Cloud .
  • שימוש בפקודה bq update של כלי שורת הפקודה של bq.
  • קריאה ל-API method ‏datasets.patch.
  • שימוש בספריות לקוח.

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

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

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

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

  • במסוף Google Cloud , התוקף מוצג בימים.
  • בכלי שורת הפקודה של BigQuery, התוקף מופיע בשניות.
  • ב-API, התפוגה מבוטאת באלפיות השנייה.

כדי לעדכן את זמן התפוגה שמוגדר כברירת מחדל למערך נתונים:

המסוף

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

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

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

  3. בכרטיסייה פרטים, לוחצים על עריכת הפרטים כדי לערוך את זמן התפוגה.

  4. בתיבת הדו-שיח Edit detail, בקטע Default table expiration, בוחרים באפשרות Enable table expiration ומזינים ערך בשדה Default maximum table age.

  5. לוחצים על Save.

SQL

כדי לעדכן את זמן התפוגה של טבלת ברירת המחדל, משתמשים בהצהרת ALTER SCHEMA SET OPTIONS כדי להגדיר את האפשרות default_table_expiration_days.

בדוגמה הבאה מעדכנים את תאריך התפוגה של הטבלה שמוגדר כברירת מחדל במערך נתונים בשם mydataset.

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

    כניסה ל-BigQuery

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

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_table_expiration_days = 3.75);
     

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

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

BQ

כדי לעדכן את זמן התפוגה שמוגדר כברירת מחדל לטבלאות שנוצרו לאחרונה במערך נתונים, מזינים את הפקודה bq update עם הדגל --default_table_expiration. אם אתם מעדכנים מערך נתונים בפרויקט שאינו פרויקט ברירת המחדל, צריך להוסיף את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא: project_id:dataset.

bq update \
--default_table_expiration integer \
project_id:dataset

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

  • integer: משך החיים שמוגדר כברירת מחדל בשניות לטבלאות שנוצרו לאחרונה. הערך המינימלי הוא 3,600 שניות (שעה אחת). מועד התפוגה הוא השעה הנוכחית ב-UTC בתוספת הערך המספרי. מציינים 0 כדי להסיר את תאריך התפוגה הקיים. כל טבלה שנוצרת במערך הנתונים נמחקת integer שניות אחרי שעת היצירה שלה. הערך הזה מוחל אם לא מגדירים תאריך תפוגה לטבלה כשיוצרים אותה.
  • project_id: מזהה הפרויקט.
  • dataset: השם של מערך הנתונים שאתם מעדכנים.

דוגמאות:

מזינים את הפקודה הבאה כדי להגדיר את תפוגת ברירת המחדל של טבלאות חדשות שנוצרו ב-mydataset לשעתיים (7,200 שניות) מהשעה הנוכחית. מערך הנתונים נמצא בפרויקט ברירת המחדל שלכם.

bq update --default_table_expiration 7200 mydataset

מזינים את הפקודה הבאה כדי להגדיר את תפוגת ברירת המחדל של טבלאות חדשות שנוצרו ב-mydataset לשעתיים (7,200 שניות) מהשעה הנוכחית. מערך הנתונים נמצא ב-myotherproject, ולא בפרויקט ברירת המחדל.

bq update --default_table_expiration 7200 myotherproject:mydataset

API

מתקשרים אל datasets.patch ומעדכנים את מאפיין defaultTableExpirationMs במקור הנתונים. התפוגה מבוטאת באלפיות השנייה ב-API. השיטה המועדפת היא datasets.patch, כי השיטה datasets.update מחליפה את כל משאב מערך הנתונים.

Go

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

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

import (
	"context"
	"fmt"
	"time"

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

// updateDatasetDefaultExpiration demonstrats setting the default expiration of a dataset
// to a specific retention period.
func updateDatasetDefaultExpiration(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()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{
		DefaultTableExpiration: 24 * time.Hour,
	}
	if _, err := client.Dataset(datasetID).Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

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

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

יוצרים מופע של Dataset.Builder ממופע קיים של Dataset באמצעות השיטה Dataset.toBuilder(). מגדירים את האובייקט של כלי ליצירת מערכי נתונים. יוצרים את מערך הנתונים המעודכן באמצעות השיטה Dataset.Builder.build() ומפעילים את השיטה Dataset.update() כדי לשלוח את העדכון ל-API.

מגדירים את זמן התפוגה שמוגדר כברירת מחדל באמצעות השיטה Dataset.Builder.setDefaultTableLifetime().

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import java.util.concurrent.TimeUnit;

public class UpdateDatasetExpiration {

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

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

      // Update dataset expiration to one day
      Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS);

      Dataset dataset = bigquery.getDataset(datasetName);
      bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build());
      System.out.println("Dataset description updated successfully to " + newExpiration);
    } catch (BigQueryException e) {
      System.out.println("Dataset expiration was not updated \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 updateDatasetExpiration() {
  // Updates the lifetime of all tables in the dataset, in milliseconds.

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

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

  // Set new dataset metadata
  const expirationTime = 24 * 60 * 60 * 1000;
  metadata.defaultTableExpirationMs = expirationTime.toString();

  const [apiResponse] = await dataset.setMetadata(metadata);
  const newExpirationTime = apiResponse.defaultTableExpirationMs;

  console.log(`${datasetId} expiration: ${newExpirationTime}`);
}

Python

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

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

מגדירים את המאפיין Dataset.default_table_expiration_ms וקוראים לפונקציה Client.update_dataset() כדי לשלוח את העדכון ל-API.

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.
dataset.default_table_expiration_ms = 24 * 60 * 60 * 1000  # In milliseconds.

dataset = client.update_dataset(
    dataset, ["default_table_expiration_ms"]
)  # Make an API request.

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
print(
    "Updated dataset {} with new expiration {}".format(
        full_dataset_id, dataset.default_table_expiration_ms
    )
)

עדכון ברירת המחדל של תאריכי התפוגה של המחיצות

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

  • שימוש בפקודה bq update של כלי שורת הפקודה של bq.
  • קריאה ל-API method ‏datasets.patch.
  • שימוש בספריות לקוח.

אי אפשר להגדיר או לעדכן את תאריך התפוגה של מחיצת ברירת המחדל של מערך נתונים באמצעות מסוף Google Cloud .

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

אם מגדירים את מועד התפוגה של המחיצה כשיוצרים את הטבלה מחולקת למחיצות (Partitions), הערך הזה מבטל את ברירת המחדל של מועד התפוגה של המחיצה ברמת מערך הנתונים, אם היא קיימת.

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

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

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

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

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

  • בכלי שורת הפקודה של BigQuery, התוקף מופיע בשניות.
  • ב-API, התפוגה מבוטאת באלפיות השנייה.

כדי לעדכן את זמן התפוגה של מחיצה שמוגדר כברירת מחדל במערך נתונים:

המסוף

עדכון תאריך התפוגה של מחיצת ברירת מחדל של מערך נתונים אינו נתמך על ידי Google Cloud המסוף.

SQL

כדי לעדכן את זמן התפוגה של מחיצת ברירת המחדל, משתמשים בהצהרת ALTER SCHEMA SET OPTIONS כדי להגדיר את האפשרות default_partition_expiration_days.

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

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

    כניסה ל-BigQuery

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

     ALTER SCHEMA mydataset
     SET OPTIONS(
         default_partition_expiration_days = 3.75);
     

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

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

BQ

כדי לעדכן את זמן התפוגה שמוגדר כברירת מחדל למערך נתונים, מזינים את הפקודה bq update עם הדגל --default_partition_expiration. אם אתם מעדכנים מערך נתונים בפרויקט שאינו פרויקט ברירת המחדל שלכם, אתם צריכים להוסיף את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא: project_id:dataset.

bq update \
--default_partition_expiration integer \
project_id:dataset

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

  • integer: משך החיים שמוגדר כברירת מחדל בשניות למחיצות בטבלאות מחולקות חדשות. אין ערך מינימלי לדגל הזה. מציינים 0 כדי להסיר את תאריך התפוגה הקיים. כל המחיצות בטבלאות מחיצות שנוצרו לאחרונה נמחקות integer שניות אחרי התאריך של המחיצה בפורמט UTC. הערך הזה יחול אם לא תגדירו תאריך תפוגה למחיצה בטבלה כשתיווצר.
  • project_id: מזהה הפרויקט.
  • dataset: השם של מערך הנתונים שאתם מעדכנים.

דוגמאות:

מזינים את הפקודה הבאה כדי להגדיר את תאריך התפוגה של מחיצות ברירת המחדל עבור טבלאות מחיצות חדשות שנוצרו ב-mydataset ל-26 שעות (93,600 שניות). מערך הנתונים נמצא בפרויקט ברירת המחדל שלכם.

bq update --default_partition_expiration 93600 mydataset

מזינים את הפקודה הבאה כדי להגדיר את תאריך התפוגה של מחיצות ברירת המחדל עבור טבלאות מחיצות חדשות שנוצרו ב-mydataset ל-26 שעות (93,600 שניות). מערך הנתונים נמצא ב-myotherproject, ולא בפרויקט ברירת המחדל.

bq update --default_partition_expiration 93600 myotherproject:mydataset

API

מתקשרים אל datasets.patch ומעדכנים את מאפיין defaultPartitionExpirationMs במקור הנתונים. תאריך התפוגה מצוין באלפיות השנייה. השיטה המועדפת היא datasets.patch כי היא מחליפה את כל משאב מערך הנתונים.datasets.update

עדכון אופן העיגול

אפשר לעדכן את מצב העיגול שמוגדר כברירת מחדל במערך נתונים באמצעות הצהרת ה-DDL‏ ALTER SCHEMA SET OPTIONS. בדוגמה הבאה מעדכנים את מצב העיגול שמוגדר כברירת מחדל עבור mydataset ל-ROUND_HALF_EVEN.

ALTER SCHEMA mydataset
SET OPTIONS (
  default_rounding_mode = "ROUND_HALF_EVEN");

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

עדכון חלונות זמן של נסיעות

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

  • באמצעות מסוף Google Cloud .
  • באמצעות ההצהרה ALTER SCHEMA SET OPTIONS.
  • שימוש בפקודה bq update של כלי שורת הפקודה bq.
  • קריאה לשיטת ה-API‏ datasets.patch או datasets.update. השיטה update מחליפה את כל משאב מערך הנתונים, ואילו השיטה patch מחליפה רק את השדות שמופיעים במשאב מערך הנתונים שנשלח.

למידע נוסף על חלון הנסיעה בזמן, אפשר לעיין במאמר בנושא הגדרת חלון הנסיעה בזמן.

כדי לעדכן את חלון הזמן של מערך נתונים:

המסוף

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

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

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

  3. בכרטיסייה פרטים, לוחצים על עריכת הפרטים.

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

  5. לוחצים על Save.

SQL

כדי לציין את חלון הזמן של Time Travel כשמשנים מערך נתונים, משתמשים בהצהרה ALTER SCHEMA SET OPTIONS עם האפשרות max_time_travel_hours. הערך max_time_travel_hours צריך להיות מספר שלם שהוא כפולה של 24 (48, ‏ 72, ‏ 96, ‏ 120, ‏ 144, ‏ 168) בין 48 (יומיים) ל-168 (7 ימים).

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

    כניסה ל-BigQuery

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

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
      max_time_travel_hours = HOURS);

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

    • DATASET_NAME: השם של מערך הנתונים שאתם מעדכנים
    • HOURS עם משך חלון הזמן של הנסיעה בזמן בשעות.

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

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

BQ

משתמשים בפקודה bq update עם הדגל --max_time_travel_hours כדי לציין את חלון הזמן של האפשרות 'חזרה בזמן' כשמשנים מערך נתונים. הערך --max_time_travel_hours צריך להיות מספר שלם שהוא כפולה של 24 (48, ‏ 72, ‏ 96, ‏ 120, ‏ 144, ‏ 168) בין 48 (יומיים) ל-168 (7 ימים).

bq update \
--dataset=true --max_time_travel_hours=HOURS \
PROJECT_ID:DATASET_NAME

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

  • PROJECT_ID: מזהה הפרויקט
  • DATASET_NAME: השם של מערך הנתונים שאתם מעדכנים
  • HOURS עם משך חלון הנסיעה בזמן בשעות

API

קוראים לשיטה datasets.patch או datasets.update עם משאב של מערך נתונים מוגדר שבו ציינתם ערך לשדה maxTimeTravelHours. הערך של maxTimeTravelHours חייב להיות מספר שלם שהוא כפולה של 24 (48, ‏ 72, ‏ 96, ‏ 120, ‏ 144, ‏ 168) בין 48 (יומיים) ל-168 (7 ימים).

עדכון מודלים לחיוב על אחסון

אפשר לשנות את מודל החיוב על אחסון של מערך נתונים. מגדירים את הערך של storage_billing_model ל-PHYSICAL כדי להשתמש בבייטים פיזיים כשמחשבים שינויים בנפח האחסון, או ל-LOGICAL כדי להשתמש בבייטים לוגיים. ברירת המחדל היא LOGICAL.

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

אחרי שמשנים את מודל החיוב של האחסון של מערך נתונים, צריך לחכות 14 ימים לפני שאפשר לשנות שוב את מודל החיוב של האחסון.

המסוף

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

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

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

  3. בכרטיסייה פרטים, לוחצים על עריכת הפרטים.

  4. מרחיבים את אפשרויות מתקדמות.

  5. בתפריט Storage billing model (מודל חיוב על אחסון), בוחרים באפשרות Physical (פיזי) כדי להשתמש בחיוב על אחסון פיזי, או באפשרות Logical (לוגי) כדי להשתמש בחיוב על אחסון לוגי. אפשר גם לבחור באפשרות Storage_billing_model_unspecified.

  6. לוחצים על Save.

SQL

כדי לעדכן את מודל החיוב של מערך נתונים, משתמשים בהצהרת ALTER SCHEMA SET OPTIONS ומגדירים את האפשרות storage_billing_model:

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

    כניסה ל-BigQuery

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

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(
     storage_billing_model = 'BILLING_MODEL');

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

    • DATASET_NAME בשם של מערך הנתונים שרוצים לשנות
    • BILLING_MODEL עם סוג האחסון שרוצים להשתמש בו, LOGICAL או PHYSICAL

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

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

כדי לעדכן את מודל החיוב על אחסון של כל מערכי הנתונים בפרויקט, משתמשים בשאילתת ה-SQL הבאה לכל אזור שבו נמצאים מערכי הנתונים:

FOR record IN
 (SELECT CONCAT(catalog_name, '.', schema_name) AS dataset_path
 FROM PROJECT_ID.region-REGION.INFORMATION_SCHEMA.SCHEMATA)
DO
 EXECUTE IMMEDIATE
   "ALTER SCHEMA `" || record.dataset_path || "` SET OPTIONS(storage_billing_model = 'BILLING_MODEL')";
END FOR;

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

  • PROJECT_ID במזהה הפרויקט
  • REGION עם מסנן אזור
  • BILLING_MODEL עם סוג האחסון שרוצים להשתמש בו, LOGICAL או PHYSICAL

BQ

כדי לעדכן את מודל החיוב של מערך נתונים, משתמשים בפקודה bq update ומגדירים את הדגל --storage_billing_model:

bq update -d --storage_billing_model=BILLING_MODEL PROJECT_ID:DATASET_NAME

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

  • PROJECT_ID: מזהה הפרויקט
  • DATASET_NAME: השם של מערך הנתונים שאתם מעדכנים
  • BILLING_MODEL: סוג האחסון שרוצים להשתמש בו, LOGICAL או PHYSICAL

API

מפעילים את השיטה datasets.update עם משאב מוגדר של מערך נתונים שבו מוגדר השדה storageBillingModel.

בדוגמה הבאה אפשר לראות איך מפעילים את datasets.update באמצעות curl:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X PUT https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID -d '{"datasetReference": {"projectId": "PROJECT_ID", "datasetId": "DATASET_NAME"}, "storageBillingModel": "BILLING_MODEL"}'

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

  • PROJECT_ID: מזהה הפרויקט
  • DATASET_NAME: השם של מערך הנתונים שאתם מעדכנים
  • BILLING_MODEL: סוג האחסון שרוצים להשתמש בו, LOGICAL או PHYSICAL

עדכון אמצעי הבקרה על הגישה

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

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