יצירת מערכי נתונים

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

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

במאמר הרצת שאילתות על קבוצת נתונים ציבורית באמצעות מסוף Cloud de Confiance יש הסבר איך להריץ שאילתות על טבלאות בקבוצת נתונים ציבורית.

מגבלות על מערכי נתונים

מערכי נתונים ב-BigQuery כפופים למגבלות הבאות:

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

  • כשמעתיקים טבלה, מערכי הנתונים שמכילים את טבלת המקור ואת טבלת היעד צריכים להיות באותו מיקום.

  • שמות מערכי הנתונים צריכים להיות ייחודיים לכל פרויקט.

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

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

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

כדי ליצור מערך נתונים, צריך את הרשאת bigquery.datasets.create ב-IAM.

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

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

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

יצירת מערכי נתונים

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

כדי ליצור מערך נתונים:

המסוף

  1. פותחים את הדף BigQuery במסוף Cloud de Confiance .
  2. לדף BigQuery
  3. בחלונית הימנית, לוחצים על כלי הניתוחים.
  4. בוחרים את הפרויקט שבו רוצים ליצור את מערך הנתונים.
  5. לוחצים על View actions (הצגת פעולות) ואז על Create dataset (יצירת מערך נתונים).
  6. משתמשים בתפריט הפעולות של הפרויקט כדי ליצור מערך נתונים
  7. בדף Create dataset:
    1. בשדה Dataset ID, מזינים שם ייחודי למערך הנתונים.
    2. בשדה Location type, בוחרים מיקום גיאוגרפי לקבוצת הנתונים. אחרי שיוצרים את מערך הנתונים, אי אפשר לשנות את המיקום.
    3. אופציונלי: בוחרים באפשרות קישור למערך נתונים חיצוני אם יוצרים מערך נתונים חיצוני.
    4. אם לא צריך להגדיר אפשרויות נוספות כמו תגים ותאריכי תפוגה של טבלאות, לוחצים על יצירת מערך נתונים. אחרת, מרחיבים את הקטע הבא כדי להגדיר את האפשרויות הנוספות של מערך הנתונים.

    אפשרויות נוספות למערכי נתונים

    1. אופציונלי: מרחיבים את הקטע תגים כדי להוסיף תגים למערך הנתונים.
    2. כדי להחיל תג קיים:
      1. לוחצים על החץ לתפריט הנפתח לצד Select scope (בחירת היקף) ובוחרים באפשרות Current scope (היקף נוכחי) – Select current organization (בחירת הארגון הנוכחי) או Select current project (בחירת הפרויקט הנוכחי).
      2. אפשר גם ללחוץ על בחירת היקף כדי לחפש משאב או כדי לראות רשימה של המשאבים הנוכחיים.

      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מהרשימות.
    3. כדי להזין תג חדש באופן ידני:
      1. לוחצים על החץ של התפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.
      2. אם יוצרים תג לפרויקט או לארגון, מזינים את PROJECT_ID או את ORGANIZATION_ID בתיבת הדו-שיח ולוחצים על שמירה.
      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.
      4. כדי להוסיף עוד תגים לטבלה, לוחצים על הוספת תג ופועלים לפי השלבים הקודמים.
    4. אופציונלי: מרחיבים את הקטע אפשרויות מתקדמות כדי להגדיר אחת או יותר מהאפשרויות הבאות.
      1. כדי לשנות את האפשרות הצפנה לשימוש במפתח קריפטוגרפי משלכם באמצעות Cloud Key Management Service, בוחרים באפשרות מפתח Cloud KMS.
      2. כדי להשתמש בשמות טבלאות לא תלויי-רישיות, בוחרים באפשרות הפעלת שמות טבלאות לא תלויי-רישיות.
      3. כדי לשנות את הגדרת ברירת המחדל של אוסף הכללים (collation), בוחרים את סוג אוסף הכללים (collation) מהרשימה.
      4. כדי להגדיר תפוגה לטבלאות במערך הנתונים, בוחרים באפשרות הפעלת תפוגה של טבלאות ומציינים את גיל הטבלה המקסימלי כברירת מחדל בימים.
      5. כדי להגדיר מצב ברירת מחדל לעיגול, בוחרים את מצב העיגול מהרשימה.
      6. כדי להפעיל את מודל החיוב על אחסון, בוחרים את מודל החיוב מהרשימה.
      7. כשמשנים את מודל החיוב של מערך נתונים, חולפות 24 שעות עד שהשינוי נכנס לתוקף.

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

      8. כדי להגדיר את חלון הזמן של נסיעה אחורה בזמן של מערך הנתונים, בוחרים את גודל החלון מהרשימה.
    5. לוחצים על יצירת מערך נתונים.

