מבוא לטבלאות אובייקטים
במאמר הזה מוסבר על טבלאות אובייקטים, שהן טבלאות לקריאה בלבד של אובייקטים של נתונים לא מובנים ששוכנים ב-Cloud Storage.
טבלאות אובייקטים מאפשרות לכם לנתח נתונים לא מובנים ב-Cloud Storage. אפשר לבצע ניתוח באמצעות פונקציות מרוחקות או לבצע היקש באמצעות BigQuery ML, ואז לצרף את התוצאות של הפעולות האלה לשאר הנתונים המובנים ב-BigQuery.
בדומה לטבלאות BigLake, טבלאות אובייקטים משתמשות בהענקת הרשאות גישה, שמפרידה בין הגישה לטבלת האובייקטים לבין הגישה לאובייקטים ב-Cloud Storage. חיבור חיצוני שמשויך לחשבון שירות משמש לחיבור ל-Cloud Storage, כך שצריך להעניק למשתמשים גישה רק לטבלת האובייקטים. כך תוכלו לאכוף אבטחה ברמת השורה ולנהל את האובייקטים שהמשתמשים יכולים לגשת אליהם.
אפשר להשתמש בהצהרה CREATE EXTERNAL TABLE כדי ליצור טבלת אובייקטים, כמו בדוגמה הבאה:
CREATE EXTERNAL TABLE `myproject.mydataset.myobjecttable`
WITH CONNECTION `myproject.us.myconnection`
OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://mybucket/*'] );
מידע נוסף על יצירת טבלאות אובייקטים זמין במאמר בנושא יצירת טבלאות אובייקטים.
סכימת טבלת אובייקטים
טבלת אובייקטים מספקת אינדקס של מטא-נתונים על אובייקטים של נתונים לא מובְנים בקטגוריה ספציפית של Cloud Storage. כל שורה בטבלה תואמת לאובייקט, והעמודות בטבלה תואמות למטא-נתונים של האובייקט שנוצרו על ידי Cloud Storage, כולל מטא-נתונים מותאמים אישית.
טבלת אובייקטים מכילה גם פסאודו-עמודה data שמייצגת את תוכן הקובץ בבייטים גולמיים, והיא מאוכלסת אוטומטית כשיוצרים את טבלת האובייקטים.
העמודה הווירטואלית הזו משמשת את הפונקציה ML.DECODE_IMAGE כשמריצים הסקה על נתוני תמונות. אי אפשר לכלול את פסאודו-העמודה data בשאילתות, והיא לא מופיעה כחלק מסכימת טבלת האובייקט.
בטבלה הבאה מפורט הסכימה הקבועה שמשמשת טבלאות אובייקטים:
| שם השדה | סוג | מצב | תיאור |
|---|---|---|---|
uri |
מחרוזת | יכול להיות ריק | uri: מזהה משאב אחיד (URI) של האובייקט, בפורמט gs://bucket_name/[folder_name/]object_name. |
generation |
מספר שלם | יכול להיות ריק | הגנרציה של האובייקט, שמזהה את גרסת האובייקט. |
content_type |
מחרוזת | יכול להיות ריק | השדה Content-Type של נתוני האובייקט, שמזהה את סוג המדיה. אם אובייקט מאוחסן ללא Content-Type, הוא מוחזר בתור application/octet-stream. |
size |
מספר שלם | יכול להיות ריק | השדה Content-Length של הנתונים בבייטים. |
md5_hash |
מחרוזת | יכול להיות ריק | גיבוב MD5 של הנתונים, שמקודד באמצעות base64. מידע נוסף על השימוש בגיבוב MD5 זמין במאמר בנושא מטא-נתונים של אובייקטים ב-Cloud Storage. |
updated |
TIMESTAMP | יכול להיות ריק | הפעם האחרונה שבה בוצע שינוי במטא-נתונים של האובייקט. |
metadata |
רשומה | מרובה ערכים | מטא-נתונים מותאמים אישית של האובייקט. כל פריט מטא-נתונים מיוצג כזוג של מפתח וערך בשדות (metadata.)name ו-(metadata.)value של שדה metadata. |
(metadata.)name |
מחרוזת | יכול להיות ריק | מזינים רשומה של מטא-נתונים. |
(metadata.)value |
מחרוזת | יכול להיות ריק | הערך ברשומה ספציפית של מטא-נתונים. |
ref |
STRUCT | יכול להיות ריק | מטא-נתונים של Cloud Storage בניהול Google מאוחסנים בפורמט ObjectRef.(תצוגה מקדימה) אפשר להשתמש בעמודה הזו כדי לשמור על ערכי ObjectRef בטבלאות רגילות.
הערכים ObjectRef מאפשרים לשלב נתוני אובייקטים עם נתונים מובְנים.
העמודה הזו נוצרת רק אם אתם ברשימת ההיתרים של התצוגה המקדימה של נתונים מרובי-אופנים.
|
השורות בטבלת אובייקטים נראות בערך כך:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| uri | generation | content_type | size | md5_hash | updated | metadata...name | metadata...value | ref.uri | ref.version | ref.authorizer | ref.details |
—----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| gs://mybucket/a.jpeg | 165842… | image/jpeg | 26797 | 8c33be10f… | 2022-07-21 17:35:40.148000 UTC | null | null | gs://mybucket/a.jpeg | 12345678 | us.conn | {"gcs_metadata":{"content_type":"image/jpeg","md5_hash"… |
—----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| gs://mybucket/b.bmp | 305722… | image/bmp | 57932 | 44eb90cd1… | 2022-05-14 12:09:38.114000 UTC | null | null | gs://mybucket/b.bmp | 23456789 | us.conn | {"gcs_metadata":{"content_type":"image/bmp","md5_hash"… |
—----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
תרחישים לדוגמה
אפשר להריץ שאילתות על המטא-נתונים בטבלת אובייקטים באותו אופן שבו מריצים שאילתות על כל טבלה אחרת ב-BigQuery. עם זאת, תרחיש השימוש העיקרי בטבלאות אובייקטים הוא לאפשר גישה לנתונים לא מובנים לצורך ניתוח. אפשר להשתמש ב-BigQuery ML כדי להריץ הסקה בטבלאות של אובייקטים בתמונות באמצעות מודלים של TensorFlow, TensorFlow Lite ו-PyTorch. אפשר גם להשתמש בפונקציות מרוחקות כדי לנתח נתונים לא מובְנים כמעט בכל דרך שרוצים. לדוגמה, אפשר ליצור פונקציה מרוחקת שמאפשרת לכם לנתח תמונות באמצעות Cloud Vision, או פונקציה שמאפשרת לכם לחלץ מטא-נתונים ממסמכי PDF באמצעות Apache Tika.
בטבלה הבאה מפורטים נקודות השילוב שבהן אפשר להשתמש כדי להפעיל למידת מכונה על נתונים בטבלת אובייקטים:
| Integration | תיאור | תרחיש לדוגמה | מדריך |
|---|---|---|---|
הפונקציה AI.GENERATE_TEXT |
יצירת טקסט באמצעות מודל של Vertex AI, מודל של שותף או מודל פתוח. | אתם רוצים ליצור טקסט מנתוני אובייקט. | יצירת טקסט באמצעות הפונקציה AI.GENERATE_TEXT
|
הפונקציה AI.GENERATE_EMBEDDING |
יצירת הטמעות באמצעות מודל multimodal של Vertex AI. | אתם רוצים ליצור הטמעות של נתוני וידאו או תמונות כדי להשתמש בהן בחיפושים וקטוריים, בנתוני קלט של מודלים או בתרחישי שימוש אחרים. | יצירת הטמעות של תמונות באמצעות הפונקציה AI.GENERATE_EMBEDDINGיצירת הטמעות של סרטונים באמצעות הפונקציה AI.GENERATE_EMBEDDING
|
| מודלים של BigQuery ML שיובאו | ייבוא מודלים של TensorFlow, TensorFlow Lite או ONNX אל BigQuery ML כדי להריץ הסקה מקומית ב-BigQuery . | אתם משתמשים במודלים של קוד פתוח או במודלים מותאמים אישית שעומדים במגבלות הנתמכות. | הדרכה: הפעלת הסקה בטבלת אובייקטים באמצעות מודל של וקטור תכונות |
| פונקציות Cloud Run | שימוש בפונקציות Cloud Run כדי לבצע קריאה לשירותים או למודלים מתארחים. זהו השילוב הכי כללי. | אתם מארחים את המודלים בעצמכם ב-Compute Engine, ב-Google Kubernetes Engine או בתשתית אחרת בבעלות הלקוח. | |
הפונקציה ML.ANNOTATE_IMAGE |
משתמשים ב-Cloud Vision API כדי להוסיף הערות לתמונות. | אתם רוצים להוסיף הערות לתמונות באמצעות מודל שעבר אימון של Vision API. | הוספת הערות לתמונות באמצעות הפונקציה ML.ANNOTATE_IMAGE |
הפונקציה ML.PROCESS_DOCUMENT |
משתמשים ב-Document AI API כדי לחלץ תובנות מהמסמכים. | אתם רוצים להשתמש במעבדי מסמכים מותאמים אישית או במעבדי מסמכים שאומנו מראש ב-Document AI. | עיבוד מסמכים באמצעות הפונקציה ML.PROCESS_DOCUMENT |
הפונקציה ML.TRANSCRIBE |
משתמשים ב-Speech-to-Text API כדי לתמלל קובצי אודיו. | אתם רוצים להשתמש במערכות מותאמות אישית או במערכות שהוכשרו מראש לזיהוי דיבור. | תמלול של קובצי אודיו באמצעות הפונקציה ML.TRANSCRIBE |
אפשר ליצור תצוגה מפורטת או טבלה מהתוצאות של הניתוח אם רוצים לצרף את התוצאות לנתונים מובְנים אחרים. לדוגמה, ההצהרה הבאה יוצרת טבלה על סמך תוצאות של הסקה:
CREATE TABLE my_dataset.my_inference_results AS SELECT uri, content_type, vision_feature FROM ML.PREDICT( MODEL my_dataset.vision_model, SELECT ML.DECODE_IMAGE(data) AS vision_input FROM my_dataset.object_table );
אחרי שיוצרים את הטבלה, אפשר לצרף אותה לטבלאות אחרות על סמך שדות מטא-נתונים רגילים או מותאמים אישית, כמו שמוצג בהמשך:
SELECT a.vision_feature, a.uri, b.description FROM my_dataset.my_inference_results a JOIN my_dataset.image_description b ON a.uri = b.uri;
אתם יכולים גם ליצור אינדקס חיפוש כדי להפעיל חיפושים בתוצאות הניתוח. לדוגמה, ההצהרה הבאה יוצרת אינדקס חיפוש על נתונים שחולצו מקובצי PDF:
CREATE SEARCH INDEX my_index ON pdf_text_extract(ALL COLUMNS);
לאחר מכן תוכלו להשתמש באינדקס כדי למצוא את מה שאתם צריכים בתוצאות האלה:
SELECT * FROM pdf_text_extract WHERE SEARCH(pdf_text, 'Google');
יתרונות
ניתוח נתונים לא מובנים באופן מקורי ב-BigQuery מספק את היתרונות הבאים:
- היא מפחיתה את המאמץ הידני בכך שהיא מאפשרת לכם להפוך לאוטומטיים שלבים של עיבוד מקדים, כמו התאמת גודל התמונות לדרישות של המודל.
- הוא מאפשר לכם להשתמש בממשק SQL המוכר כדי לעבוד עם נתונים לא מובְנים.
- הוא עוזר לכם לחסוך בעלויות על ידי שימוש במשבצות קיימות ב-BigQuery, במקום להקצות צורות חדשות של מחשוב.
כתובות URL חתומות
כדי לקבל גישה לנתונים שמיוצגים על ידי אובייקט, צריך ליצור כתובת URL חתומה. אפשר להשתמש בכתובת ה-URL החתומה כדי להציג ישירות את נתוני האובייקט, ואפשר גם להעביר כתובות URL חתומות לפונקציות מרוחקות כדי לאפשר להן לעבוד עם נתוני טבלת האובייקטים.
משתמשים בפונקציה EXTERNAL_OBJECT_TRANSFORM כדי ליצור כתובות URL חתומות, כמו בדוגמה הבאה:
SELECT uri, signed_url FROM EXTERNAL_OBJECT_TRANSFORM(TABLE `mydataset.myobjecttable`, ['SIGNED_URL']);
התוצאה תהיה דומה לזו:
---------------------------------------------------------------------------------------------------
| uri | signed_url |
—--------------------------------------------------------------------------------------------------
| gs://mybucket/a.docx | https://storage.googleapis.com/mybucket/a.docx?X-Goog-Signature=abcd&... |
—-------------------------------------------------------------------------------------------------
| gs://mybucket/b.pdf | https://storage.googleapis.com/mybucket/b.pdf?X-Goog-Signature=wxyz&... |
—--------------------------------------------------------------------------------------------------
כתובות URL חתומות שנוצרות מטבלאות אובייקטים מאפשרות לכל משתמש או הליך שיש לו אותן לקרוא את האובייקטים התואמים. כתובות URL חתומות שנוצרו יפוגו אחרי 6 שעות. מידע נוסף זמין במאמר כתובות URL חתומות ב-Cloud Storage.
בקרת גישה
טבלאות אובייקטים מבוססות על BigLake, ולכן הן משתמשות בחיבור חיצוני שמבוסס על חשבון שירות כדי לגשת לנתונים ב-Cloud Storage. כך מפרידים את הגישה לטבלה מהגישה למאגר האובייקטים הבסיסי באמצעות הקצאת הרשאות גישה. אתם נותנים לחשבון השירות הרשאות גישה לנתונים ולמטא-נתונים מהאובייקטים, והוא מציג אותם בטבלה. אתם מעניקים למשתמשים הרשאות רק בטבלה, שבה אתם יכולים לשלוט בגישה לנתונים באמצעות ניהול זהויות והרשאות גישה (IAM) ואבטחה ברמת השורה.
טבלאות אובייקטים שונות מטבלאות אחרות שמשתמשות בהענקת הרשאות גישה, כי גישה לשורה בטבלת אובייקטים מעניקה גישה לתוכן הקובץ הבסיסי. משתמש לא יכול לגשת לאובייקט ישירות, אבל הוא יכול ליצור כתובת URL חתומה שתאפשר לו לראות את תוכן הקובץ. לדוגמה, אם למשתמש יש גישה לשורה בטבלת האובייקטים שמייצגת את קובץ התמונה flower.jpg, הוא יכול ליצור כתובת URL חתומה כדי להציג את הקובץ ולראות שמדובר בתמונה של חרצית.
הגדרת מדיניות גישה ברמת השורה בטבלת אובייקטים מגבילה את הגישה של משתמש או קבוצה למטא-נתונים של האובייקט בשורות נבחרות, וגם לאובייקטים שמיוצגים על ידי השורות האלה. לדוגמה, ההצהרה הבאה מעניקה למשתמשת אלה גישה רק לשורות שמייצגות אובייקטים שנוצרו לפני 25 ביוני 2022:
CREATE ROW ACCESS POLICY before_20220625 ON my_dataset.my_object_table GRANT TO ("user:alice@example.com") FILTER USING (updated < TIMESTAMP("2022-06-25"));
עם מדיניות הגישה ברמת השורה הזו, התוצאות הבאות נכונות לגבי אליס:
- הפעלת השאילתה
SELECT * FROM my_dataset.my_object_table;מחזירה רק שורות עם ערךupdatedלפני 25 ביוני 2022. - הפעלת ההיקש ב-
my_dataset.my_object_tableמחזירה רק תחזיות לגבי אובייקטים עם ערךupdatedלפני 25 ביוני 2022. - יצירת כתובות URL חתומות עבור
my_dataset.my_object_tableיוצרת רק כתובות URL לאובייקטים עם ערךupdatedלפני 25 ביוני 2022.
אפשר גם להגביל את הגישה לשורות בטבלת אובייקטים באמצעות מטא-נתונים בהתאמה אישית.
לדוגמה, ההצהרה הבאה מגבילה את הגישה של הקבוצה users רק לשורות שבהן האובייקט תויג ככזה שלא מכיל פרטים אישיים מזהים:
CREATE ROW ACCESS POLICY no_pii ON my_dataset.my_object_table GRANT TO ("group:users@example.com") FILTER USING (ARRAY_LENGTH(metadata)=1 AND metadata[OFFSET(0)].name="no_pii")
מודל אבטחה
בדרך כלל התפקידים הבאים בארגון מעורבים בניהול ובשימוש בטבלאות אובייקטים:
- מנהלים של אגם נתונים. בדרך כלל, האדמינים האלה מנהלים את כללי המדיניות של ניהול זהויות והרשאות גישה (IAM) בקטגוריות ובאובייקטים של Cloud Storage.
- אדמינים של מחסן נתונים (data warehouse). בדרך כלל האדמינים האלה יוצרים, מוחקים ומעדכנים טבלאות.
- מנתחי נתונים. מנתחי נתונים בדרך כלל קוראים נתונים ומריצים שאילתות.
אדמינים של אגמי נתונים אחראים ליצירת קישורים ולשיתוף שלהם עם אדמינים של מחסני נתונים. בתמורה, מנהלי מחסן נתונים יוצרים טבלאות, מגדירים אמצעי בקרה מתאימים לגישה ומשתפים את הטבלאות עם אנליסטים של נתונים.
קבצים נתמכים של אובייקטים
אפשר ליצור טבלת אובייקטים על כל סוג וגודל של קובץ נתונים לא מובְנים, ואפשר ליצור פונקציות מרוחקות כדי לעבוד עם כל סוג של נתונים לא מובְנים. עם זאת, כדי לבצע הסקת מסקנות באמצעות BigQuery ML, טבלת אובייקטים יכולה לכלול רק קובצי תמונות שעומדים בכמה דרישות לגבי גודל וסוג. מידע נוסף מופיע בקטע מגבלות.
שמירת מטא-נתונים במטמון לשיפור הביצועים
אפשר להשתמש במטא-נתונים שנשמרו במטמון כדי לשפר את הביצועים של הסקת מסקנות וסוגים אחרים של ניתוח בטבלאות אובייקטים. שמירת מטא-נתונים במטמון מועילה במיוחד במקרים שבהם טבלת האובייקטים מפנה למספרים גדולים של אובייקטים. BigQuery משתמש ב-CMETA כמערכת מבוזרת של מטא-נתונים כדי לטפל בטבלאות גדולות בצורה יעילה. CMETA מספק מטא-נתונים פרטניים ברמת העמודה והבלוק, שאפשר לגשת אליהם דרך טבלאות מערכת. המערכת הזו עוזרת לשפר את הביצועים של השאילתות על ידי אופטימיזציה של הגישה לנתונים ושל העיבוד שלהם. כדי לשפר עוד יותר את ביצועי השאילתות בטבלאות גדולות, BigQuery שומר מטמון של מטא-נתונים. משימות רענון של CMETA דואגות שהמטמון הזה יהיה עדכני.
המטא-נתונים כוללים שמות של קבצים, מידע על חלוקה למחיצות ומטא-נתונים פיזיים מקבצים, כמו מספר השורות. אתם יכולים לבחור אם להפעיל שמירת מטמון של מטא-נתונים בטבלה. התכונה 'שמירת מטא-נתונים במטמון' מועילה במיוחד לשאילתות עם מספר גדול של קבצים ולשאילתות עם מסנני חלוקה של Apache Hive.
אם לא מפעילים שמירה במטמון של מטא-נתונים, כדי לקבל את המטא-נתונים של האובייקט, השאילתות בטבלה צריכות לקרוא את מקור הנתונים החיצוני. קריאת הנתונים האלה מגדילה את זמן האחזור של השאילתה. יכול להיות שיחלפו כמה דקות עד שיוצגו מיליוני קבצים ממקור הנתונים החיצוני. אם מפעילים שמירת מטא-נתונים במטמון, השאילתות יכולות להימנע מרישום קבצים ממקור הנתונים החיצוני, ולחלק ולסנן קבצים מהר יותר.
שמירת מטא-נתונים במטמון משולבת גם עם ניהול גרסאות של אובייקטים ב-Cloud Storage. כשהמטמון מתמלא או מתעדכן, הוא מתעד את המטא-נתונים על סמך הגרסה הפעילה של האובייקטים ב-Cloud Storage באותו זמן. כתוצאה מכך, שאילתות שמופעל בהן מטמון של מטא-נתונים קוראות נתונים שתואמים לגרסה הספציפית של האובייקט שנשמרה במטמון, גם אם גרסאות חדשות יותר הופכות לפעילות ב-Cloud Storage. כדי לגשת לנתונים מגרסאות מעודכנות של אובייקטים ב-Cloud Storage, צריך לרענן את מטמון המטא-נתונים.
יש שני מאפיינים ששולטים בתכונה הזו:
- Maximum staleness מציין מתי שאילתות משתמשות במטא-נתונים שנשמרו במטמון.
- מצב מטמון של מטא-נתונים מציין איך המטא-נתונים נאספים.
כשמפעילים שמירת מטמון של מטא-נתונים, מציינים את המרווח המקסימלי של מטא-נתונים לא עדכניים שמתקבל על הדעת לפעולות שמתבצעות בטבלה. לדוגמה, אם מציינים מרווח של שעה אחת, פעולות שמתבצעות על הטבלה משתמשות במטא-נתונים שנשמרו במטמון אם הם רעננו בשעה האחרונה. אם המטא-נתונים שנשמרו במטמון ישנים יותר, הפעולה חוזרת לאחור לאחזור מטא-נתונים מ-Cloud Storage. אפשר להגדיר מרווח זמן בין 30 דקות ל-7 ימים.
כשמפעילים שמירת מטמון של מטא-נתונים בטבלאות BigLake או בטבלאות אובייקטים, BigQuery מפעיל משימות לרענון יצירת המטא-נתונים. אתם יכולים לבחור אם לרענן את המטמון באופן אוטומטי או ידני:
- במקרה של רענון אוטומטי, המטמון מתרענן במרווח זמן שמוגדר על ידי המערכת, בדרך כלל בין 30 ל-60 דקות. רענון המטמון באופן אוטומטי הוא גישה טובה אם הקבצים ב-Cloud Storage מתווספים, נמחקים או משתנים במרווחי זמן אקראיים. אם אתם צריכים לשלוט בתזמון של הרענון, למשל כדי להפעיל את הרענון בסוף של עבודת חילוץ, שינוי וטעינה, אתם יכולים להשתמש ברענון ידני.
לרענונים ידניים, מריצים את הפרוצדורה
BQ.REFRESH_EXTERNAL_METADATA_CACHEשל המערכת כדי לרענן את מטמון המטא-נתונים בלוח זמנים שעונה על הדרישות שלכם. רענון ידני של המטמון הוא גישה טובה אם הקבצים ב-Cloud Storage נוספים, נמחקים או משתנים במרווחי זמן ידועים, למשל כפלט של צינור.אם תפעילו כמה רענונים ידניים בו-זמנית, רק אחד מהם יצליח.
אם לא מרעננים את מטמון המטא-נתונים, התוקף שלו פג אחרי 7 ימים.
רענון ידני ורענון אוטומטי של מטמון מתבצעים עם עדיפות שאילתה של INTERACTIVE.
שימוש בהזמנות של BACKGROUND
אם בוחרים להשתמש ברענון אוטומטי, מומלץ ליצור הזמנה, ואז ליצור הקצאה עם BACKGROUNDסוג העבודה לפרויקט שמריץ את משימות הרענון של מטמון המטא-נתונים. עם BACKGROUND הזמנות, עבודות הרענון משתמשות במאגר משאבים ייעודי, וכך הן לא מתחרות עם שאילתות של משתמשים, וגם לא עלולות להיכשל אם אין מספיק משאבים זמינים עבורן.
השימוש במאגר משבצות משותף לא כרוך בעלות נוספת, אבל שימוש בBACKGROUNDהזמנות במקום זאת מספק ביצועים עקביים יותר כי הוא מקצה מאגר משאבים ייעודי, ומשפר את המהימנות של עבודות הרענון ואת היעילות הכוללת של השאילתות ב-BigQuery.
לפני שמגדירים את הערכים של מרווח הרענון ומצב שמירת המטא-נתונים במטמון, חשוב להבין איך הם ישפיעו אחד על השני. מומלץ להביא בחשבון את הדוגמאות הבאות:
- אם אתם מרעננים ידנית את מטמון המטא-נתונים של טבלה, והגדרתם את מרווח הזמן של הנתונים המיושנים ליומיים, אתם צריכים להפעיל את
BQ.REFRESH_EXTERNAL_METADATA_CACHEפרוצדורת המערכת כל יומיים או פחות, אם אתם רוצים שהפעולות בטבלה ישתמשו במטא-נתונים שנשמרו במטמון. - אם אתם מרעננים באופן אוטומטי את מטמון המטא-נתונים של טבלה, והגדרתם את מרווח הזמן של הנתונים המיושנים ל-30 דקות, יכול להיות שחלק מהפעולות שלכם בטבלה יקראו מ-Cloud Storage אם רענון מטמון המטא-נתונים יימשך יותר זמן מהחלון הרגיל של 30 עד 60 דקות.
כדי למצוא מידע על עבודות רענון של מטא-נתונים, מריצים שאילתה על התצוגה INFORMATION_SCHEMA.JOBS, כמו בדוגמה הבאה:
SELECT * FROM `region-us.INFORMATION_SCHEMA.JOBS_BY_PROJECT` WHERE job_id LIKE '%metadata_cache_refresh%' AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 6 HOUR) ORDER BY start_time DESC LIMIT 10;
מידע נוסף על שמירת מטא-נתונים במטמון
מידע נוסף על הגדרת אפשרויות שמירה במטמון של מטא-נתונים זמין במאמר יצירת טבלאות של אובייקטים.
מגבלות
- טבלאות אובייקטים הן לקריאה בלבד, כי הן ממופות לאובייקטים של נתונים לא מובנים ב-Cloud Storage. אי אפשר לשנות טבלת אובייקטים או לערוך נתונים בטבלת אובייקטים.
- התמיכה בטבלת אובייקטים לא זמינה ב-SQL מדור קודם או בסביבות ענן אחרות כמו Amazon Web Services (AWS) ו-Microsoft Azure.
- אם רוצים לבצע הסקה באמצעות BigQuery ML, המודל וטבלת האובייקטים שבהם משתמשים צריכים לעמוד בדרישות שמתוארות בקטע מגבלות.
- בשאילתות שכוללות טבלאות אובייקטים, אי אפשר לגשת ליותר מ-10GB של מטא-נתונים של אובייקטים. לדוגמה, אם שאילתה ניגשת ל-100TB מתוך שילוב של עמודות מטא-נתונים בטבלאות אובייקטים ונתוני אובייקטים באמצעות כתובות URL חתומות, רק 10GB מתוך 100TB יכולים להיות מעמודות המטא-נתונים.
- טבלאות של אובייקטים כפופות לאותן מגבלות כמו כל הטבלאות החיצוניות האחרות ב-BigQuery. מידע נוסף מופיע בקטע מכסות.
- שאילתות על טבלאות אובייקטים כפופות לאותן מגבלות כמו כל השאילתות האחרות ב-BigQuery. מידע נוסף מופיע בקטע מכסות.
- פונקציות מרוחקות שמבצעות עיבוד של נתונים לא מובנים מטבלאות של אובייקטים כפופות לאותן מגבלות כמו כל הפונקציות המרוחקות האחרות.
- התוקף של כתובות URL חתומות שנוצרות לאובייקטים בטבלאות אובייקטים פג אחרי 6 שעות, שזה הזמן המקסימלי להרצת שאילתה.
- היקש באמצעות BigQuery ML אינו אפשרי בתמחור על פי דרישה או במהדורת Standard.
אין תמיכה בפונקציות הבאות בתמחור על פי דרישה או במהדורת Standard:
בטבלאות של אובייקטים יש עד 60 מיליון שורות. כדי להשתתף בהשקת גרסת Preview שבה מספר השורות המקסימלי הוא 300 מיליון, צריך למלא את טופס הבקשה הזה.
פעולות
UNION ALLשמשלבות טבלאות אובייקטים ריקות ולא ריקות לא נתמכות ועשויות להחזיר שגיאה.
עלויות
העלויות משויכות להיבטים הבאים של טבלאות אובייקטים:
- הרצת שאילתות על הטבלאות.
- רענון מטמון המטא-נתונים.
אם יש לכם הזמנות של משבצות, לא תחויבו על שאילתות בטבלאות חיצוניות. במקום זאת, המערכת משתמשת במשבצות לביצוע השאילתות האלה.
בטבלה הבאה אפשר לראות איך מודל התמחור משפיע על אופן החיוב של העלויות האלה:
תמחור על פי דרישה |
מהדורות Standard, Enterprise ו-Enterprise Plus |
|
|---|---|---|
שאילתות |
אתם מחויבים על בסיס בייט שעבר עיבוד על ידי שאילתות משתמשים. |
יחידות קיבולת (Slot) בהקצאות של הזמנות עם QUERY סוג עבודה נצרכות בזמן השאילתה. |
רענון ידני של מטמון המטא-נתונים. |
תחויבו על בסיס בייט על העיבוד של רענון המטמון. |
יחידות קיבולת (Slot) בהקצאות של הזמנות עם QUERYסוג העבודה נצרכות במהלך רענון המטמון. |
רענון אוטומטי של מטמון המטא-נתונים. |
תחויבו על בסיס בייט על העיבוד של רענון המטמון. |
יחידות קיבולת (Slot) בהקצאות של הזמנות עם BACKGROUNDסוג העבודה נצרכות במהלך רענון המטמון.אם אין BACKGROUND מקומות שמורים זמינים לרענון מטמון המטא-נתונים, BigQuery משתמש אוטומטית ביחידות קיבולת (slot) בQUERY מקומות שמורים במקום זאת, אם אתם משתמשים במהדורת Enterprise או Enterprise Plus. |
בנוסף, תחויבו על אחסון וגישה לנתונים על ידי Cloud Storage, Amazon S3 ו-Azure Blob Storage, בהתאם להנחיות התמחור של כל מוצר.
כש-BigQuery מבצע אינטראקציה עם Cloud Storage, יכול להיות שתחויבו בעלויות הבאות של Cloud Storage:
- עלויות אחסון הנתונים לפי כמות הנתונים המאוחסנים.
- עלויות אחזור נתונים עבור גישה לנתונים בסוגי האחסון Nearline, Coldline ו-Archive. חשוב לנקוט משנה זהירות כשמבצעים שאילתות בטבלאות או מרעננים את מטמון המטא-נתונים ביחס לסוגי האחסון האלה, כי החיובים יכולים להיות משמעותיים.
- עלויות שימוש ברשת עבור נתונים שקוראים באזורים שונים, למשל כשמערך הנתונים ב-BigQuery והקטגוריה ב-Cloud Storage נמצאים באזורים שונים.
- חיובים על עיבוד נתונים. עם זאת, לא תחויבו על קריאות ל-API שמתבצעות על ידי BigQuery בשמכם, כמו קריאות לרישום או לקבלת משאבים.
שימוש בטבלאות אובייקטים עם BigQuery sharing
טבלאות אובייקטים תואמות ל-BigQuery sharing (לשעבר Analytics Hub). אפשר לפרסם מערכי נתונים שמכילים טבלאות של אובייקטים ככרטיסי מוצר לשיתוף. משתמשים שמשתפים איתם את המינוי יכולים להירשם למינויים האלה, וכך לקבל גישה לקבוצת נתונים לקריאה בלבד, שנקראת קבוצת נתונים מקושרת, בפרויקט שלהם. מנויים יכולים להריץ שאילתות על כל הטבלאות במערך הנתונים המקושר, כולל כל טבלאות האובייקטים. מידע נוסף זמין במאמר הרשמה למינוי של כרטיס מוצר.