בחירת דרך לגישה לנתוני BigQuery מ-AlloyDB

כדי לגשת לנתוני BigQuery מ-AlloyDB ל-PostgreSQL, אפשר להשתמש בתוספים bigquery_fdw (foreign data wrapper) ו-alloydb_sync. ביחד, התוספים האלה מספקים שיטות לשילוב של נתונים אנליטיים ותפעוליים: גישה לנתונים בזמן אמת (איחוד של lakehouse), פעולות חד-פעמיות על נתונים וסנכרון תקופתי. במאמר הזה מוסבר על האפשרויות לגישה לנתוני BigQuery מ-AlloyDB.

איחוד Lakehouse

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

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

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

איחוד של Lakehouse תומך בתרחישי השימוש הבאים:

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

סנכרון חד-פעמי של טבלה

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

סנכרון טבלאות

אפשר לבצע סנכרון חד-פעמי באמצעות הפונקציה alloydb_sync.import_bq_table() בתוסף alloydb_sync. הפונקציה הזו מעבירה נתונים מ-BigQuery לאחסון מקומי ב-AlloyDB.

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

ייבוא טבלאות

אפשר לבצע ייבוא חד-פעמי באמצעות התוסף bigquery_fdw. בשיטה הזו משתמשים ב-IMPORT FOREIGN SCHEMA או ב-CREATE FOREIGN TABLE כדי למפות את מערך הנתונים ב-BigQuery ל-AlloyDB.

טבלאות חיצוניות שנוצרו באמצעות bigquery_fdw הן הפניות לקריאה בלבד לנתוני BigQuery מרוחקים. כדי ליצור עותק מקומי של הנתונים, אפשר להריץ שאילתת CREATE TABLE local_table AS (SELECT * FROM foreign_table). מידע נוסף זמין במאמר בנושא ייבוא נתונים מ-BigQuery ל-AlloyDB.

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

פעולות חד-פעמיות על נתונים תומכות בתרחישי השימוש הבאים:

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

סנכרון של הטבלה המחזורית

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

סנכרון טבלאות

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

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

ייבוא טבלאות

אפשר להגדיר ייבוא תקופתי באמצעות שילוב של התוסף bigquery_fdw עם התוסף pg_cron של PostgreSQL. בגישה הזו, bigquery_fdw מספק את ההגדרה של הטבלה החיצונית לקריאה בלבד, ו-pg_cron מבצע מעת לעת שאילתות SQL (כמו TRUNCATE ו-INSERT INTO ... SELECT או יצירה מחדש של הטבלה) כדי לרענן טבלה מקומית.

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

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

הפעולות התקופתיות תומכות בתרחישי השימוש הבאים:

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

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