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

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

הצהרות VECTOR

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

CREATE VECTOR INDEX

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

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: אופציונלי. מציין כמה מחיצות (עלים) לבנות. כדאי לשנות את ההגדרה הזו מהגדרת ברירת המחדל רק אם אתם מבינים היטב את החיפוש ב-ANN ואת מערך הנתונים שלכם. המספר שצוין לא יכול להיות גדול ממספר ההטמעות במסד הנתונים הטבלאי.
  • ‫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: אופציונלי. מציין כמה מחיצות (עלים) לבנות. כדאי לשנות את ההגדרה הזו מהגדרת ברירת המחדל רק אם אתם מבינים היטב את החיפוש ב-ANN ואת מערך הנתונים שלכם. המספר שצוין לא יכול להיות גדול ממספר ההטמעות במסד הנתונים הטבלאי.
  • ‫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;

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