סקירה כללית של מנוע מבוסס-עמודות

בוחרים גרסה של מאמר העזרה:

בדף הזה מוסבר על מנוע העמודות של AlloyDB Omni, ומופיעות בו הוראות לשימוש במנוע בהתקנות של קונטיינרים ואשכולות Kubernetes. בדף הזה אנחנו מניחים שאתם מכירים את PostgreSQL.

מנוע מבוסס-העמודות של AlloyDB Omni מאיץ את העיבוד של סריקות, צירופים וצבירות של שאילתות SQL באמצעות הרכיבים הבאים:

  • מאגר עמודות שמכיל נתונים של טבלאות ותצוגות חומריות עבור עמודות נבחרות, ומאורגן מחדש בפורמט של עמודות.

  • מתכנן שאילתות ומנוע ביצוע מבוססי-עמודות שתומכים בשימוש במאגר העמודות בשאילתות.

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

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

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

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

סוגי שאילתות שמועילות למנוע העמודות

שאילתות מסוימות יכולות להפיק תועלת ממנוע העמודות. הרשימה הבאה כוללת פעולות ודפוסי שאילתות שהכי מפיקים תועלת ממנוע העמודות:

פעולה דפוסי שאילתות
סריקת טבלה מסננים סלקטיביים, כמו פסקי WHERE.
מספר קטן של עמודות מטבלה גדולה יותר או מתצוגה מגובשת.
ביטויים כמו LIKE,‏ SUBSTR או TRIM.
פונקציות צבירה רק ביטויים כמו SUM,‏ MIN,‏ MAX,‏ AVG ו-COUNT.
בתחילת השאילתה של סריקה עמודתית.
לא מקובצים או מקובצים לפי עמודות.
ORDER-BY רק אם האופרטור נמצא בתחילת השאילתה של סריקה עמודתית.
SORT רק אם האופרטור נמצא בתחילת השאילתה של סריקה עמודתית וממיין רק את עמודות הבסיס של הטבלה או התצוגה החומרית.
LIMIT רק אם האופרטור נמצא בתחילת השאילתה של סריקה עמודתית ולפני האופרטורים SORT או GROUP BY.
INNER HASH JOIN רק אם המפתחות שבהם נעשה שימוש הם עמודות ולא נעשה שימוש במגדירי הצטרפות.
שאילתות איחוד (join) סלקטיביות רק אם ההצטרפות מתבצעת בתחילת השאילתה של סריקה עמודתית.

מידע נוסף על השאילתות שמתאימות ביותר למנוע העמודות, על השאילתות שהשתמשו במנוע העמודות ועל אופן השימוש בו זמין במאמר אימות השימוש במנוע העמודות באמצעות EXPLAIN.

איך משתמשים במנוע מבוסס-העמודות במופע של AlloyDB Omni

כדי להשתמש במנוע מבוסס-העמודות במופע של AlloyDB Omni, מבצעים את השלבים הבאים ברמה גבוהה:

  1. מפעילים את המנוע במופע.

    הפעלת המנוע היא פעולה חד-פעמית שדורשת הפעלה מחדש של מסד הנתונים.

  2. מוסיפים עמודות למאגר העמודות.

    כדי להוסיף עמודות למאגר העמודות, משתמשים באחת מהשיטות הבאות:

  3. אפשר לעקוב אחרי מה שנמצא בחנות העמודות באמצעות התצוגה g_columnar_relations view, ואחרי הוספת העמודות אפשר להשתמש בהצהרה EXPLAIN statement כדי לאמת את השימוש במנוע העמודות בשאילתות SQL.

הוראות מפורטות לשימוש במנוע העמודות מופיעות במאמר הגדרת מנוע העמודות.

אילו נתונים אפשר להוסיף למאגר העמודות

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

סוגי נתונים נתמכים

מנוע מבוסס-עמודות תומך רק בעמודות עם סוגי הנתונים המובנים הבאים:

  • array
  • bigint
  • boolean
  • bytea
  • char
  • date
  • decimal
  • double precision
  • enum
  • float4
  • float8
  • integer
  • json
  • jsonb
  • numeric
  • real
  • serial
  • short
  • smallint
  • text
  • timestamp
  • uuid
  • varchar

מנוע מבוסס-עמודות מתעלם מניסיונות להוסיף באופן ידני עמודות עם סוגי נתונים לא נתמכים למאגר העמודות.

מקורות נתונים לא נתמכים

מנוע מבוסס-עמודות לא תומך בטבלאות או בתצוגות מהותיות עם המאפיינים הבאים כמקורות נתונים:

  • טבלאות מחולקות למחיצות (Partitions) שאינן עלים

  • טבלאות בשפות זרות

  • טבלאות או תצוגות עם פחות מ-5,000 שורות

מגבלות של מנוע מבוסס-עמודות

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

    כדי לבדוק אם הטבלה או התצוגה מושפעות, אפשר להשוות בין העמודות invalid_block_count ו-total_block_count בg_columnar_relations. אם יש שינויים תכופים או שינויים בהיקף גדול בטבלה או בתצוגה, הערך של invalid_block_count יהיה גבוה.

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