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

בוחרים גרסת תיעוד:

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

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