אתם יכולים להשתמש בעזרה וקטורית כדי לפרוס ולנהל עומסי עבודה וקטוריים במכונות AlloyDB ל-PostgreSQL.
מידע נוסף על התכונה 'סיוע וקטורי' ועל אופן הפעולה שלה זמין במאמר סקירה כללית על סיוע וקטורי.
לפני שמתחילים
- מוודאים שהמופע שלכם משתמש בגרסת התחזוקה הנכונה.
כדי להשתמש בעזרה וקטורית, נדרש מספר גרסת תחזוקה מינימלי של
POSTGRES_17.20260128.03_06. מידע נוסף על ביצוע תחזוקה בשירות עצמי זמין במאמר תחזוקה בשירות עצמי לשיפור הביצועים. מפעילים את התוסף vector assist באמצעות הפקודה הבאה במסד הנתונים שרוצים להשתמש בו:
CREATE EXTENSION vector_assist CASCADE;כך נוצרת סכימת
vector_assist, שמשמשת את העזרה הווקטורית.
שימוש בעזרה בווקטורים כדי לפרוס עומס עבודה של וקטורים
כדי להשתמש ב-Vector Assist לפריסה ולניהול של עומס עבודה וקטורי, צריך לבצע את הפעולות הבאות:
הגדרת מפרט הווקטור
הגדרת מפרט הווקטור, או מפרט הווקטור, היא השלב הראשון בשימוש בעזרה בווקטורים. יכול להיות שהשדות שבהם תשתמשו כדי להגדיר את מפרט הווקטור יהיו שונים, בהתאם לסוג עומס העבודה של הווקטור.
לדוגמה, אם רוצים להפעיל חיפוש סמנטי בעמודה ספציפית בטבלה, מריצים את הפונקציה vector_assist.define_spec כדי להגדיר את מפרט הווקטור:
SELECT
recommendation_id,
REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
recommendation,
vector_spec_id,
table_name,
applied,
modified
FROM vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
מחליפים את הפרמטרים הבאים:
-
TABLE_NAME: השם של הטבלה שרוצים להשתמש בה בעומס העבודה של הווקטור. - (אופציונלי)
VECTOR_COLUMN_NAME: העמודה שרוצים לבצע בה חיפוש סמנטי. אם יש לכם רק עמודה אחת עם וקטורים בטבלה,vector_assistיכול להגדיר את זה באופן אוטומטי. אם יש יותר מטבלה אחת עם וקטורים, צריך לציין באיזו עמודה להשתמש. - (אופציונלי)
TARGET_RECALL: היעד של הזיכרון שרוצים להשיג בעזרת וקטורים. אם מציינים ערך,vector_assistמתבצעים ניסויים עם ערכים שונים שלef_search, והמערכת משווה את ההחזרה בחיפושים מדויקים של השכן הקרוב ביותר. vector_assistמגדיר אתef_searchלערך שמספק את שיעור ההחזרה הקרוב ביותר ליעד. ערך ברירת המחדל הוא0.95. - (אופציונלי)
TUNE_INDEX: ערך בוליאני שמציין אם התכונה 'סיוע וקטורי' מכוונת את האינדקסים הווקטוריים בעומס העבודה. ערך ברירת המחדל הואfalse, כלומר רק הפרמטרים שקשורים לחיפוש (ef_search) עוברים כוונון, והפרמטרים של משך זמן של תהליך build (m,ef_construction) לא עוברים כוונון.
רשימה מלאה של כל הפרמטרים הזמינים של מפרט הווקטור מופיעה במאמר חומר עזר בנושא פונקציות של עזרה בווקטורים.
אחרי שמריצים את השאילתה כדי ליצור את מפרט הווקטור, התכונה 'עזרה בווקטורים' יוצרת באופן אוטומטי שלבים, שנקראים המלצות, שצריך להריץ כדי לפרוס את עומס העבודה של הווקטור.
צפייה בהמלצות של Vector Assist
כדי לראות את ההמלצות שנוצרו על ידי vector assist באמצעות מפרט הווקטור, מריצים את הפונקציה vector_assist.get_recommendations:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
מחליפים את SPEC_ID במזהה המפרט של מפרט הווקטור שרוצים לראות המלצות לגביו. כדי לראות את רשימת המפרטים הזמינים של הווקטורים, אפשר לעיין במאמר בנושא הצגת רשימת המפרטים של הווקטורים.
vector_assist.get_recommendations מחזירה טבלה בשם vector_assist.RECOMMENDATIONS שמכילה את כל ההמלצות. כל המלצה מאוחסנת בטבלה עם spec_id המשויך. כל המלצה בדרך כלל כוללת את הפרטים הבאים:
- שאילתת SQL שצריך להריץ
- הסבר מפורט להמלצה
- מידע רלוונטי אחר שמסביר את ההמלצה
איך מיישמים את ההמלצות של Vector Assist
אפשר ליישם את ההמלצות שנוצרו בנפרד או את כולן יחד.
כדי ליישם המלצה ספציפית, מריצים את הפונקציה
vector_assist.apply_recommendation:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENDATION_ID'
);
מחליפים את RECOMMENDATION_ID במזהה ההמלצה של העזרה הווקטורית שרוצים להחיל מהטבלה vector_assist.RECOMMENDATIONS.
כדי להחיל את כל ההמלצות יחד, מריצים את הפונקציה
vector_assist.apply_spec עם הפרמטר spec_id או table_name:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID'
);
מחליפים את SPEC_ID במזהה של מפרט הווקטור שרוצים להשתמש בו.
אפשר גם להזין את הפרמטרים schema_name או column_name.
מידע על כל הפרמטרים של שאילתה הזמינים מופיע במאמר הפניות לפונקציות של עזרה וקטורית.
אחרי שמיישמים את ההמלצות שנוצרו על ידי העזרה בווקטורים, אפשר להשתמש באינדקס הווקטורי.
יצירת שאילתות חיפוש
אתם יכולים להשתמש ב-Vector Assist כדי ליצור שאילתות חיפוש אופטימליות עבור עומסי עבודה וקטוריים שפרסתם, באמצעות מפרט הווקטורים של עומס העבודה ומדד הווקטורים שנוצר. כדי ליצור שאילתת חיפוש אופטימלית, מריצים את הפונקציה vector_assist.generate_query:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
search_vector => 'SEARCH_VECTOR',
top_k => 'TOP_K',
target_recall => TARGET_RECALL,
filter_expression => 'FILTER_EXPRESSION'
);
מחליפים את הפרמטרים הבאים:
-
SPEC_ID: המזהה של המפרט שרוצים להשתמש בו. -
SEARCH_VECTOR: וקטור לשאילתת החיפוש. לדוגמה,[1, 2, 3]. - (אופציונלי)
TOP_K: מספר השכנים הקרובים ביותר שיוחזרו. אם לא מציינים ערך, ברירת המחדל היא10. - (אופציונלי)
TARGET_RECALL: היעד של הזיכרון שרוצים להשיג בעזרת וקטורים. אם מציינים ערך,vector_assistמתבצעים ניסויים עם ערכים שונים שלef_search, והמערכת משווה את ההחזרה בחיפושים מדויקים של השכן הקרוב ביותר. vector_assistמגדיר אתef_searchלערך שמספק את שיעור ההחזרה הקרוב ביותר ליעד. - (אופציונלי)
FILTER_EXPRESSION: כל מסנן לשאילתת החיפוש. לדוגמה, סינון על סמך עמודות אחרות.
רשימה מלאה של כל הפרמטרים הזמינים ליצירת שאילתת חיפוש מופיעה במאמר הפניות לפונקציות של עזרה וקטורית.
הפלט של הפונקציה הזו הוא טקסט שמכיל שאילתת SQL. אפשר להריץ או לשמור את שאילתת ה-SQL הזו לפי הצורך.
הצגת רשימה של מפרט הווקטור
אם אתם רוצים לראות רשימה של מפרט וקטורי ספציפי או של כל המפרטים הווקטוריים הקיימים, מריצים את הפונקציה vector_assist.list_specs:
SELECT vector_assist.list_specs(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME'
);
מחליפים את הפרמטרים הבאים:
- (אופציונלי)
SPEC_ID: המזהה של מפרט הווקטור שרוצים להשתמש בו. -
TABLE_NAME: השם של הטבלה שבה השתמשתם כדי להגדיר את מפרט הווקטור.