שליחת שאילתות לטבלאות BigLake ב-Blob Storage

באמצעות BigQuery Omni, אתם יכולים להריץ שאילתות GoogleSQL על נתונים שמאוחסנים בטבלאות BigLake ב-Azure Blob Storage. שליחת שאילתות לטבלאות BigLake ב-Blob Storage מאפשרת לנתח נתונים ב-Blob Storage ולצרף אותם לטבלאות אחרות בלי להעתיק או להעביר את הקבצים הבסיסיים.

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

מוודאים שיש לכם טבלת BigLake של Blob Storage.

התפקידים הנדרשים

כדי לשלוח שאילתות לטבלאות BigLake ב-Blob Storage, צריך לוודא שלגורם שמפעיל את BigQuery API יש את התפקידים הבאים:

  • משתמש בחיבור ל-BigQuery‏ (roles/bigquery.connectionUser)
  • צפייה בנתוני BigQuery‏ (roles/bigquery.dataViewer)
  • משתמש BigQuery‏ (roles/bigquery.user)

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

כדי לראות את ההרשאות הנדרשות לשליחת שאילתות לטבלאות BigLake ב-Blob Storage, מרחיבים את הקטע Required permissions:

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

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

שליחת שאילתות לטבלאות BigLake ב-Blob Storage

אחרי שיוצרים טבלת BigLake של Blob Storage, אפשר לשלוח אליה שאילתות באמצעות תחביר GoogleSQL, בדיוק כמו בטבלה רגילה ב-BigQuery.

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

כשיוצרים הזמנה באזור של BigQuery Omni, צריך להשתמש במהדורת Enterprise. במאמר יצירת הזמנות מוסבר איך יוצרים הזמנה עם מהדורה.

מריצים שאילתה על טבלת BigLake של Blob Storage:

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

    כניסה ל-BigQuery

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

    SELECT * FROM DATASET_NAME.TABLE_NAME;

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

    • ‫DATASET_NAME: השם של מערך הנתונים שיצרתם
    • ‫TABLE_NAME: השם של טבלת BigLake שיצרתם

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

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

הרצת שאילתה על טבלה זמנית

ב-BigQuery נוצרות טבלאות זמניות לאחסון תוצאות של שאילתות. כדי לאחזר תוצאות של שאילתות מטבלאות זמניות, אפשר להשתמש במסוף או ב-BigQuery API. Google Cloud

בוחרים באחת מהאפשרויות הבאות:

המסוף

כששולחים שאילתה לטבלת BigLake שמפנה לנתוני ענן חיצוניים, אפשר לראות את תוצאות השאילתה במסוף Google Cloud .

API

כדי לשלוח שאילתה לטבלת BigLake באמצעות ה-API:

  1. יוצרים אובייקט Job.
  2. מפעילים את השיטה jobs.insert כדי להריץ את השאילתה באופן אסינכרוני, או את השיטה jobs.query כדי להריץ את השאילתה באופן סינכרוני, ומעבירים את האובייקט Job.
  3. קוראים שורות באמצעות השיטה jobs.getQueryResults על ידי העברת ההפניה הנתונה למשימה, ואת השיטות tabledata.list על ידי העברת ההפניה הנתונה לטבלה של תוצאת השאילתה.

שליחת שאילתה לעמודה המדומה _FILE_NAME

טבלאות שמבוססות על מקורות נתונים חיצוניים מספקות עמודה מדומה בשם _FILE_NAME. העמודה הזו מכילה את הנתיב המלא לקובץ שאליו השורה שייכת. העמודה הזו זמינה רק בטבלאות שמפנות לנתונים חיצוניים שמאוחסנים ב-Cloud Storage, ב-Google Drive, ב-Amazon S3 וב-Azure Blob Storage.

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

  bq query \
  --project_id=PROJECT_ID \
  --use_legacy_sql=false \
  'SELECT
     name,
     _FILE_NAME AS fn
   FROM
     `DATASET.TABLE_NAME`
   WHERE
     name contains "Alex"' 

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

  • ‫PROJECT_ID הוא מזהה פרויקט תקין (הדגל הזה לא נדרש אם משתמשים ב-Cloud Shell או אם מגדירים פרויקט ברירת מחדל ב-Google Cloud CLI)
  • ‫DATASET הוא השם של מערך הנתונים שבו מאוחסנת הטבלה החיצונית הקבועה.
  • ‫TABLE_NAME הוא השם של הטבלה החיצונית הקבועה

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

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