שאילתת נתונים ב-Blob Storage

במאמר הזה מוסבר איך לשלוח שאילתות לנתונים שמאוחסנים בטבלת BigLake ב-Azure Blob Storage.

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

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

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

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

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

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

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

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

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

הרצת שאילתות על טבלאות BigLake ב-Blob Storage

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

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

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

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

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

    כניסה ל-BigQuery

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

    SELECT * FROM DATASET_NAME.TABLE_NAME;

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

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

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

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

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

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

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

המסוף

כשמריצים שאילתה על טבלת 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 מנסה לדלג על קריאת קבצים שלא עומדים בדרישות המסנן. ההמלצות שדומות ל המלצות לגבי שאילתות של טבלאות עם חלוקה למחיצות בזמן ההטמעה באמצעות עמודות פסאודו רלוונטיות גם כשיוצרים פסוקיות WHERE של שאילתות עם עמודת הפסאודו _FILE_NAME.

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