SQL

משתמשים בהצהרה CREATE SCHEMA.

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

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

    כניסה ל-BigQuery

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

    CREATE SCHEMA PROJECT_ID.DATASET_ID
      OPTIONS (
        default_kms_key_name = 'KMS_KEY_NAME',
        default_partition_expiration_days = PARTITION_EXPIRATION,
        default_table_expiration_days = TABLE_EXPIRATION,
        description = 'DESCRIPTION',
        labels = [('KEY_1','VALUE_1'),('KEY_2','VALUE_2')],
        location = 'LOCATION',
        max_time_travel_hours = HOURS,
        storage_billing_model = BILLING_MODEL);

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

    • PROJECT_ID: מזהה הפרויקט
    • DATASET_ID: המזהה של מערך הנתונים שאתם יוצרים
    • KMS_KEY_NAME: השם של מפתח ברירת המחדל של Cloud Key Management Service שמשמש להגנה על טבלאות חדשות שנוצרות במערך הנתונים הזה, אלא אם מסופק מפתח אחר בזמן היצירה. אי אפשר ליצור טבלה מוצפנת ב-Google במערך נתונים עם הפרמטר הזה.
    • PARTITION_EXPIRATION: משך החיים שמוגדר כברירת מחדל למחיצות בטבלאות מחולקות חדשות (בימים). למועד התפוגה של המחיצה שמוגדר כברירת מחדל אין ערך מינימלי. מועד התפוגה מחושב לפי התאריך של המחיצה בתוספת הערך המספרי. כל מחיצה שנוצרת בטבלה מחולקת במערך הנתונים נמחקת אחרי PARTITION_EXPIRATION ימים מתאריך המחיצה. אם מציינים את האפשרות time_partitioning_expiration כשיוצרים או מעדכנים טבלה מחולקת, מועד התפוגה של המחיצה ברמת הטבלה קודם למועד התפוגה של המחיצה שמוגדר כברירת מחדל ברמת מערך הנתונים.
    • TABLE_EXPIRATION: משך החיים שמוגדר כברירת מחדל (בימים) לטבלאות שנוצרות. הערך המינימלי הוא 0.042 ימים (שעה אחת). זמן התפוגה הוא הזמן הנוכחי בתוספת הערך השלם. כל טבלה שנוצרת במערך הנתונים נמחקת אחרי TABLE_EXPIRATION ימים ממועד היצירה שלה. הערך הזה חל אם לא מגדירים זמן תפוגה לטבלה כשיוצרים את הטבלה.
    • DESCRIPTION: תיאור של מערך הנתונים
    • KEY_1:VALUE_1: זוג מפתח/ערך שרוצים להגדיר כתווית הראשונה במערך הנתונים הזה
    • KEY_2:VALUE_2: זוג מפתח/ערך שרוצים להגדיר כתווית השנייה
    • LOCATION: המיקום של מערך הנתונים. אחרי שיוצרים את מערך הנתונים, אי אפשר לשנות את המיקום שלו.
    • HOURS: משך חלון הזמן של הנסיעה במערך הנתונים החדש, בשעות. הערך של HOURS חייב להיות מספר שלם שהוא כפולה של 24 (48,‏ 72,‏ 96,‏ 120,‏ 144,‏ 168) בין 48 (יומיים) ל-168 (7 ימים). אם לא מציינים את האפשרות הזו, ברירת המחדל היא 168 שעות.
    • BILLING_MODEL: מגדיר את מודל החיוב של נפח האחסון של מערך הנתונים. מגדירים את הערך של BILLING_MODEL ל-PHYSICAL כדי להשתמש בבייטים פיזיים כשמחשבים את חיובים על נפח האחסון, או ל-LOGICAL כדי להשתמש בבייטים לוגיים. LOGICAL הוא ברירת המחדל.

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

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

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

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

