סקירה כללית על גישת AlloyDB לנתונים בזמן אמת ב-BigQuery

כדי להריץ שאילתות בזמן אמת של נתונים אנליטיים לצד הנתונים התפעוליים בלי לבנות פייפליינים מורכבים, אפשר להשתמש בפדרציה של lakehouse ב-AlloyDB ל-PostgreSQL. התוסף bigquery_fdw מאפשר ל-AlloyDB להפנות את השאילתות שלכם ל-BigQuery כדי לגשת לנתונים בזמן אמת ולפורמטים פתוחים כמו Apache Iceberg באמצעות טבלאות חיצוניות של BigLake, וכך לא נדרשות העברות ETL (חילוץ, טרנספורמציה, טעינה) מורכבות.

היתרונות של פדרציית lakehouse

הגישה של פדרציית אגמים מציעה את היתרונות הבאים:

  • Zero ETL: אפשר להריץ שאילתות על נתונים אנליטיים ישירות בלי ליצור או לתחזק צינורות מורכבים.
  • תחביר מוכר: אפשר להשתמש בתחביר סטנדרטי של PostgreSQL כדי לשלוח שאילתות לנתוני BigQuery.
  • תובנות בזמן אמת: גישה לנתונים עדכניים לצד הטבלאות התפעוליות.
  • העברת עומסי מחשוב: שימוש במנוע המבוזר של BigQuery לביצוע פעולות כבדות באמצעות אופטימיזציה של pushdown.
  • גישה מאושרת: כדי לוודא שרק חשבונות שירות מאושרים יכולים לשלוח שאילתות לנתונים חיצוניים, צריך להשתמש בניהול זהויות והרשאות גישה (IAM) לצורך בקרה מרכזית על הגישה.

תרחישים לדוגמה

הפדרציה של Lakehouse תומכת בתרחישים העסקיים והטכניים הבאים:

  • עומסי עבודה של עיבוד טרנזקציות וניתוח היברידי (HTAP): אתם יכולים לשלוח שאילתות לנתונים תפעוליים בזמן אמת ב-AlloyDB ולנתונים היסטוריים או אנליטיים ב-BigQuery או ב-Cloud Storage בו-זמנית, בלי להשפיע על הביצועים של הטרנזקציות.
  • תובנות בזמן אמת בלי צינורות שבירים: אתם יכולים להימנע מהשהיה וממצבי כשל של תהליכי ETL מסורתיים. גישה מיידית לנתונים אנליטיים עדכניים כדי לקבל החלטות עסקיות שמבוססות על המידע העדכני ביותר.
  • הפיכת נתונים למוחשיים בתהליכי עבודה מבוססי-סוכנים: אתם יכולים להפוך נתונים אנליטיים חיצוניים למוחשיים ב-AlloyDB כדי להשתמש במנוע מבוסס-העמודות של AlloyDB וביכולות ה-AI של AlloyDB. כך תוכלו לבצע חיפושים וקטוריים עם ביצועים גבוהים, הטמעות של למידת מכונה ותהליכי עבודה מתקדמים מבוססי-AI בנתונים המאוחדים שלכם.

ארכיטקטורה וזרימת נתונים

בתרשים הבא מוצגת זרימת הנתונים והאינטראקציות בין הרכיבים כשמשתמשים ב-lakehouse federation:

תרשים שמציג את הארכיטקטורה של פדרציית lakehouse, ומתאר את הזרימה בין AlloyDB לבין BigQuery עם אופטימיזציה של pushdown.
איור 1. ארכיטקטורה וזרימת נתונים של פדרציית lakehouse

