יצירת שאילתות במסוף

אתם יכולים להריץ שאילתות על הנתונים שלכם ב-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 שורות.

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על שם המופע שמכיל את הטבלה שרוצים לשלוח אליה שאילתה.

  3. בחלונית הניווט, לוחצים על Bigtable Studio. הדף Bigtable Studio נפתח במצב של כלי ליצירת שאילתות. בחלונית Explorer מוצגת רשימה של טבלאות במופע, ובחלונית Query results מוצגות התוצאות של שאילתת ברירת המחדל.

  4. אופציונלי: מכווצים את החלונית Explorer כדי להגדיל את החלונית של הכלי ליצירת שאילתות.

הפורמט של תצוגת הנתונים

התוצאות של כלי ליצירת שאילתות מוצגות בטבלה. הכותרת והעמודה הראשונות הן Row key. כל אחת מהכותרות שנותרו מייצגת עמודה בטבלת Bigtable, והיא מופיעה כמשפחת העמודות ומזהה העמודה, מופרדות בנקודתיים. לדוגמה, הכותרת cell_plan: data_plan_01gb מציינת שהערכים בעמודה הזו הם מהעמודה data_plan_01gb במשפחת העמודות cell_plan.

תפריט נפתח

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

בחירת טבלה

בתפריט הנפתח Table (טבלה) בוחרים את מזהה הטבלה שרוצים לשלוח אליה שאילתה.

אופציונלי: ציון פרופיל אפליקציה

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

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

  1. לוחצים על הוספה לשאילתה.
  2. לוחצים על שינוי פרופיל האפליקציה (ברירת מחדל). יופיע תפריט נפתח חדש.
  3. משתמשים בתפריט הנפתח פרופיל אפליקציה ובוחרים מתוך רשימת פרופילי האפליקציה של המופע.

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

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

הוספת סעיפים לשאילתה והרצתה

  1. אחרי שבוחרים את הטבלה ואת פרופיל האפליקציה, מוסיפים סעיפים לשאילתה. בקטע הבא מפורטות ההוראות הזמינות.
  2. אחרי שמוסיפים את כל הסעיפים, לוחצים על הפעלה.
  3. מעיינים בתוצאות.

סעיפי שאילתה

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

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

ציון מפתח שורה

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

  1. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות Row key (מפתח שורה).
  3. מזינים את הערך המדויק של מפתח השורה שרוצים לראות את הערכים שלו.

ציון טווח של מפתח שורה

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

  1. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות Row key range (טווח מפתחות שורות).
  3. מזינים את מפתח השורה המלא.
  4. מזינים את מפתח השורה המלא.

ציון קידומת של מפתח שורה

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

  1. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות Row key prefix (קידומת של מפתח שורה).
  3. מזינים קידומת למפתח שורה. אין צורך להזין סמלי wildcard.

סינון לפי ביטוי רגולרי של מפתח שורה

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

  1. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות Row key regex.
  3. מזינים ביטוי רגולרי שמשתמש בתחביר re2

סינון לפי עמודה

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

  1. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות עמודות.
  3. לוחצים על השדה Columns (עמודות). מוצגת רשימה של משפחות עמודות.
  4. לוחצים על מזהה של קבוצת עמודות. מוצגת רשימה של מסנני עמודות.
  5. לוחצים על מגדיר עמודה.

סינון לפי טווח זמן

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

  1. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות טווח זמן.
  3. מזינים חותמת זמן של ההתחלה.
  4. מזינים חותמת זמן של סיום.

צריך לספק חותמת זמן באחד מהפורמטים הבאים:

  • חותמת זמן של מערכת 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. לוחצים על הוספה לשאילתה.
  2. ברשימה הנפתחת, בוחרים באפשרות הגבלה.
  3. צריך לציין מספר בין 1 ל-1,000.

מגבלות

המגבלות הבאות חלות על הכלי ליצירת שאילתות.

  • 1,000 תווים לכל תא: ‏ Bigtable מחזירה עד 1,000 תווים לכל תא. אם תא מכיל יותר מ-1,000 תווים, מוצגת תוצאה קטועה עם הערה שמציינת את מספר התווים שלא מוצגים.
  • מקסימום 100 עמודות: ‏ Bigtable מחזיר את 100 העמודות הראשונות בכל שורה שתואמות לשאילתה. קבוצות עמודות לא מאוחסנות בסדר מסוים, אבל העמודות ממוינות בסדר לקסיקוגרפי בתוך קבוצת העמודות שלהן.
  • מקסימום 1,000 שורות: בונה השאילתות מחזיר מקסימום את 1,000 השורות הראשונות של נתונים שתואמים לשאילתה.
  • Base64: ‏ Bigtable עושה מאמץ רב להציג נתונים בקידוד Base64 בצורה מדויקת, אבל התוצאות לא מובטחות. אם Bigtable לא מצליח להציג את הנתונים בתא, הוא מציג במקום זאת את הגודל של ערך התא בבייטים.
  • נתונים ישנים יותר: אפשר לאחזר רק את התא האחרון (או הגרסה האחרונה) בעמודות שאתם שולחים לגביהן שאילתה. מידע נוסף זמין במאמרים בנושא מודל האחסון של Bigtable ומושגים כלליים.
  • נתונים שעברו סריאליזציה: נתונים שמאוחסנים כמאגרי פרוטוקולים לא מוצגים בצורה תקינה בתוצאות השאילתה. יש תמיכה טובה יותר בנתוני JSON, אבל לא מובטח שהם יוצגו בצורה תקינה.
  • עמודות HyperLogLog‏ (HLL): ערכי HLL מייצגים קבוצות הסתברותיות. כשמציגים אותם בטבלת התוצאות, הם מופיעים כבייטים גולמיים או כ-Base64. כדי להעריך את העוצמה (cardinality) הייחודית (המספרים) של עמודות HLL, צריך לקרוא את הנתונים באמצעות ספריית Zetasketch, או להשתמש בעורך השאילתות עם פונקציות HLL++‎ של GoogleSQL, כמו HLL_COUNT.EXTRACT.
  • חותמות זמן מלאכותיות: אם האפליקציה שלכם מקצה מספרים שאינם חותמות זמן למאפיין חותמת הזמן של תאים כשהיא כותבת נתונים לטבלה, אתם יכולים להשתמש במסננים של טווח זמן בשאילתה כדי לקבל טווח של הערכים שבהם אתם משתמשים במקום חותמות זמן, כל עוד אתם מציינים אותם כמיקרו-שניות. כדי להבין למה יכול להיות שחותמות הזמן בנתוני הטבלה הן מלאכותיות, אפשר לעיין במאמר בנושא חותמות זמן.

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