חיבור ל-Databricks

אדמינים ב-BigQuery יכולים ליצור חיבור לקריאה ולכתיבה של נתונים ממחברת Databricks. השלבים מתוארים באמצעות Google Cloud console ו-Databricks Workspaces. אפשר גם לבצע את השלבים האלה באמצעות כלי שורת הפקודה gcloud ו-databricks, אבל ההנחיות האלה לא נכללות במדריך הזה.

‫Databricks on Google Cloud הוא סביבת Databricks שמארחת ב- Google Cloud, פועלת ב-Google Kubernetes Engine ‏ (GKE) ומספקת שילוב מובנה עם BigQuery ועם טכנולוגיות נוספות של Google Cloud . אם אתם חדשים ב-Databricks, כדאי לצפות בסרטון Introduction to Databricks Unified Data Platform כדי לקבל סקירה כללית של פלטפורמת Databricks lakehouse.

מטרות

  • מגדירים את Google Cloud כדי להתחבר ל-Databricks.
  • פריסת Databricks ב- Google Cloud.
  • הרצת שאילתות ב-BigQuery מ-Databricks.

עלויות

במדריך הזה נעשה שימוש ברכיבים של מסוף Google Cloud שחלים עליהם חיובים, כולל BigQuery ו-GKE. יחולו על כך התעריפים של BigQuery והתעריפים של GKE. מידע על העלויות שמשויכות לחשבון Databricks שפועל ב- Google Cloudזמין בקטע Set up your account and create a workspace (הגדרת החשבון ויצירת סביבת עבודה) במסמכי Databricks.

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

לפני שמקשרים את Databricks ל-BigQuery, צריך לבצע את השלבים הבאים:

  1. מפעילים את BigQuery Storage API.
  2. יוצרים חשבון שירות ל-Databricks.
  3. יוצרים קטגוריה של Cloud Storage לאחסון זמני.

הפעלת BigQuery Storage API

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

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

    כניסה ל-BigQuery Storage API

  2. מוודאים ש-BigQuery Storage API מופעל.

    ‫BigQuery Storage API מופעל

יצירת חשבון שירות ל-Databricks

לאחר מכן, יוצרים חשבון שירות לניהול זהויות והרשאות גישה (IAM) כדי לאפשר לאשכול Databricks להריץ שאילתות ב-BigQuery. מומלץ לתת לחשבון השירות הזה את ההרשאות המינימליות שנדרשות לביצוע המשימות שלו. מידע נוסף זמין במאמר תפקידים והרשאות ב-BigQuery.

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

    לדף Service accounts

  2. לוחצים על יצירת חשבון שירות, נותנים שם לחשבון השירות databricks-bigquery, מזינים תיאור קצר כמו Databricks tutorial service account ולוחצים על יצירה והמשך.

  3. בקטע Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט), מציינים את התפקידים של חשבון השירות. כדי להעניק לחשבון השירות הרשאה לקרוא נתונים באמצעות סביבת העבודה של Databricks והטבלה ב-BigQuery באותו פרויקט, בלי להפנות לתצוגה חומרית, צריך להעניק את התפקידים הבאים:

    • BigQuery Read Session User
    • BigQuery Data Viewer (צפייה בנתוני BigQuery)

    כדי לתת הרשאה לכתיבת נתונים, צריך להקצות את התפקידים הבאים:

    • BigQuery Job User
    • עריכה של נתוני BigQuery
  4. רושמים את כתובת האימייל של חשבון השירות החדש כדי להשתמש בה בשלבים הבאים.

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

יצירת קטגוריה של Cloud Storage

כדי לכתוב ל-BigQuery, לאשכול Databricks צריכה להיות גישה לקטגוריה של Cloud Storage כדי לשמור את הנתונים שנכתבו במאגר זמני.

  1. במסוף Google Cloud , עוברים אל Cloud Storage Browser.

    כניסה לדף Storage Browser

  2. לוחצים על Create bucket כדי לפתוח את תיבת הדו-שיח Create a bucket.

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

    תיבת הדו-שיח 'שם הקטגוריה' עם databricks-bq-123

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

  5. לוחצים על יצירה כדי ליצור את הקטגוריה של Cloud Storage.

  6. לוחצים על Permissions (הרשאות), על Add (הוספה) ומציינים את כתובת האימייל של חשבון השירות שיצרתם לגישה ל-Databricks בדף Service Accounts (חשבונות שירות).

    תמונה

  7. לוחצים על Select a role ומוסיפים את התפקיד Storage admin.

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

