קבלת נתונים סטטיסטיים של שאילתות
בדף הזה מוסבר איך לקבל נתונים סטטיסטיים של שאילתות באמצעות cbt CLI. אפשר גם לקבל נתונים סטטיסטיים של שאילתות באמצעות ספריית הלקוח של Go ל-Cloud Bigtable.
התוכן שמוצג כאן מיועד למפתחי אפליקציות. לפני שקוראים את הדף הזה, חשוב להבין את מודל האחסון של Bigtable. כדאי גם להכיר את השיטות המומלצות לעיצוב סכימות ולהבין את הביצועים.
האפשרות לקבל מידע על שאילתת Bigtable יכולה להיות שימושית כשמפתחים אפליקציה. היא מאפשרת לקבל נתונים על הביצועים של שאילתה, ואז לשנות את השאילתה או את עיצוב הסכימה כדי לשפר את הביצועים שלה.
למרות שבדרך כלל שאילתה היא כל בקשה לנתונים שנשלחת לטבלה, Bigtable מחזיר נתונים סטטיסטיים של שאילתות רק לבקשות קריאה.
לפני שמתחילים
- אם עדיין לא התקנתם את
cbtCLI, פועלים לפי ההוראות במאמר סקירה כללית שלcbtCLI, כולל השלבים ליצירת קובץ.cbtrc. - כדאי לעיין בקטע קריאת שורות במדריך העזר ל-CLI של
cbtכדי להכיר את התחביר של שורת הפקודה ואת האפשרויות שזמינות לשליחת בקשתcbt readלטבלה. שימו לב: ממשק שורת הפקודה (CLI)cbtלא תומך במסננים. - חשוב לוודא שיש לכם הרשאת
bigtable.tables.readRowsלטבלה או שאתם חשבון משתמש עם תפקידbigtable.reader.
הרצת השאילתה
יוצרים שאילתה באמצעות התחביר של קריאת שורות.
מריצים את הפקודה הבאה. הפרמטר
include-stats=fullאומר ל-Bigtable להחזיר את נתוני השאילתה.cbt read TABLE_ID QUERY include-stats=fullמחליפים את מה שכתוב בשדות הבאים:
-
TABLE_ID: המזהה הייחודי של הטבלה שאתם שולחים אליה שאילתה -
QUERY: שאילתה בפורמט של CLI שלcbt
במסוף מוצגים הנתונים שנקראו ורשימה עם הנתונים הסטטיסטיים הבאים:
-
rows_seen_count: מספר השורות ש-Bigtable עיבד עבור הבקשה -
rows_returned_count: מספר השורות שמוחזרות אחרי החלת מסננים cells_seen_count: מספר התאים שעברו עיבוד בבקשה-
cells_returned_count: מספר התאים שמוחזרים אחרי החלת מסננים -
frontend_server_latency: זמן האחזור של הבקשה שנמדד ממאגר השרתים של חזית Bigtable, במילישניות
-
פירוש התוצאות
בודקים את היחס בין התאים שנראו לבין התאים שהוחזרו. אם המנה של
cells_seen_count/cells_returned_countהיא 1 או קרובה ל-1, זה מצביע על כך שהשאילתה לא גרמה ל-Bigtable לעבד נתונים שבסופו של דבר סוננו.כדאי לשים לב למספר השורות שמוחזרות. ככל שהמספר הזה גבוה יותר, כך Bigtable מבצע יותר עבודה. המספר האופטימלי תלוי בתרחיש השימוש ובדרישות זמן האחזור, אבל באופן כללי, לשאילתה שמחזירה פחות שורות יהיה זמן אחזור נמוך יותר.
דוגמה
אם רוצים לקבל נתונים סטטיסטיים של שאילתה כשקוראים את כל השורות שתואמות לביטוי הרגולרי orange:*.* בטבלה שנקראת my-table, אפשר להריץ את הפקודה הבאה:
cbt read my-table regex='.*orange' columns='.*:.*' include-stats=full
הפלט אמור להיראות כך:
----------------------------------------
orange
Details:Color @ 2022/09/26-14:48:01.286000
"orange"
Details:Size @ 2022/09/26-14:48:01.286000
"medium"
Request Stats
====================
rows_seen_count: 10
rows_returned_count : 1
cells_seen_count: 2
cells_returned_count: 2
frontend_server_latency: 13ms