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

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

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

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

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

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

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

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

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

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

  • אי אפשר לרשום קבוצת נתונים לחיוב על נפח אחסון פיזי אם יש לכם התחייבויות קיימות ל-slots בתעריף קבוע באותו אזור שבו נמצאת קבוצת הנתונים.

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

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

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

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

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

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

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

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

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

כדי ליצור קבוצת נתונים:

המסוף

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

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

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

      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מהרשימות.
    3. כדי להזין תג חדש באופן ידני, מבצעים את הפעולות הבאות:
      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.
      2. אם יוצרים תג לפרויקט או לארגון, מזינים בתיבת הדו-שיח את הערך של PROJECT_ID או של ORGANIZATION_ID ולוחצים על Save.
      3. בוחרים את הערכים המתאימים מהרשימות של Key 1 ו-Value 1.
      4. כדי להוסיף עוד תגים לטבלה, לוחצים על Add tag ופועלים לפי השלבים הקודמים.
    4. אופציונלי: מרחיבים את הקטע Advanced options כדי להגדיר אחת או יותר מהאפשרויות הבאות.
      1. כדי לשנות את האפשרות הצפנה לשימוש במפתח קריפטוגרפי משלכם באמצעות Cloud Key Management Service, בוחרים באפשרות מפתח Cloud KMS.
      2. כדי להשתמש בשמות של טבלאות לא תלויי-רישיות, בוחרים באפשרות Enable case insensitive table names.
      3. כדי לשנות את המפרט של Default collation, בוחרים את סוג ה-collation מהרשימה.
      4. כדי להגדיר תפוגה לטבלאות במערך הנתונים, בוחרים באפשרות Enable table expiration ומציינים את מספר הימים בשדה Default maximum table age.
      5. כדי להגדיר מצב ברירת מחדל לעיגול, בוחרים את מצב העיגול מהרשימה.
      6. כדי להפעיל את מודל החיוב על נפח האחסון הפיזי, בוחרים את מודל החיוב מהרשימה.
      7. כשמשנים את מודל החיוב של מערך נתונים, השינוי נכנס לתוקף תוך 24 שעות.

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

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

SQL

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

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

  1. במסוף Google Cloud , עוברים לדף 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, ניתנת באופן אוטומטי גישה למערך הנתונים לכל החשבונות שמוגדרים להם תפקידים בסיסיים ברמת הפרויקט. אם מריצים את הפקודה terraform show אחרי שיוצרים את מערך הנתונים, הבלוק access של מערך הנתונים אמור להיראות כך:

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

כדי להעניק גישה למערך הנתונים, מומלץ להשתמש באחד ממשאבי google_bigquery_iam, כמו בדוגמה הבאה, אלא אם אתם מתכננים ליצור אובייקטים מורשים, כמו תצוגות מורשות, בתוך מערך הנתונים. במקרה כזה, צריך להשתמש במשאב 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 בפרויקט ב- Google Cloud :

הכנת Cloud Shell

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

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

    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. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

API

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

C#‎

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

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


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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

// 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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. מידע על הצפנת נתונים זמין במאמר הצפנה במנוחה.

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

נסו בעצמכם

אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של BigQuery בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.

לניסיון חינם של BigQuery