ייבוא בסטרימינג

ייבוא בזמן אמת מאפשר לכם לעדכן את ערכי התכונות בזמן אמת. השיטה הזו שימושית כשחשוב לכם להשתמש בנתונים העדכניים ביותר שזמינים למילוי בקשה באופן מיידי. לדוגמה, אתם יכולים לייבא נתוני אירועים של סטרימינג, ותוך כמה שניות Vertex AI Feature Store (מאגר ישן) יאפשר להשתמש בנתונים האלה בתרחישי שימוש של מילוי בקשה באופן מיידי.

אם אתם חייבים למלא חוסרים בנתונים או אם אתם מחשבים ערכי מאפיינים באצווה, אתם יכולים להשתמש בייבוא באצווה. בהשוואה לבקשות ייבוא בסטרימינג, בקשות ייבוא באצווה יכולות לטפל במטען ייעודי (payload) גדול יותר, אבל לוקח להן יותר זמן להסתיים.

מידע על חותמת הזמן של ערך התכונה הכי ישן שאפשר לייבא זמין במאמר Vertex AI Feature Store (Legacy) בקטע מכסות ומגבלות. אי אפשר לייבא ערכי מאפיינים שחותמות הזמן שלהם מציינות תאריכים או שעות עתידיים.

תרחיש שימוש לדוגמה

ארגון קמעונאי באינטרנט יכול לספק חוויית קנייה מותאמת אישית באמצעות הפעילות הנוכחית של משתמש. בזמן שהמשתמשים מנווטים באתר, אפשר לתעד את הפעילות שלהם במאגר פיצ'רים, ואז להשתמש בכל המידע הזה כדי ליצור חיזויים אונליין. הייבוא וההצגה בזמן אמת יכולים לעזור לכם להציג ללקוחות המלצות מועילות ורלוונטיות במהלך סשן הקניות שלהם.

השימוש בצומת אחסון אונליין

כתיבת ערכי מאפיינים לחנות וירטואלית משתמשת במשאבי ה-CPU של מאגר המאפיינים (צמתים של אחסון אונליין). עוקבים אחרי השימוש במעבד כדי לוודא שהביקוש לא עולה על ההיצע, כי זה עלול להוביל להצגת שגיאות. כדי להימנע מהשגיאות האלה, מומלץ להשתמש ב-70% מהנפח או פחות. אם אתם חורגים מהערך הזה באופן קבוע, אתם יכולים לעדכן את מאגר הפיצ'רים כדי להגדיל את מספר הצמתים או להשתמש בהתאמה אוטומטית לעומס. מידע נוסף זמין במאמר בנושא ניהול מאגרי תכונות.

ייבוא בסטרימינג

כתיבת ערך לתכונה מסוימת. צריך לכלול את ערך התכונה כחלק מבקשת הייבוא. אי אפשר להזרים נתונים ישירות ממקור נתונים.

אם אתם כותבים לתכונות שנוצרו לאחרונה, כדאי לחכות כמה דקות לפני שאתם עושים זאת, כי יכול להיות שהתכונות החדשות עוד לא הופצו. אם לא, יכול להיות שתופיע שגיאת resource not found.

אפשר לייבא ערכי תכונות רק לישות אחת בכל פעולת כתיבה. בכל פרויקט ואזור ספציפיים, אפשר לכתוב בו-זמנית ערכי מאפיינים של כמה ישויות, עד עשרה סוגים שונים של ישויות. המגבלה הזו כוללת בקשות לייבוא בסטרימינג לכל מאגרי התכונות בפרויקט ובאזור נתונים מסוימים. אם חורגים מהמגבלה הזו, יכול להיות ש-Vertex AI Feature Store (Legacy) לא יכתוב את כל הנתונים בחנות האופליין. אם זה קורה, השגיאה נרשמת ביומן של Vertex AI Feature Store (גרסה קודמת) בLogs Explorer. מידע נוסף זמין במאמר בנושא מעקב אחרי שגיאות בכתיבה לאחסון אופליין לצורך ייבוא בסטרימינג.

REST

כדי לייבא ערכי מאפיינים למאפיינים קיימים, שולחים בקשת POST באמצעות השיטה featurestores.entityTypes.writeFeatureValues. אם השמות של עמודות נתוני המקור והמזהים של תכונות היעד שונים, צריך לכלול את הפרמטר sourceField. שימו לב: באמצעות featurestores.entityTypes.writeFeatureValues אפשר לייבא ערכי תכונות רק לישות אחת בכל פעם.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • LOCATION: האזור שבו נוצר מאגר הפיצ'רים. לדוגמה, us-central1.
  • PROJECT: מזהה הפרויקט.
  • FEATURESTORE_ID: מזהה של מאגר התכונות.
  • ENTITY_TYPE_ID: מזהה סוג הישות.
  • FEATURE_ID: מזהה של תכונה קיימת במאגר הפיצ'רים שרוצים לכתוב לה ערכים.
  • VALUE_TYPE: סוג הערך של התכונה.
  • VALUE: הערך של התכונה.
  • TIME_STAMP (אופציונלי): השעה שבה התכונה נוצרה. חותמת הזמן צריכה להיות בפורמט UTC‏ RFC3339.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues

גוף בקשת JSON:

{
  "payloads": [
    {
      "entityId": "ENTITY_ID",
      "featureValues": {
        "FEATURE_ID": {
          "VALUE_TYPE": VALUE,
          "metadata": {"generate_time": "TIME_STAMP"}
        }
      }
    }
  ]
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:writeFeatureValues" | Select-Object -Expand Content

אמור להתקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

Python

במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.

from google.cloud import aiplatform


def write_feature_values_sample(
    project: str, location: str, entity_type_id: str, featurestore_id: str
):

    aiplatform.init(project=project, location=location)

    my_entity_type = aiplatform.featurestore.EntityType(
        entity_type_name=entity_type_id, featurestore_id=featurestore_id
    )

    my_data = {
        "movie_01": {
            "title": "The Shawshank Redemption",
            "average_rating": 4.7,
            "genre": "Drama",
        },
    }

    my_entity_type.write_feature_values(instances=my_data)

שפות נוספות

אפשר להתקין את ספריות הלקוח הבאות של Vertex AI ולהשתמש בהן כדי לקרוא ל-Vertex AI API. ספריות לקוח ב-Cloud מספקות חוויית פיתוח אופטימלית באמצעות שימוש במוסכמות ובסגנונות הטבעיים של כל שפה נתמכת.

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