BQ

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

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

bq --location=LOCATION mk \
    --dataset \
    --default_kms_key=KMS_KEY_NAME \
    --default_partition_expiration=PARTITION_EXPIRATION \
    --default_table_expiration=TABLE_EXPIRATION \
    --description="DESCRIPTION" \
    --label=KEY_1:VALUE_1 \
    --label=KEY_2:VALUE_2 \
    --add_tags=KEY_3:VALUE_3[,...] \
    --max_time_travel_hours=HOURS \
    --storage_billing_model=BILLING_MODEL \
    PROJECT_ID:DATASET_ID

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

  • LOCATION: המיקום של מערך הנתונים. אחרי שיוצרים את מערך הנתונים, אי אפשר לשנות את המיקום. אפשר להגדיר ערך ברירת מחדל למיקום באמצעות הקובץ .bigqueryrc.
  • KMS_KEY_NAME: השם של מפתח ברירת המחדל של Cloud Key Management Service שמשמש להגנה על טבלאות שנוצרו לאחרונה במערך הנתונים הזה, אלא אם סופק מפתח אחר בזמן היצירה. אי אפשר ליצור טבלה מוצפנת על ידי Google במערך נתונים עם הפרמטר הזה.
  • PARTITION_EXPIRATION: משך החיים שמוגדר כברירת מחדל (בשניות) למחיצות בטבלאות מחולקות שנוצרו לאחרונה. לפג תוקף של מחיצת ברירת המחדל אין ערך מינימלי. זמן התפוגה מחושב לפי התאריך של המחיצה בתוספת הערך המספרי. כל מחיצה שנוצרה בטבלה מחולקת במערך הנתונים נמחקת PARTITION_EXPIRATION שניות אחרי התאריך של המחיצה. אם מספקים את הדגל --time_partitioning_expiration כשיוצרים או מעדכנים טבלה מחולקת למחיצות, תאריך התפוגה של המחיצות ברמת הטבלה מקבל עדיפות על פני תאריך התפוגה של המחיצות שמוגדר כברירת מחדל ברמת מערך הנתונים.
  • TABLE_EXPIRATION: משך החיים שמוגדר כברירת מחדל (בשניות) לטבלאות שנוצרו לאחרונה. הערך המינימלי הוא 3,600 שניות (שעה אחת). מועד התפוגה הוא השעה הנוכחית בתוספת הערך השלם. כל טבלה שנוצרת במערך הנתונים נמחקת TABLE_EXPIRATION שניות אחרי שנוצרה. הערך הזה יחול אם לא תגדירו תאריך תפוגה לטבלה כשתצרו את הטבלה.
  • DESCRIPTION: תיאור של מערך הנתונים
  • KEY_1:VALUE_1: צמד מפתח/ערך שרוצים להגדיר כתווית הראשונה במערך הנתונים הזה, ו-KEY_2:VALUE_2 הוא צמד מפתח/ערך שרוצים להגדיר כתווית השנייה.
  • KEY_3:VALUE_3: צמד מפתח/ערך שרוצים להגדיר כתג במערך הנתונים. מוסיפים כמה תגים מתחת לאותו דגל, עם פסיקים בין צמדי מפתח:ערך.
  • HOURS: משך הזמן בשעות של חלון הנסיעה בזמן למערך הנתונים החדש. הערך HOURS צריך להיות מספר שלם שהוא כפולה של 24 (48, ‏ 72, ‏ 96, ‏ 120, ‏ 144, ‏ 168) בין 48 (יומיים) ל-168 (7 ימים). ברירת המחדל היא 168 שעות אם האפשרות הזו לא מצוינת.
  • BILLING_MODEL: מגדיר את מודל החיוב על אחסון של מערך הנתונים. כדי להשתמש בבייטים פיזיים כשמחשבים את עלויות האחסון, צריך להגדיר את הערך של BILLING_MODEL ל-PHYSICAL. כדי להשתמש בבייטים לוגיים, צריך להגדיר את הערך ל-LOGICAL. ברירת המחדל היא LOGICAL.

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

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

  • PROJECT_ID: מזהה הפרויקט.

  • DATASET_ID הוא המזהה של מערך הנתונים שאתם יוצרים.

