יצירת שאילתות במסוף
אתם יכולים להריץ שאילתות על הנתונים שלכם ב-Bigtable ולצפות בהם באמצעות בונה השאילתות של Bigtable Studio. בונה השאילתות הוא טופס אינטראקטיבי במסוף Google Cloud שמאפשר לכם לבנות שאילתה, להריץ אותה על טבלה ואז לראות את התוצאות במסוף.
בונה השאילתות של Bigtable Studio מאפשר לכם להשתמש בתפריטים נפתחים כדי לציין שילוב של סעיפי שאילתה בלי לכתוב אפליקציה או להשתמש ב-CLI. כשמריצים את השאילתה, המסוף שולח קריאה ל-Bigtable Data API, שמחזיר נתונים שתואמים לשאילתה.
במאמר הזה מוסבר איך להשתמש בכלי ליצירת שאילתות, ומוצעים טיפים לאופטימיזציה של השאילתות. לפני שקוראים את הדף הזה, כדאי לעיין בסקירה הכללית על Bigtable.
שאילתות שמופעלות בכלי ליצירת שאילתות כפופות לאותו תמחור ולאותן מכסות כמו כל שאילתה אחרת שנשלחת לטבלה.
מתי כדאי להשתמש בכלי ליצירת שאילתות
האפשרות להריץ שאילתות על נתוני Bigtable בGoogle Cloud מסוף שימושית כשצריך לבצע את הפעולות הבאות:
- אפשר לקבל במהירות ייצוג חזותי של הסכימה של הטבלה.
- מוודאים שנתונים מסוימים נכתבו בהצלחה.
- אימות של תקינות הנתונים במהלך ההעברה.
- לנפות באגים בבעיות אפשריות בנתונים.
- לפני שמשתמשים בשילוב מסוים של סעיפים בקוד, אפשר לראות תצוגה מקדימה של התוצאות שמתקבלות ממנו. האפשרות הזו יכולה להיות שימושית במיוחד למשתמשים חדשים ב-Bigtable, וגם למשתמשים מנוסים שלא רוצים להשתמש ב-CLI
cbt.
לפני שמתחילים
כדי לקבל את ההרשאות שנדרשות לשימוש בכלי ליצירת שאילתות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Bigtable Reader (roles/bigtable.reader) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לשימוש בכלי ליצירת שאילתות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להשתמש בכלי ליצירת שאילתות, צריך את ההרשאות הבאות:
-
bigtable.tables.get -
bigtable.instances.get -
bigtable.appProfiles.list -
bigtable.tables.list -
bigtable.tables.readRows
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אם אין לכם טבלה להריץ עליה שאילתות, אתם יכולים ליצור טבלת בדיקה קטנה ולהריץ עליה את השאילתות.
פתיחת הכלי ליצירת שאילתות
כשפותחים את הכלי ליצירת שאילתות, שאילתת ברירת מחדל מופעלת ומוצגת עבור הטבלה הראשונה בסדר האלפביתי במופע. שאילתת ברירת המחדל מופעלת באמצעות פרופיל האפליקציה שמוגדר כברירת מחדל, ומוחזרות עד 100 שורות.
פותחים את רשימת מופעי Bigtable במסוף Google Cloud .
לוחצים על שם המופע שמכיל את הטבלה שרוצים לשלוח אליה שאילתה.
בחלונית הניווט, לוחצים על Bigtable Studio. הדף Bigtable Studio נפתח במצב של כלי ליצירת שאילתות. בחלונית Explorer מוצגת רשימה של טבלאות במופע, ובחלונית Query results מוצגות התוצאות של שאילתת ברירת המחדל.
אופציונלי: מכווצים את החלונית Explorer כדי להגדיל את החלונית של הכלי ליצירת שאילתות.
פורמט תצוגת הנתונים
התוצאות של כלי ליצירת שאילתות מוצגות בטבלה. הכותרת והעמודה הראשונות הן Row key. כל אחת מהכותרות שנותרו מייצגת עמודה בטבלת Bigtable, והיא מופיעה כמשפחת העמודות ומזהה העמודה, מופרדות בנקודתיים. לדוגמה, הכותרת cell_plan: data_plan_01gb מציינת שהערכים בעמודה הזו הם מהעמודה data_plan_01gb במשפחת העמודות cell_plan.

