שפת הגדרת נתונים (DDL) ב-Cloud SQL

בדף הזה מוגדר התחביר של התוספים של Cloud SQL להצהרות של שפת הגדרת הנתונים (DDL) של MySQL.

הצהרות VECTOR

בקטע הזה יש מידע על VECTOR הצהרות.

יצירת אינדקס וקטורי

יוצרת אינדקס וקטורי.

CREATE VECTOR INDEX index_name
[opt_index_type]
ON table_name (column_name)
[index_options]

where opt_index_type is:
 | USING SCANN

where index_option is :
 USING SCANN
 | [QUANTIZER=SQ8]
 | [NUM_LEAVES=int_value]
 | DISTANCE_MEASURE=L2_SQUARED|DOT_PRODUCT|COSINE

פרמטרים

  • USING SCANN: חובה. סוג האינדקס שבו משתמשים כשיוצרים את אינדקס הווקטורים. האלגוריתם הזה יוצר אינדקס ScaNN. הערך הנתמך היחיד הוא SCANN. אי אפשר לשנות את הפרמטר הזה.
  • QUANTIZER: אופציונלי. הפרמטר הזה ממפה וקטור רב-ממדי לייצוג דחוס. הערך הנתמך היחיד הוא SQ8. אי אפשר לשנות את הפרמטר הזה.
  • NUM_LEAVES: אופציונלי. מציינים כמה מחיצות (ענפים) ליצור. כדאי לשנות את ההגדרה הזו מברירת המחדל רק אם אתם מבינים היטב את החיפוש ברשתות עצביות מלאכותיות ואת מערך הנתונים שלכם. המספר שצוין לא יכול להיות גדול ממספר ההטמעות בטבלת הבסיס.
  • DISTANCE_MEASURE: חובה. נוסחה מתמטית שמחשבת את הדמיון בין שני וקטורים. צריך להגדיר את אותו מדד מרחק בפרמטר הזה כמו המרחק באפשרויות החיפוש approx_distance. התנועות הצידיות הנתמכות הן:
    • L2_SQUARED
    • COSINE
    • DOT_PRODUCT

דוגמה

בדוגמה הבאה אפשר לראות איך יוצרים אינדקס וקטורים בטבלה table_name

CREATE
  VECTOR INDEX index1
ON table_name(vector_column_name)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;

‫ALTER TABLE

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

ALTER TABLE table_name
  ADD VECTOR INDEX index_name(key_part)[index_option];

WHERE key_part is:{ _col_name_[(_length_)] | (_expr_) }
WHERE
  index_option
  is:USING
    SCANN
    | [QUANTIZER = SQ8]
    | [NUM_LEAVES = int_value]
    | DISTANCE_MEASURE
  = L2_SQUARED | DOT_PRODUCT | COSINE

פרמטרים

  • USING SCANN: חובה. סוג האינדקס שבו משתמשים כשיוצרים את אינדקס הווקטורים. האלגוריתם הזה יוצר אינדקס ScaNN. הערך הנתמך היחיד הוא SCANN. אי אפשר לשנות את הפרמטר הזה.
  • QUANTIZER: אופציונלי. הפרמטר הזה ממפה וקטור רב-ממדי לייצוג דחוס. הערך הנתמך היחיד הוא SQ8. אי אפשר לשנות את הפרמטר הזה.
  • NUM_LEAVES: אופציונלי. מציינים כמה מחיצות (ענפים) ליצור. כדאי לשנות את ההגדרה הזו מברירת המחדל רק אם אתם מבינים היטב את החיפוש ברשתות עצביות מלאכותיות ואת מערך הנתונים שלכם. המספר שצוין לא יכול להיות גדול ממספר ההטמעות בטבלת הבסיס.
  • DISTANCE_MEASURE: חובה. נוסחה מתמטית שמחשבת את הדמיון בין שני וקטורים. צריך להגדיר את אותו מדד מרחק בפרמטר הזה כמו המרחק באפשרויות החיפוש approx_distance. התנועות הצידיות הנתמכות הן:
    • L2_SQUARED
    • COSINE
    • DOT_PRODUCT

דוגמה

בדוגמה הבאה אפשר לראות איך מוסיפים אינדקס וקטורי לטבלה t1.

ALTER TABLE t1 ADD VECTOR INDEX index1(j)
USING SCANN QUANTIZER = SQ8 DISTANCE_MEASURE = l2_squared;

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