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

בחירה של גרסת המסמך:

במסמך הזה מוסבר איך להשתמש במנוע מבוסס-העמודות של AlloyDB Omni, והוא מיועד למי שמכיר את 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 יהיה גבוה.

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