שימוש במטמון מטא-נתונים למקורות נתונים חיצוניים
שמירת מטא-נתונים במטמון, שנקראת גם הוספת מטא-נתונים של עמודות לאינדקס, מאפשרת לשפר את ביצועי השאילתות בטבלאות אובייקטים ובטבלאות BigLake של Amazon S3 ו-Cloud Storage. הטבלאות האלה יכולות לשמור במטמון מטא-נתונים על קבצים במאגרי נתונים חיצוניים, כמו שמות קבצים, מידע על חלוקה למחיצות וספירת שורות.
באמצעות שמירת מטא-נתונים במטמון, השאילתות יכולות להימנע מיצירת רשימת קבצים ממקור הנתונים החיצוני, פעולה שיכולה להימשך כמה דקות כשמדובר במיליוני קבצים, ולחלק ולצמצם קבצים מהר יותר. השיפור הכי משמעותי הוא בשאילתות על מספר גדול של קבצים ובשאילתות עם מסנני מחיצות של Hive.
טבלאות נתמכות
אפשר לשמור במטמון מטא-נתונים של סוגי הטבלאות הבאים:
- טבלאות אובייקטים
- טבלאות BigLake ב-Amazon S3
- טבלאות BigLake ב-Cloud Storage
אתם יכולים לבחור אם להפעיל שמירת מטא-נתונים במטמון בטבלה. אפשר להפעיל שמירת מטא-נתונים במטמון בטבלת BigLake או בטבלת אובייקטים כשיוצרים את הטבלה. מידע נוסף על יצירת טבלאות אובייקטים זמין במאמר יצירת טבלאות אובייקטים. למידע נוסף על יצירת טבלאות BigLake, קראו את אחד מהנושאים הבאים:
הגדרות לשמירת מטא-נתונים במטמון
יש שני מאפיינים שקובעים את ההתנהגות של התכונה הזו:
- התיישנות מקסימלית מציינת מתי שאילתות משתמשות במטא-נתונים שנשמרו במטמון.
- מצב המטמון של המטא-נתונים מציין איך המטא-נתונים נאספים.
כשמפעילים שמירת מטא-נתונים במטמון, מציינים את המרווח המקסימלי של מטא-נתונים לא עדכניים שאפשר לקבל בפעולות בטבלה. לדוגמה, אם מציינים מרווח של שעה, פעולות בטבלה משתמשות במטא-נתונים שנשמרו במטמון אם הם רועננו בשעה האחרונה. אם המטא-נתונים במטמון ישנים יותר, הפעולה חוזרת לאחזור מטא-נתונים ממאגר הנתונים (Amazon S3 או Cloud Storage). אפשר לציין מרווח זמן של בין 30 דקות ל-7 ימים.
אתם יכולים לבחור לרענן את המטמון באופן אוטומטי או ידני:
- ברענון אוטומטי, המטמון מתרענן במרווח זמן שמוגדר במערכת, בדרך כלל בין 30 ל-60 דקות. רענון המטמון באופן אוטומטי הוא גישה טובה אם הקבצים במאגר הנתונים נוספים, נמחקים או משתנים במרווחי זמן אקראיים. אם אתם צריכים לשלוט בתזמון הרענון, למשל כדי להפעיל את הרענון בסוף משימת חילוץ-טרנספורמציה-טעינה, השתמשו ברענון ידני.
- כדי לרענן ידנית, מריצים את הפרוצדורה המערכתית
BQ.REFRESH_EXTERNAL_METADATA_CACHEכדי לרענן את המטמון של המטא-נתונים לפי לוח הזמנים שקבעתם. בטבלאות BigLake, אפשר לרענן את המטא-נתונים באופן סלקטיבי על ידי ציון ספריות משנה של ספריית הנתונים של הטבלה. כך אפשר להימנע מעיבוד מיותר של מטא-נתונים. רענון המטמון באופן ידני הוא גישה טובה אם הקבצים במאגר הנתונים נוספים, נמחקים או משתנים במרווחי זמן ידועים – לדוגמה, כפלט של צינור עיבוד נתונים.
רענון המטמון, גם הידני וגם האוטומטי, מתבצע בעדיפות שאילתה INTERACTIVE.
אם אתם בוחרים להשתמש ברענון אוטומטי, מומלץ ליצור מקום שמור ואז ליצור הקצאה עם סוג העבודה BACKGROUND לפרויקט שמריץ את משימות הרענון של המטמון של המטא-נתונים. כך משימות הרענון לא מתחרות על משאבים עם שאילתות של משתמשים, ולא נכשלות אם אין מספיק משאבים זמינים.
לפני שאתם מגדירים את הערכים של מרווח הזמן להתיישנות ושל מצב שמירת המטא-נתונים במטמון, חשוב שתבינו איך הם משפיעים אחד על השני. מומלץ להביא בחשבון את הדוגמאות הבאות:
- אם מטמון המטא-נתונים של טבלה מוגדר לדרוש רענון ידני, ומרווח הזמן להתיישנות מוגדר ליומיים, צריך להריץ את הפרוצדורה של המערכת
BQ.REFRESH_EXTERNAL_METADATA_CACHEכל יומיים או פחות אם רוצים שהפעולות בטבלה ישתמשו במטא-נתונים שנשמרו במטמון. - אם המטמון של המטא-נתונים של הטבלה מוגדר לרענון אוטומטי, ומרווח הזמן של העדכניות מוגדר ל-30 דקות, יכול להיות שחלק מהפעולות בטבלה יקראו ממאגר הנתונים אם הרענון של המטמון של המטא-נתונים יימשך יותר זמן מהרגיל (30 עד 60 דקות).
מידע נוסף על הגדרת אפשרויות לשמירת מטא-נתונים במטמון של טבלאות BigLake זמין במאמרים יצירת טבלאות חיצוניות של Amazon S3 BigLake ויצירת טבלאות חיצוניות של BigLake ל-Cloud Storage.
מידע נוסף על הגדרת אפשרויות השמירה במטמון של מטא-נתונים בטבלאות אובייקטים זמין במאמר יצירת טבלאות אובייקטים.
קבלת מידע על משימות לרענון המטמון של המטא-נתונים
כדי למצוא מידע על משימות רענון של מטמון המטא-נתונים, שולחים שאילתה לתצוגה INFORMATION_SCHEMA.JOBS, כמו בדוגמה הבאה:
SELECT * FROM `region-us.INFORMATION_SCHEMA.JOBS` WHERE job_id LIKE '%metadata_cache_refresh%' AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 6 HOUR) ORDER BY start_time DESC LIMIT 10;
שימוש במפתחות הצפנה בניהול הלקוח עם מטא-נתונים במטמון
המטא-נתונים ששמורים במטמון מוגנים באמצעות מפתח הצפנה בניהול הלקוח (CMEK) שמשמש לטבלה שאליה משויכים המטא-נתונים ששמורים במטמון. יכול להיות שה-CMEK הוחל ישירות על הטבלה, או שהטבלה ירשה את ה-CMEK ממערך הנתונים או מהפרויקט.
אם מוגדר מפתח CMEK כברירת מחדל לפרויקט או למערך הנתונים, או אם משנים את מפתח ה-CMEK הקיים של הפרויקט או של מערך הנתונים, זה לא משפיע על הטבלאות הקיימות או על המטא-נתונים שלהן שנשמרו במטמון. כדי להחיל את המפתח החדש גם על הטבלה וגם על המטא-נתונים שלה שנשמרו במטמון, צריך לשנות את המפתח של הטבלה.
מפתחות CMEK שנוצרו ב-BigQuery לא חלים על קובצי Cloud Storage שמשמשים את BigLake ואת טבלאות האובייקטים. כדי להצפין את הקבצים האלה מקצה לקצה באמצעות CMEK, צריך להגדיר CMEK ב-Cloud Storage.
קבלת מידע על השימוש במטמון המטא-נתונים על ידי משימות של שאילתות
כדי לקבל מידע על השימוש במטמון המטא-נתונים של משימת שאילתה, קוראים לmethod jobs.get של המשימה ובודקים את השדה MetadataCacheStatistics בקטע JobStatistics2 של המשאב Job. השדה הזה מספק מידע על הטבלאות שבהן הופעל מטמון המטא-נתונים ששימשו את השאילתה, אם מטמון המטא-נתונים שימש את השאילתה, ואם לא, את הסיבה לכך.
נתונים סטטיסטיים של הטבלה
בטבלאות BigLake שמבוססות על קובצי Parquet, הנתונים הסטטיסטיים של הטבלה נאספים כשהמטמון של המטא-נתונים מתרענן. איסוף הנתונים הסטטיסטיים של הטבלה מתבצע גם במהלך רענון אוטומטי וגם במהלך רענון ידני, והנתונים הסטטיסטיים נשמרים לאותה תקופה כמו המטמון של המטא-נתונים.
הנתונים הסטטיסטיים שנאספים על הטבלה כוללים מידע על הקובץ, כמו מספר השורות, הגודל הפיזי והגודל הלא דחוס של הקובץ, והעוצמה של העמודות. כשמריצים שאילתה בטבלת BigLake שמבוססת על Parquet, הנתונים הסטטיסטיים האלה מסופקים לאופטימיזציית השאילתות כדי לאפשר תוכנית לביצוע שאילתה טובה יותר, ויכול להיות שהם ישפרו את הביצועים של סוגים מסוימים של שאילתות. לדוגמה, אופטימיזציה נפוצה של שאילתות היא הפצה דינמית של אילוצים, שבה הכלי לאופטימיזציה של שאילתות מסיק באופן דינמי פרדיקטים בטבלאות העובדות הגדולות יותר בצירוף מטבלאות המאפיינים הקטנות יותר. האופטימיזציה הזו יכולה להאיץ את השאילתות באמצעות סכימות טבלה מנורמלות, אבל היא דורשת נתונים סטטיסטיים מדויקים של הטבלה. הנתונים הסטטיסטיים של הטבלה שנאספים על ידי שמירת מטא-נתונים במטמון מאפשרים אופטימיזציה טובה יותר של תוכניות לביצוע שאילתות גם ב-BigQuery וגם ב-Apache Spark.
מגבלות
המגבלות הבאות חלות על המטמון של המטא-נתונים:
- אם תבצעו כמה רענונים ידניים בו-זמנית, רק אחד מהם יצליח.
- אם המטמון של המטא-נתונים לא מתרענן, התוקף שלו פג אחרי 7 ימים.
- אם מעדכנים את ה-URI של המקור לטבלה, המטמון של המטא-נתונים לא מתרענן באופן אוטומטי, והשאילתות הבאות מחזירות נתונים מהמטמון המיושן. כדי למנוע את זה, צריך לרענן את המטמון של המטא-נתונים באופן ידני. אם המטמון של המטא-נתונים של הטבלה מוגדר לרענון אוטומטי, צריך לשנות את מצב הרענון של הטבלה לרענון ידני, לבצע את הרענון הידני ואז להגדיר שוב את מצב הרענון של הטבלה לרענון אוטומטי.
אם אתם מרעננים ידנית את המטמון של המטא-נתונים, ומערך הנתונים וקטגוריית Cloud Storage של היעד נמצאים במיקום אזורי, אתם צריכים לציין במפורש את המיקום הזה כשאתם מריצים את הקריאה לפרוצדורה
BQ.REFRESH_EXTERNAL_METADATA_CACHE. אפשר לעשות את זה באחת מהדרכים הבאות:המסוף
נכנסים לדף BigQuery.
בוחרים כרטיסייה בכלי העריכה.
לוחצים על עריכה > הגדרות השאילתה.
בקטע Location, מבטלים את הבחירה בתיבה Automatic location selection ומציינים את אזור היעד.
לוחצים על Save.
מריצים את השאילתה שמכילה את הקריאה לפרוצדורה
BQ.REFRESH_EXTERNAL_METADATA_CACHEבכרטיסייה Editor.
BQ
אם מריצים את השאילתה שמכילה את הקריאה לפרוצדורה
BQ.REFRESH_EXTERNAL_METADATA_CACHEבאמצעותbq query, חשוב לציין את הדגל--location.
המאמרים הבאים
- איך יוצרים טבלאות BigLake ב-Cloud Storage עם שמירת מטא-נתונים במטמון
- איך יוצרים טבלאות BigLake של Amazon S3 עם שמירת מטא-נתונים במטמון
- מידע נוסף על יצירת טבלאות אובייקטים עם שמירת מטא-נתונים במטמון
- מידע ולמידה על שימוש בתצוגות מהותיות בטבלאות BigLake עם מטמון מטא-נתונים