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

פונקציות לספירת מקומות הן שאילתות SQL מוגדרות מראש שמופעלות ב-BigQuery, והן משלימות את השאילתות שמופעלות ישירות על מערך הנתונים. ההבדל העיקרי בין שליחת שאילתה ישירות לנתונים לבין שימוש בפונקציה הוא שבפונקציות לא מוגדר סף מינימלי של ספירה, אלא אזור חיפוש מינימלי:

  • שאילתות של מערכי נתונים של מקומות יכולות להחזיר רק ספירות של 5 ומעלה, אבל אין מגבלות על גודל אזור החיפוש.
  • פונקציות לספירת מקומות יכולות להחזיר כל מספר, כולל 0, אבל הן מחייבות אזור חיפוש מינימלי של 40.0 מטר על 40.0 מטר (1,600 מ'2). פונקציות יכולות גם להחזיר מזהי מקומות, שאפשר להשתמש בהם כדי לחפש מידע על מקומות ספציפיים.

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

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

פונקציות ומדינות נתמכות של ספירת מקומות

התובנות לגבי מקומות תומכות בפונקציות הבאות:

  • PLACES_COUNT: מחזירה שורה אחת שמכילה את מספר המקומות.
  • PLACES_COUNT_PER_TYPE: מחזירה טבלה של BigQuery עם ספירת המקומות לפי סוג המקום.
  • PLACES_COUNT_PER_GEO: מחזירה טבלה ב-BigQuery עם מספר המקומות לפי מיקום גיאוגרפי.
  • PLACES_COUNT_PER_H3: מחזירה טבלה ב-BigQuery עם ספירת המקומות בכל תא H3.

בנוסף למספר המקומות, הפונקציות PLACES_COUNT_PER_TYPE,‏ PLACES_COUNT_PER_GEO ו-PLACES_COUNT_PER_H3 מחזירות גם עד 250 מזהי מקומות לכל רכיב בתגובה. לרשימת כל הפרמטרים של המסננים

אפשר להשתמש במזהי מקומות עם:

כתיבת שאילתות עם פונקציות

כדי להפעיל את הפונקציות, משתמשים בפורמט הבא: [project name (optional)].[table name].[function name].

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

לדוגמה:

PROJECT_NAME.places_insights___us.PLACES_COUNT

משתמשים ב-JSON_OBJECT כדי להעביר ארגומנטים לפונקציה.

סינון התוצאות

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

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

SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`(
  JSON_OBJECT(
      'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'min_rating', 1.3,
      'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'],
      'allows_dogs', TRUE
      )
) as count;

דוגמה לפונקציית ספירה של מיקומים

בדוגמה הבאה נעשה שימוש בפונקציה PLACES_COUNT כדי להחזיר את מספר המסעדות הפעילות ברדיוס של 1,000 מטר מבניין האמפייר סטייט בניו יורק:

SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`(
  JSON_OBJECT(
      'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"]
      )
) as count;

התשובה מכילה ספירה אחת:

תוצאות של פונקציית ספירת המקומות בניו יורק.

בדוגמה הזו נעשה שימוש בפונקציה ST_GEOGPOINT של BigQuery כדי להחזיר ערך GEOGRAPHY מנקודה מסוימת, ואז להעביר את הערך הזה לפרמטר geography. היא גם מעבירה את רדיוס החיפוש סביב הנקודה ואת סוג המקום, "restaurant", לחיפוש.

דוגמה לספירת מקומות לפי סוג, מיקום גיאוגרפי או H3

בנוסף למספר המקומות, הפונקציות PLACES_COUNT_PER_TYPE,‏ PLACES_COUNT_PER_GEO ו-PLACES_COUNT_PER_H3 מחזירות גם עד 250 מזהי מקומות של המקומות שנכללים בתגובה.

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

הקריאה הבאה לפונקציה מחזירה את מספר המקומות עם הסוגים: restaurant, ‏cafe ו-bar:

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE`(
  JSON_OBJECT(
      'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building
      'geography_radius', 1000, -- Radius in meters
      'types', ["restaurant", "cafe", "bar"],
      'business_status', ['OPERATIONAL']
      )
);

הפונקציה הזו מחזירה טבלה עם שלוש עמודות: type,‏ count ו-sample_place_ids. בעמודה count מוצג מספר המקומות לכל type, ובעמודה sample_place_ids מוצגים עד 250 מזהי מקומות לכל type.

תוצאות של הפונקציה Place Count Type בניו יורק.

הצגה חזותית של התוצאות

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

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

מגבלות ודרישות

יש מגבלות ודרישות מסוימות לגבי פונקציות של ספירת מקומות:

  • יש תמיכה רק בתובנות לגבי COUNT.
  • נדרש אזור חיפוש מינימלי של 40.0 מטר על 40.0 מטר (1,600 מ"ר).
  • גודל הקלט של פרמטר מספר הפונקציות ב-Place מוגבל ל-1MB.
  • אין תמיכה בסינון לפי מזהה מקום, מותגים, אפשרויות טעינה של רכבים חשמליים או רכיב כתובת.
  • אפשר לגשת לפונקציות של ספירת המקומות רק עבור הערים והמדינות שאליהן נרשמתם. במאמר הגדרת תובנות לגבי מקומות מוסבר איך מקבלים גישה למערכי נתונים.
  • פרמטרים של מסננים (לדוגמה, geography או types) הם תלויי-רישיות וחייבים להיות זהים לשמות הפרמטרים, אחרת השאילתה תיכשל.