מוחזר רק הערך האחרון של עמודה. חותמות הזמן מוסתרות כברירת מחדל, אבל אפשר ללחוץ על המתג כדי להציג אותן.
בחירת טבלה
בתפריט הנפתח Table (טבלה) בוחרים את מזהה הטבלה שרוצים לשלוח אליה שאילתה.
אופציונלי: ציון פרופיל אפליקציה
אפשר להשתמש בפרופיל אפליקציה שיוצרים במיוחד לשימוש עם הכלי ליצירת שאילתות. לדוגמה, זה יכול להיות שימושי כשרוצים לבודד את התנועה של השאילתות באמצעות אשכול שונה מזה שבו נעשה שימוש באפליקציה הראשית.
כדי להשתמש בפרופיל אפליקציה אחר להפעלת השאילתה הבאה, פועלים לפי השלבים הבאים.
- לוחצים על הוספה לשאילתה.
- לוחצים על שינוי פרופיל האפליקציה (ברירת מחדל). יופיע תפריט נפתח חדש.
- משתמשים בתפריט הנפתח פרופיל אפליקציה ובוחרים מתוך רשימת פרופילי האפליקציה של המופע.
כדי לקרוא מידע נוסף על היתרונות של שימוש בפרופילים שונים של אפליקציות לעומסי עבודה שונים, אפשר לעיין במאמר מידע על פרופילים של אפליקציות. במאמר יצירה והגדרה של פרופילים של אפליקציות מוסבר איך יוצרים פרופיל של אפליקציה.
אם הטבלה נמצאת במכונה שמשתמשת בשכפול, צריך להגדיר את פרופיל האפליקציה כך שיקרא מהאשכול שהכי קרוב למיקום שלכם מבחינה גיאוגרפית.
הוספת סעיפים לשאילתה והרצתה
- אחרי שבוחרים את הטבלה ואת פרופיל האפליקציה, מוסיפים סעיפים לשאילתה. בקטע הבא מפורטות ההוראות הזמינות.
- אחרי שמוסיפים את כל הסעיפים, לוחצים על הפעלה.
- מעיינים בתוצאות.
סעיפי שאילתה
משתמשים בכלי ליצירת שאילתות כדי להוסיף פסקה לשאילתה. כשמריצים את השאילתה, כלי בניית השאילתות יוצר בקשת קריאה ושולח אותה לטבלה. מידע נוסף על בקשות קריאה זמין במאמר בנושא קריאות.
הסעיפים מפתח שורה, טווח מפתחות שורה וקידומת מפתח שורה קובעים אילו שורות יאוחזרו מהאחסון. הביטוי הרגולרי של מפתח השורה, העמודות והסעיפים של טווח הזמן מוסיפים מסנן לבקשת הקריאה שנוצרה. מסננים שבהם משתמשים בכלי ליצירת שאילתות פועלים באותו אופן כמו בספריות הלקוח. פרטים על מסנני Bigtable ועל ההשפעה של השימוש בהם על הביצועים זמינים במאמרים Filters ו-Use filters.
ציון מפתח שורה
כדי לאחזר שורה אחת מהטבלה, צריך לספק ערך של מפתח שורה. אפשר להוסיף כמה סעיפים של מפתח שורה.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות Row key (מפתח שורה).
- מזינים את הערך המדויק של מפתח השורה שרוצים לראות את הערכים שלו.
ציון טווח של מפתח שורה
כדי לאחזר טווח של שורות מהטבלה, מציינים מפתח שורה להתחלה ולסיום. נתונים ב-Bigtable נשמרים בסדר לקסיקוגרפי לפי מפתח השורה.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות Row key range (טווח מפתחות שורות).
- מזינים את מפתח השורה המלא.
- מזינים את מפתח השורה המלא.
ציון קידומת של מפתח שורה
כדי לאחזר רק שורות שמפתחות השורה שלהן מתחילים בקבוצה ספציפית של תווים, מסננים לפי קידומת של מפתח השורה. תחילית של מפתח שורה היא N התווים הראשונים של מפתח שורה. לפי המוסכמה, בדרך כלל יש סולמית, קו אנכי או סמל אחר בין הקידומת לבין שאר מפתח השורה.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות Row key prefix (קידומת של מפתח שורה).
- מזינים קידומת למפתח שורה. אין צורך להזין סמלי תו כללי.
סינון לפי ביטוי רגולרי של מפתח שורה
כדי לקבל רק שורות שערכי מפתח השורה שלהן תואמים לביטוי רגולרי שצוין, משתמשים במסנן ביטוי רגולרי של מפתח שורה. כדי לשפר את הביצועים, מוסיפים ל-query טווח של מפתחות שורות או סעיף של קידומת מפתח שורה לפני שמוסיפים את מסנן הביטוי הרגולרי של מפתח השורה. לקבלת הנחיות ליצירת ביטוי רגולרי, אפשר לעיין במאמר ביטוי רגולרי של מפתח שורה.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות Row key regex.
- מזינים ביטוי רגולרי שמשתמש בתחביר re2
סינון לפי עמודה
כדי לציין עמודה אחת או יותר שרוצים לכלול בשאילתה, מוסיפים פסקה של columns, ובוחרים את משפחת העמודות ואת מסווג העמודות לכל עמודה שרוצים לסנן. בקשת הקריאה שנוצרת כשמוסיפים את הסעיף הזה כוללת את המסנן של הביטוי הרגולרי של משפחת העמודות ואת המסנן של טווח העמודות.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות עמודות.
- לוחצים על השדה Columns (עמודות). מוצגת רשימה של משפחות עמודות.
- לוחצים על מזהה של קבוצת עמודות. מוצגת רשימה של מסנני עמודות.
- לוחצים על מגדיר עמודה.
סינון לפי טווח זמן
כדי לאחזר רק תאים עם חותמת זמן בטווח מסוים, מוסיפים פסקה של טווח זמן שמשתמשת במסנן טווח חותמות הזמן.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות טווח זמן.
- מזינים חותמת זמן להתחלה.
- מזינים חותמת זמן של סיום.
צריך לספק חותמת זמן באחד מהפורמטים הבאים:
- חותמת זמן של מערכת Unix במיקרו-שניות, כמו
3023483279876000 - YYYY-MM-DDThh:mm:ss:ss[z]
- YYYY/MM/DD-hh:mm:ss.sss[z]
- MM/DD/YYYY
- YYYY/MM/DD
הערך האופציונלי T הוא מחרוזת שמציינת שעה, והערך האופציונלי z מציין שעה לפי שעון UTC ולא לפי השעה המקומית. מידע נוסף על פורמטים של חותמות זמן זמין במאמר בנושא ISO 8601.
הגדרת מגבלה
כדי לציין את המספר המקסימלי של השורות שיוחזרו, מוסיפים פסקה של הגבלה.
- לוחצים על הוספה לשאילתה.
- ברשימה הנפתחת, בוחרים באפשרות הגבלה.
- צריך לציין מספר בין 1 ל-1,000.
מגבלות
המגבלות הבאות חלות על הכלי ליצירת שאילתות.
- 1,000 תווים לכל תא – Bigtable מחזיר עד 1,000 תווים לכל תא. אם תא מכיל יותר מ-1,000 תווים, מוצגת תוצאה קטועה עם הערה שמציינת את מספר התווים שלא מוצגים.
- מקסימום 100 עמודות – Bigtable מחזיר את 100 העמודות הראשונות בכל שורה שתואמות לשאילתה. קבוצות עמודות לא מאוחסנות בסדר מסוים, אבל העמודות ממוינות בסדר לקסיקוגרפי בתוך קבוצת העמודות שלהן.
- מגבלה של 1,000 שורות – הכלי ליצירת שאילתות מחזיר לכל היותר את 1,000 השורות הראשונות של נתונים שתואמות לשאילתה.
- Base64 – Bigtable עושה מאמץ רב להציג נתונים בקידוד Base64 בצורה מדויקת, אבל התוצאות לא מובטחות. אם ל-Bigtable אין אפשרות להציג את הנתונים בתא, הוא מציג במקום זאת את הגודל של ערך התא בבייטים.
נתונים ישנים יותר – אפשר לאחזר רק את התא האחרון (או הגרסה האחרונה) בעמודות ששולחים לגביהן שאילתה. פרטים על המושג הזה מופיעים במאמרים מודל האחסון של Bigtable ומושגים כלליים.
נתונים שעברו סריאליזציה – נתונים שמאוחסנים כמאגרי פרוטוקולים לא מוצגים בצורה נכונה בתוצאות השאילתה. יש תמיכה טובה יותר בנתוני JSON, אבל לא מובטח שהם יוצגו בצורה תקינה.
חותמות זמן מלאכותיות – אם האפליקציה שלכם מקצה מספרים שהם לא חותמות זמן למאפיין חותמת הזמן של תאים כשהיא כותבת נתונים לטבלה, אתם יכולים להשתמש במסננים של טווח זמן בשאילתה כדי לקבל טווח של הערכים שבהם אתם משתמשים במקום חותמות זמן, כל עוד אתם מציינים אותם כמיקרו-שניות. כדי להבין למה יכול להיות שנתוני הטבלה משתמשים בחותמות זמן מלאכותיות, אפשר לעיין במאמר בנושא חותמות זמן.