לדוגמה, הפקודה הבאה יוצרת מערך נתונים בשם mydataset עם מיקום נתונים שמוגדר ל-US, תפוגה של טבלה שמוגדרת כברירת מחדל ל-3,600 שניות (שעה אחת) ותיאור של This is my dataset. במקום להשתמש בדגל --dataset, הפקודה משתמשת בקיצור הדרך -d. אם לא מציינים את -d ואת --dataset, הפקודה יוצרת מערך נתונים כברירת מחדל.

bq --location=US mk -d \
    --default_table_expiration 3600 \
    --description "This is my dataset." \
    mydataset

כדי לוודא שמערך הנתונים נוצר, מזינים את הפקודה bq ls. בנוסף, אפשר ליצור טבלה כשיוצרים מערך נתונים חדש באמצעות הפורמט הבא: bq mk -t dataset.table. מידע נוסף על יצירת טבלאות זמין במאמר יצירת טבלה.

Terraform

משתמשים במשאב google_bigquery_dataset.

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

יצירת מערך נתונים

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

resource "google_bigquery_dataset" "default" {
  dataset_id                      = "mydataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  labels = {
    billing_group = "accounting",
    pii           = "sensitive"
  }
}

כשיוצרים מערך נתונים באמצעות google_bigquery_dataset resource, המערכת מעניקה אוטומטית גישה למערך הנתונים לכל החשבונות שמשתייכים לתפקידים בסיסיים ברמת הפרויקט. אם מריצים את terraform show command אחרי שיוצרים את מערך הנתונים, access block של מערך הנתונים ייראה בערך כך:

חסימת הגישה למערך נתונים שנוצר באמצעות Terraform.

כדי להעניק גישה למערך הנתונים, מומלץ להשתמש באחד מgoogle_bigquery_iamמשאבי BigQuery, כמו בדוגמה הבאה, אלא אם אתם מתכננים ליצור אובייקטים מורשים, כמו תצוגות מורשות, בתוך מערך הנתונים. במקרה כזה, צריך להשתמש במשאב google_bigquery_dataset_access. בדוגמה הזו מוסבר איך עושים את זה.

יצירת מערך נתונים והענקת גישה אליו

בדוגמה הבאה נוצר מערך נתונים בשם mydataset, ואז נעשה שימוש במשאב google_bigquery_dataset_iam_policy כדי להעניק גישה אליו.

resource "google_bigquery_dataset" "default" {
  dataset_id                      = "mydataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  labels = {
    billing_group = "accounting",
    pii           = "sensitive"
  }
}

# Update the user, group, or service account
# provided by the members argument with the
# appropriate principals for your organization.
data "google_iam_policy" "default" {
  binding {
    role = "roles/bigquery.dataOwner"
    members = [
      "user:raha@altostrat.com",
    ]
  }
  binding {
    role = "roles/bigquery.admin"
    members = [
      "user:raha@altostrat.com",
    ]
  }
  binding {
    role = "roles/bigquery.user"
    members = [
      "group:analysts@altostrat.com",
    ]
  }
  binding {
    role = "roles/bigquery.dataViewer"
    members = [
      "serviceAccount:bqcx-1234567891011-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
    ]
  }
}

resource "google_bigquery_dataset_iam_policy" "default" {
  dataset_id  = google_bigquery_dataset.default.dataset_id
  policy_data = data.google_iam_policy.default.policy_data
}

יצירת מערך נתונים עם מפתח הצפנה בניהול הלקוח

בדוגמה הבאה נוצר מערך נתונים בשם mydataset, ונעשה שימוש במשאבים google_kms_crypto_key ו-google_kms_key_ring כדי לציין מפתח של Cloud Key Management Service למערך הנתונים. לפני שמריצים את הדוגמה הזו, צריך להפעיל את Cloud Key Management Service API.

