בדף הזה תוכלו לקרוא סקירה כללית על מנוע מבוסס-העמודות ש-AlloyDB ל-PostgreSQL מציע, וגם ללמוד איך להשתמש בו.
מנוע מבוסס-העמודות של AlloyDB מאיץ את העיבוד של שאילתות SQL של סריקות, שאילתות איחוד (join) וצבירות, באמצעות הרכיבים הבאים:
מאגר עמודות שמכיל נתונים של טבלה ותצוגה חומרית של עמודות נבחרות, שמאורגנים מחדש בפורמט של עמודות. אפשר גם להוסיף ביטויים בשימוש נפוץ למאגר העמודות.
מתכנן שאילתות מבוסס-עמודות ומנוע ביצוע כדי לתמוך בשימוש במאגר העמודות בשאילתות.
אפשר להשתמש במנוע העמודות במכונה הראשית, במכונה של מאגר לקריאה או בשתיהן. כשמפעילים את מנוע העמודות במופע של מאגר קריאה, אפשר להפעיל גם העברה שקופה של שאילתות כדי להפנות אליו באופן אוטומטי תנועה לקריאה בלבד.
אפשר גם להשתמש בהוספה אוטומטית של עמודות כדי לנתח את עומס העבודה ולאכלס באופן אוטומטי את מאגר העמודות בעמודות שמספקות את שיפור הביצועים הכי טוב.
כדי להשתמש במנוע מבוסס-עמודות עם שאילתה ספציפית, כל העמודות בקטעי השאילתה האלה, כמו שאילתות איחוד וסריקות, צריכות להיות במאגר העמודות.
כברירת מחדל, מנוע העמודות מוגדר להשתמש ב-30% מהזיכרון של המכונה. בהתאם לעומס העבודה, לשימוש בזיכרון ולשאלה אם הגדרתם מאגר קריאה, יכול להיות שתבחרו להקטין את הקצאת הזיכרון של מנוע העמודות במופע הראשי ולהקצות יותר זיכרון למופע של מאגר הקריאה. כדי לראות ולעקוב אחרי השימוש בזיכרון על ידי מנוע העמודות, אפשר לעיין במאמר בנושא הצגת השימוש בזיכרון של מאגר העמודות. כדי לשנות את גודל הזיכרון שמשמש את מאגר העמודות, אפשר לעיין במאמר בנושא הגדרת הגודל של מאגר העמודות. כדי למצוא את גודל הזיכרון המומלץ של מנוע העמודות למופע שלכם, אפשר לעיין במאמר המלצה על גודל הזיכרון של מאגר העמודות.
סוגי שאילתות שמרוויחות מהשימוש במנוע העמודות
שאילתות מסוימות יכולות להפיק תועלת ממנוע העמודות. הרשימה הבאה כוללת פעולות ודפוסי שאילתות שהכי מפיקים תועלת ממנוע העמודות:
סריקות של טבלאות
- יש בו מסננים סלקטיביים, כמו סעיפים של
WHERE. - היא משתמשת במספר קטן של עמודות מטבלה גדולה יותר או מתצוגה מגובהת.
- היא משתמשת בביטויים כמו
LIKE,ILIKE,SUBSTRו-TRIM.
- יש בו מסננים סלקטיביים, כמו סעיפים של
פונקציות צבירה
- הם משתמשים רק בביטויים הבאים:
SUM,MIN,MAX,AVGו-COUNT. - הם מופיעים בתחילת השאילתה של סריקה עמודתית.
- הן לא מקובצות, או שהן מקובצות לפי עמודות.
- הם משתמשים רק בביטויים הבאים:
ORDER-BYו-SORT: רק אםORDER-BYאוSORTמופעלים בתוצאות הסריקה של עמודות שהגישה אליהן היא ממנוע מבוסס-עמודות.
LIMIT: רק אם האופרטור נמצא בתחילת השאילתה של סריקה עמודתית ולפני אופרטורים שלSORTאוGROUP BY.INNER HASH JOINרק אם המפתחות שבהם נעשה שימוש הם עמודות ולא נעשה שימוש במגדירי הצטרפות.צירופים סלקטיביים רק אם הצירופים הם בתחילת השאילתה של סריקה עמודתית.
סינון שאילתות באמצעות ביטויי JSON.
מידע נוסף על השאילתות שמתאימות ביותר למנוע העמודות, על השאילתות שהשתמשו במנוע העמודות ועל אופן השימוש בו זמין במאמר אימות השימוש במנוע העמודות באמצעות EXPLAIN.
איך משתמשים במנוע מבוסס-עמודות
כדי להשתמש במנוע מבוסס-העמודות במופע של AlloyDB, מבצעים את השלבים הבאים ברמה גבוהה:
מפעילים את המנוע במופע.
הפעלת המנוע היא פעולה חד-פעמית שדורשת הפעלה מחדש.
מוסיפים עמודות למאגר העמודות.
כדי להוסיף עמודות למאגר העמודות, משתמשים באחת מהשיטות הבאות:
להשתמש באוטומציה של הוספת עמודות, שכוללת ניתוח של עומס העבודה והוספה אוטומטית של עמודות.
מוסיפים את העמודות באופן ידני או מוסיפים ביטויים בשימוש תדיר למאגר העמודות (תצוגה מקדימה) על סמך הידע שלכם לגבי עומס העבודה במסדי הנתונים במופע.
אפשר לעקוב אחרי מה שמאוחסן בחנות העמודות באמצעות התצוגה
g_columnar_relationsview. אחרי שמוסיפים עמודות, אפשר להשתמש בהצהרהEXPLAINstatement כדי לאמת את השימוש במנוע העמודות בשאילתות SQL.
הוראות מפורטות לשימוש במנוע העמודות מופיעות במאמר הגדרת מנוע העמודות.
אילו נתונים אפשר להוסיף למאגר העמודות
יש מגבלות מסוימות על סוגי הנתונים ומקורות הנתונים שבהם אפשר להשתמש כשמוסיפים עמודות למאגר העמודות.
סוגי נתונים נתמכים
מנוע העמודות יכול לאכלס ולרענן עמודות נתמכות בטבלה גם אם חלק מהעמודות מכילות סוגי נתונים שלא נתמכים. עמודות עם סוגי נתונים שלא נתמכים מושמטות במהלך תהליך האכלוס.
כשמריצים שאילתה, המנוע מבוסס-העמודות מעבד טבלה אם כל העמודות הספציפיות שאליהן מתייחסים בחלק הזה של השאילתה הן מסוגי נתונים נתמכים ומופיעות במנוע מבוסס-העמודות.
בשאילתות שכוללות כמה טבלאות, כמו פעולות JOIN, אפשר להשתמש במנוע מבוסס-עמודות לכל טבלה בנפרד. כל עוד לכל העמודות שאליהן יש גישה מהטבלה הספציפית בשאילתה יש סוגי נתונים נתמכים והן נמצאות במנוע העמודות, אפשר לעבד את הטבלה הזו באמצעות מנוע העמודות, גם אם בטבלאות אחרות בצירוף יש עמודות לא נתמכות.
מנוע מבוסס-עמודות תומך רק בעמודות עם סוגי הנתונים המובנים הבאים:
arraybigintbooleanbyteachardatedecimaldouble precisionenumfloat4float8integerjsonjsonbnumericrealserialshortsmallinttexttimestamptimestamptzuuidvarcharvector
מנוע מבוסס-עמודות מתעלם מניסיונות להוסיף באופן ידני עמודות עם סוגי נתונים לא נתמכים למאגר העמודות.
מקורות נתונים לא נתמכים
מנוע מבוסס-עמודות לא תומך בטבלאות או בתצוגות מהותיות עם המאפיינים הבאים כמקורות נתונים:
טבלאות מחולקות למחיצות (Partitions) שאינן עלים
טבלאות בשפות זרות
מגבלות של מנוע מבוסס-עמודות
- אם מריצים שאילתת ניתוח בעמודה שיש לה אינדקס, יכול להיות שהאופטימיזציה של AlloyDB תבחר להשתמש בחנות שורות.
- עמודות שנוספו ידנית למאגר העמודות לא יוסרו באופן אוטומטי. כדי להסיר בכוח עמודות שהוספתם באופן ידני, משתמשים בפקודה
google_columnar_engine_drop()במופע. - ארגון אוטומטי בעמודות עשוי להוסיף ולהסיר עמודות באופן דינמי בהתאם לשימוש בשאילתה.
- לא כל סוגי הנתונים נתמכים במנוע מבוסס-עמודות. לרשימת סוגי הנתונים הנתמכים, ראו סוגי נתונים נתמכים.
עדכונים תכופים בשורות מבטלים את התוקף של נתונים בעמודות. כדי לאמת טבלה או תצוגה מהותית במאגר העמודות, אפשר להפחית את תדירות העדכון או לתזמן רענונים תכופים יותר של מנוע מבוסס-עמודות.
כדי לבדוק אם הטבלה או התצוגה מושפעות, אפשר להשוות בין העמודות
invalid_block_countו-total_block_countב-g_columnar_relations. אם יש שינויים תכופים או שינויים בהיקף גדול בטבלה או בתצוגה, הערך שלinvalid_block_countיהיה גבוה.אי אפשר לאכלס טבלה עם מחיצות ישירות במנוע מבוסס-עמודות. כדי להשתמש במנוע מבוסס-עמודות, צריך לאכלס כל אחת ממחיצות העלים של הטבלה בנפרד.
בטבלאות או בתצוגות עם מספר קטן של שורות, בדרך כלל פחות מ-5,000, מתכנן השאילתות עשוי לבחור להשתמש בחנות השורות במקום בחנות העמודות כדי לשפר את הביצועים, גם אם הנתונים נטענו בהצלחה למנוע העמודות.