בהמשך מתואר תהליך זרימת הנתונים באיחוד של lakehouse ב-AlloyDB:

  1. שליחת שאילתה: אתם שולחים שאילתת PostgreSQL רגילה למכונת AlloyDB.
  2. תכנון שאילתות ואופטימיזציה: מתכנן השאילתות של AlloyDB מזהה טבלאות שממופות למערכי נתונים חיצוניים של BigQuery באמצעות BigQuery foreign data wrapper ‏ (FDW).
  3. אופטימיזציה של Pushdown: ‏ AlloyDB מבצע אופטימיזציה של השאילתה על ידי העברת מסננים וצבירות ספציפיים ישירות ל-BigQuery. כך אפשר לוודא שהרשת מעבירה רק את השורות הרלוונטיות והמסוננות או את הסיכומים המצטברים.
  4. ביצוע ואחזור: מערכת BigQuery מבצעת את החלק שלה בשאילתה – סורקת ישירות את האחסון המובנה של BigQuery או קוראת טבלאות Apache Iceberg שמאוחסנות ב-Cloud Storage – ומזרימה את מערך הנתונים שמתקבל בחזרה אל AlloyDB.
  5. עיבוד סופי ותשובה: ‏ AlloyDB משלב את הנתונים החיצוניים עם טבלאות תפעוליות מקומיות, משלים את עיבוד השאילתה שנותר ומחזיר את התוצאה הסופית לאפליקציה.

שיקולים לגבי סוגי נתונים בשאילתות לכמה מסדי נתונים

כשמריצים שאילתה בטבלה ב-BigQuery חיצונית מ-AlloyDB באמצעות איחוד של lakehouse, מתכנן השאילתות של AlloyDB מפרש את סוגי הנתונים של BigQuery כסוגי הנתונים התואמים של PostgreSQL. הבנת המיפויים האלה חיונית לכתיבת שאילתות נכונות ולהגדרות של טבלאות חיצוניות שמשמשות את התוסף bigquery_fdw.

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

רשימה של סוגי הנתונים הנתמכים והסוגים התואמים ב-PostgreSQL זמינה במאמר מיפוי סוגי נתונים.

אבטחה ובקרת גישה

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

Pushdown

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

העברת סינון למטה

העברת סינון, שנקראת גם העברת תנאי (predicate), היא טכניקת אופטימיזציה שמעבירה את סינון הנתונים קרוב ככל האפשר לשכבת האחסון, על ידי העברת מסנני השאילתות (באמצעות פסוקית WHERE) מ-AlloyDB ל-BigQuery.

באמצעות filter pushdown, אפשר להשתמש בשאילתות SQL עם פסקה WHERE כדי לגשת לקבוצת משנה של נתונים מהטבלה המרוחקת. אפשר גם ליצור את הנתונים האלה בטבלה מקומית או לצרף אותם כמחיצה מקומית לטבלת PostgreSQL.

הפעולות הנתמכות להעברת סינון כוללות את הפעולות הבאות:

  • אופרטורים סטנדרטיים להשוואה: =, ‏ <, ‏ >, ‏ <=, ‏ >=, ‏ <>
  • אופרטורים לוגיים: AND, OR ו-NOT
  • התאמת תבניות: LIKE ו-NOT LIKE
  • בדיקות של ערכי Null: IS NULL ו-IS NOT NULL
  • הערכה בתוך הרשימה: IN ו-NOT IN

העברת נתונים מצטברים

העברת פעולות מצטברות למטה (Aggregate pushdown) היא אופטימיזציה מתקדמת של מסד נתונים שמבצעת חישובים – לדוגמה, SUM,‏ COUNT,‏ AVG או GROUP BY – קרוב ככל האפשר לשכבת האחסון. הדחיפה הזו מעריכה פונקציות סיכום ישירות ב-BigQuery, מה שיכול לצמצם באופן משמעותי את מספר השורות שמוחזרות ל-AlloyDB.

הפעולות הנתמכות להעברת נתונים מצטברים כוללות את הפעולות הבאות:

  • SUM
  • COUNT
  • AVG
  • MIN
  • MAX

עלויות וחיוב ב-BigQuery

ה-FDW של BigQuery תלוי ברכיבים הבאים:

  • תמחור של חישובים ב-BigQuery
  • תמחור של BigQuery Storage API

מידע נוסף זמין במאמר בנושא תמחור ב-BigQuery.

מגבלות

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

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