פריסת Databricks ב- Google Cloud

כדי להתכונן לפריסת Databricks ב- Google Cloud, צריך לבצע את השלבים הבאים.

  1. כדי להגדיר את החשבון ב-Databricks, פועלים לפי ההוראות במסמכי התיעוד של Databricks, הגדרת החשבון ב-Databricks Google Cloud.
  2. אחרי ההרשמה, תוכלו לקרוא מידע נוסף על ניהול חשבון Databricks.

יצירה של סביבת עבודה, אשכול ו-Notebook ב-Databricks

בשלבים הבאים מוסבר איך ליצור סביבת עבודה של Databricks, אשכול ו-Notebook של Python כדי לכתוב קוד לגישה ל-BigQuery.

  1. מוודאים שמתקיימות הדרישות המוקדמות של Databricks.

  2. יוצרים את סביבת העבודה הראשונה. במסוף החשבון של Databricks, לוחצים על Create Workspace (יצירת סביבת עבודה).

  3. מציינים gcp-bq בשדה שם סביבת העבודה ובוחרים את האזור.

    יצירת מסך Workspace עם שם Workspace, אזור ו- Google Cloud
מזהה פרויקט

  4. כדי לדעת מהו Google Cloud מזהה הפרויקט, נכנסים למסוף Google Cloud ומעתיקים את הערך לשדה Google Cloud מזהה הפרויקט.

    כניסה למסוף Google Cloud

  5. לוחצים על שמירה כדי ליצור את סביבת העבודה של Databricks.

  6. כדי ליצור אשכול Databricks עם Databricks runtime 7.6 ואילך, בסרגל התפריטים השמאלי בוחרים באפשרות Clusters ואז לוחצים על Create Cluster בחלק העליון.

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

    משטח חדש של אשכול עם פרטים של חשבון שירות Google

  8. לוחצים על יצירת אשכול.

  9. כדי ליצור מחברת Python ל-Databricks, פועלים לפי ההוראות במאמר יצירת מחברת.

הרצת שאילתות ב-BigQuery מ-Databricks

עם ההגדרות שלמעלה, אפשר לחבר את Databricks ל-BigQuery בצורה מאובטחת. ‫Databricks משתמשת בפיצול של מתאם Google Apache Spark בקוד פתוח כדי לגשת ל-BigQuery.

‫Databricks מצמצם את העברת הנתונים ומאיץ את השאילתות על ידי דחיפה אוטומטית של פרדיקטים מסוימים של שאילתות, למשל סינון של עמודות מקוננות אל BigQuery. בנוסף, היכולת החדשה להריץ קודם שאילתת SQL ב-BigQuery באמצעות ממשק ה-API ‏query() מקטינה את גודל ההעברה של מערך הנתונים שמתקבל.

בשלבים הבאים מוסבר איך לגשת למערך נתונים ב-BigQuery ולכתוב נתונים משלכם ב-BigQuery.

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

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

  1. כדי לקרוא את טבלת BigQuery, משתמשים בקטע הקוד הבא במחברת Databricks.

    table = "bigquery-public-data.samples.shakespeare"
    df = spark.read.format("bigquery").option("table",table).load()
    df.createOrReplaceTempView("shakespeare")
    

    מריצים את הקוד על ידי לחיצה על Shift+Return.

    עכשיו אפשר לשלוח שאילתות בטבלה ב-BigQuery באמצעות Apache Spark DataFrame ‏ (df). לדוגמה, אפשר להשתמש בפקודה הבאה כדי להציג את שלוש השורות הראשונות של ה-DataFrame:

    df.show(3)
    

    כדי לשלוח שאילתה לטבלה אחרת, מעדכנים את המשתנה table.

  2. אחת התכונות העיקריות של מחברות Databricks היא שאפשר לשלב תאים בשפות שונות כמו Scala,‏ Python ו-SQL במחברת אחת.

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

    %sql
    SELECT word, SUM(word_count) AS