resource "google_bigquery_dataset" "default" {
  dataset_id                      = "mydataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  default_encryption_configuration {
    kms_key_name = google_kms_crypto_key.crypto_key.id
  }

  labels = {
    billing_group = "accounting",
    pii           = "sensitive"
  }
  depends_on = [google_project_iam_member.service_account_access]
}

resource "google_kms_crypto_key" "crypto_key" {
  name     = "example-key"
  key_ring = google_kms_key_ring.key_ring.id
}

resource "random_id" "default" {
  byte_length = 8
}

resource "google_kms_key_ring" "key_ring" {
  name     = "${random_id.default.hex}-example-keyring"
  location = "us"
}

# Enable the BigQuery service account to encrypt/decrypt Cloud KMS keys
data "google_project" "project" {
}

resource "google_project_iam_member" "service_account_access" {
  project = data.google_project.project.project_id
  role    = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
  member  = "serviceAccount:bq-${data.google_project.project.number}@bigquery-encryption.iam.gserviceaccount.com"
}

כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance

    תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

    לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

API

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

C#‎

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.


using Google.Apis.Bigquery.v2.Data;
using Google.Cloud.BigQuery.V2;

public class BigQueryCreateDataset
{
    public BigQueryDataset CreateDataset(
        string projectId = "your-project-id",
        string location = "US"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        var dataset = new Dataset
        {
            // Specify the geographic location where the dataset should reside.
            Location = location
        };
        // Create the dataset
        return client.CreateDataset(
            datasetId: "your_new_dataset_id", dataset);
    }
}

המשך

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

import (
	"context"
	"fmt"

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

// createDataset demonstrates creation of a new dataset using an explicit destination location.
func createDataset(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 := &bigquery.DatasetMetadata{
		Location: "US", // See https://cloud.google.com/bigquery/docs/locations
	}
	if err := client.Dataset(datasetID).Create(ctx, meta); err != nil {
		return err
	}
	return nil
}

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

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 com.google.cloud.bigquery.DatasetInfo;

public class CreateDataset {

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

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

      DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();

      Dataset newDataset = bigquery.create(datasetInfo);
      String newDatasetName = newDataset.getDatasetId().getDataset();
      System.out.println(newDatasetName + " created successfully");
    } catch (BigQueryException e) {
      System.out.println("Dataset was not created. \n" + e.toString());
    }
  }
}

Node.js

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

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

async function createDataset() {
  // Creates a new dataset named "my_dataset".

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

  // Specify the geographic location where the dataset should reside
  const options = {
    location: 'US',
  };

  // Create a new dataset
  const [dataset] = await bigquery.createDataset(datasetId, options);
  console.log(`Dataset ${dataset.id} created.`);
}
createDataset();

PHP

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->createDataset($datasetId);
printf('Created dataset %s' . PHP_EOL, $datasetId);

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

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 create.
# dataset_id = "{}.your_dataset".format(client.project)

# Construct a full Dataset object to send to the API.
dataset = bigquery.Dataset(dataset_id)

# TODO(developer): Specify the geographic location where the dataset should reside.
dataset.location = "US"

# Send the dataset to the API for creation, with an explicit timeout.
# Raises google.api_core.exceptions.Conflict if the Dataset already
# exists within the project.
dataset = client.create_dataset(dataset, timeout=30)  # Make an API request.
print("Created dataset {}.{}".format(client.project, dataset.dataset_id))

Ruby

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

require "google/cloud/bigquery"

def create_dataset dataset_id = "my_dataset", location = "US"
  bigquery = Google::Cloud::Bigquery.new

  # Create the dataset in a specified geographic location
  bigquery.create_dataset dataset_id, location: location

  puts "Created dataset: #{dataset_id}"
end

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

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

  • עד 1,024 תווים.
  • אותיות (רישיות או קטנות), מספרים וקווים תחתונים.

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

שמות של מערכי נתונים לא יכולים להכיל רווחים או תווים מיוחדים כמו -,‏ &,‏ @ או %.

מערכי נתונים מוסתרים

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

אבטחת מערך נתונים

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

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