Method: projects.databases.documents.partitionQuery

מחיצת שאילתה על ידי החזרת סמני מחיצות שבהם ניתן להשתמש כדי להריץ את השאילתה במקביל. סמני המחיצות שמוחזרים הם נקודות פיצול שיכולות לשמש את Docs.runQuery כנקודות התחלה/סיום עבור תוצאות השאילתה.

בקשת HTTP

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:partitionQuery

בכתובת ה-URL נעשה שימוש בתחביר המרת קידוד של gRPC.

פרמטרים של נתיב

פרמטרים
parent

string

חובה. השם של משאב ההורה. בפורמט: projects/{projectId}/databases/{databaseId}/documents. אין תמיכה בשמות של משאבי מסמכים. ניתן לציין רק שמות של משאבים של מסד נתונים.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

ייצוג JSON
{
  "partitionCount": string,
  "pageToken": string,
  "pageSize": integer,

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
שדות
partitionCount

string (int64 format)

המספר המרבי הרצוי של נקודות מחיצה. מחיצות המחיצות עשויות להיות מוחזרות על פני מספר דפי תוצאות. המספר חייב להיות חיובי. מספר המחיצות שהוחזרו בפועל עשוי להיות קטן יותר.

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

pageToken

string

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

לדוגמה, שתי קריאות עוקבות המשתמשות ב-pageToken עשויות להחזיר:

  • סמן B, סמן M, סמן Q
  • סמן A, סמן U, סמן W

כדי לקבל קבוצת תוצאות מלאה לפי הסדר ביחס לתוצאות השאילתה שסופקה ל-document.partitionQuery, יש למזג את קבוצות התוצאות: סמן א', סמן B, סמן M, סמן Q, סמן U, סמן W

pageSize

integer

מספר המחיצות המקסימלי שאפשר להחזיר בשיחה הזו, בכפוף ל-partitionCount.

לדוגמה, אם partitionCount = 10 ו-pageSize = 8, הקריאה הראשונה ל-document.partitionQuery תחזיר עד 8 מחיצות ו-nextPageToken אם קיימות תוצאות נוספות. קריאה שנייה אל documents.partitionQuery תחזיר עד שתי מחיצות, ותשלים את סך 10 המחיצות שצוינו ב-partitionCount.

שדה איחוד query_type. השאילתה לחלוקה למחיצות. query_type יכול להיות רק אחד מהבאים:
structuredQuery

object (StructuredQuery)

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

שדה איחוד consistency_selector. מצב העקביות עבור הבקשה הזו. אם המדיניות לא מוגדרת, ברירת המחדל היא עקביות חזקה. consistency_selector יכול להיות רק אחד מהבאים:
readTime

string (Timestamp format)

קריאת מסמכים כפי שהם היו בזמן הנתון.

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

חותמת זמן בפורמט "זולו" RFC3339 UTC, עם רזולוציה של ננו-שנייה ועד תשע ספרות עשרוניות. דוגמאות: "2014-10-02T15:01:23Z" ו-"2014-10-02T15:01:23.045123456Z".

גוף התשובה

התשובה עבור Firestore.PartitionQuery.

אם הפעולה בוצעה ללא שגיאות, גוף התשובה מכיל נתונים במבנה הבא:

ייצוג JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
שדות
partitions[]

object (Cursor)

תוצאות החלוקה. כל מחיצה היא נקודת פיצול שיכולה לשמש את Docs.runQuery כנקודת התחלה או יעד של תוצאות השאילתה. הבקשות של documents.runQuery צריכות להתבצע עם אותה שאילתה שסופקה לבקשה הזו של document.partitionQuery. סמני המחיצות מסודרים לפי אותו סדר כמו תוצאות השאילתה שסופקו ל-document.partitionQuery.

לדוגמה, אם בקשת document.partitionQuery מחזירה את סמני המחיצות A ו-B, הרצת שלוש השאילתות הבאות תחזיר את כל קבוצת התוצאות של השאילתה המקורית:

  • שאילתה, endAt A
  • שאילתה, startAt A, endAt B
  • שאילתה, startAt B

תוצאה ריקה עשויה להעיד על כך שבשאילתה יש מעט מדי תוצאות מכדי לחלק אותה למחיצות, או שהשאילתה עדיין לא נתמכת לחלוקה למחיצות.

nextPageToken

string

אסימון דף שבו ניתן להשתמש כדי לבקש קבוצה נוספת של תוצאות, עד למספר שצוין על ידי partitionCount בבקשה documents.partitionQuery. אם השדה יישאר ריק, לא יהיו תוצאות נוספות.

היקפי הרשאות

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

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

מידע נוסף זמין בסקירה הכללית על אימות.