פונקציות ספירת מקומות הן שאילתות SQL מוגדרות מראש שמופעלות ב-BigQuery. זו הדרך המומלצת לשליחת שאילתות על מערך הנתונים Places Insights כדי לאחזר ספירות מדויקות ומזהי מקומות. אפשר גם להריץ שאילתה ישירות על מערך הנתונים, אבל שתי שיטות השאילתה האלה מטפלות בדרישות הסף בנוגע לפרטיות ובאזורי החיפוש:
פונקציות של ספירת מקומות יכולות להחזיר כל ספירה, כולל 0, אבל הן מחייבות אזור חיפוש מינימלי של 40.0 מטר על 40.0 מטר (1,600 מ'2) (40.0 מטר על 40.0 מטר / 1,600 מ"ר). הפונקציות גם מחזירות מזהי מקומות, שאפשר להשתמש בהם כדי לחפש מידע על מקומות ספציפיים, והן תומכות בניתוח היסטורי של נקודות עניין באמצעות מסנני תאריכים אופציונליים.
שאילתות של מערך נתונים של מקומות יכולות להחזיר רק ספירות של 5 ומעלה (השמטה של ספירות נמוכות של 0 עד 4 כדי לשמור על פרטיות דיפרנציאלית), אבל לא חלות עליהן מגבלות על גודל אזור החיפוש.
אלא אם אתם צריכים לבצע ניתוח מרחבי מורכב, מומלץ להתחיל עם פונקציות של ספירת מקומות, כמו PLACES_COUNT_PER_H3.
הוא מספק תובנות מיידיות לגבי צפיפות מרחבית בתאי רשת סטנדרטיים,
מחזיר מזהי מקומות לבדיקת נתוני אמת, ומיועד במיוחד
לעיבוד נתונים גיאוגרפיים ולמודלים של למידת מכונה.
בחירת הפונקציה האופטימלית לספירת מקומות
ב-Places Insights יש תמיכה בכמה פונקציות מרחביות. כדי לבצע אופטימיזציה של שאילתות, עיבוד מקביל ומדרגיות של אצווה, מומלץ להשתמש בפונקציות הבאות:
-
PLACES_COUNT_PER_H3: הפונקציה מחזירה טבלה ב-BigQuery עם מספר המקומות בכל תא H3. הפונקציה הזו מומלצת לניתוח צפיפות אזורית ולמיפוי חום של מפות כורופלתיות. -
PLACES_COUNT_V2: מחזירה טבלה שמכילה את מספר המקומות ומזהים לדוגמה של מקומות. הפונקציה הזו מקבלת פרמטר של טבלה שמכיל את המיקומים הגיאוגרפיים של הקלט. העברת טבלה שלמה ישירות מאפשרת למנוע הביצוע של BigQuery לחלק את עומס העבודה ולעבד חיתוכים מרחביים במקביל, וכך מתאפשר עיבוד ברצף (batch processing) יעיל מאוד לניתוח בקנה מידה גדול. -
PLACES_COUNT_PER_TYPE_V2: מחזירה טבלה של ספירת מקומות ומזהי מקומות לדוגמה, שמסווגים לפי סוג המקום. בדומה ל-PLACES_COUNT_V2, העברת המיקומים הגיאוגרפיים של הקלט כפרמטר של טבלה מאפשרת ל-BigQuery לבצע באופן מקורי הקבלה של הצלבות מרחביות במערכי נתונים גדולים. -
PLACES_COUNT_CHANGE: מחזירה טבלה של ספירת מקומות בתוספת מזהי מקומות שנוספו והוסרו בין שני חודשים נתונים. בדומה ל-PLACES_COUNT_V2, העברת המיקומים הגיאוגרפיים של הקלט כפרמטר של טבלה מאפשרת ל-BigQuery לבצע באופן מקורי הקבלה של הצלבות מרחביות במערכי נתונים גדולים.
בנוסף לספירת המקומות, הפונקציות האלה מחזירות עד 250 מזהי מקומות לכל רכיב בתגובה.
אפשר להשתמש במזהי מקומות עם:
הרצת שאילתות עם פונקציות של ספירת מקומות
כדי להפעיל את הפונקציות, משתמשים בפורמט הבא: [project name
(optional)].[table name].[function name].
אם שיניתם את השם של קבוצת הנתונים המקושרת כשמגדירים את Places Insights, צריך להשתמש בשם המותאם אישית במקום בשמות הטבלאות שמוגדרים כברירת מחדל. אפשר גם לכלול את שם הפרויקט (אופציונלי). אם לא מציינים פרויקט, השאילתה תפעל כברירת מחדל על הפרויקט הפעיל.
לדוגמה:
PROJECT_NAME.places_insights___us.PLACES_COUNT_V2
משתמשים ב-JSON_OBJECT כדי להעביר ארגומנטים לפונקציה.
סינון תוצאות של שאילתות באמצעות פרמטרים שרגישים לאותיות רישיות
פונקציות ספירת המקומות תומכות בהרבה מסננים שיעזרו לכם לדייק את החיפוש. הפרמטרים האלה (לדוגמה, price_level או types) הם תלויי אותיות רישיות, והם צריכים להיות זהים לשמות הפרמטרים. רשימה מלאה של האפשרויות זמינה במאמר בנושא פרמטרים של מסננים.
שאילתות של תמונות מצב היסטוריות באמצעות snapshot_date
כברירת מחדל, פונקציות של ספירת מקומות מריצות שאילתה על תמונת מצב הנתונים העדכנית ביותר שזמינה.
כדי לנתח את נתוני המקומות כפי שהם היו בחודש מסוים בעבר, מוסיפים את הפרמטר האופציונלי snapshot_date לפרמטר JSON_OBJECT.
- פורמט:
YYYY-MM(לדוגמה,'2026-07'). - ברירת מחדל: אם לא מציינים ערך, הפונקציה שולחת אוטומטית שאילתה לתמונת המצב האחרונה.
הדוגמאות הבאות מציגות שאילתות לגבי מספר המסעדות באזורי החיפוש שלכם, כפי שנרשמו בתמונת המצב מיולי 2026:
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"], 'snapshot_date', '2026-07' -- Optional historical snapshot month ) );
בדוגמה הבאה, מפעילים מסננים כדי להגביל את החיפוש לפי דירוג משתמשים מינימלי, רמת מחיר, הסטטוס של העסק והאם מותר להכניס כלבים למסעדה, באמצעות הפונקציה PLACES_COUNT_V2.
קודם כל, משתמשים בטבלת המיקומים הגיאוגרפיים לקלט או מכינים טבלה עם המיקומים הגיאוגרפיים שנבחרו:
-- Create a table for the input geographies CREATE TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas` AS ( SELECT '1' AS geo_id, -- Unique identifier ST_GEOGPOINT(-73.9857, 40.7484) AS geo -- Empire State Building UNION ALL SELECT '2' AS geo_id, -- Unique identifier ST_GEOGPOINT(-73.9851, 40.7580) AS geo -- Times Square );
לאחר מכן, קוראים ל-PLACES_COUNT_V2 עם הטבלה ואובייקט ה-JSON שמכיל את המסננים. רדיוס החיפוש כלול במסנני ה-JSON והוא יחול על כל נקודה בטבלה my_search_areas.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters around each point in 'geo' 'business_status', ['OPERATIONAL'], 'types', ["restaurant"], 'min_rating', 1.3, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'allows_dogs', TRUE ) );
דוגמה: שאילתת מספר המסעדות ומיקומי המותגים באמצעות PLACES_COUNT_V2
בדוגמה הבאה נעשה שימוש בפונקציה PLACES_COUNT_V2 עם טבלת הנתונים הגיאוגרפיים בהתאמה אישית my_search_areas כדי להחזיר את מספר המסעדות הפעילות ברדיוס של 1,000 מטר מבניין האמפייר סטייט ומטיימס סקוור בניו יורק ביולי 2026:
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"], 'snapshot_date', '2026-07' ) );
התשובה היא טבלה ב-BigQuery שמכילה את השדה geo_id, את המיקום הגיאוגרפי, את המספר ומדגם של מזהי מקומות.

בדוגמה הבאה משתמשים בפונקציה PLACES_COUNT_V2 כדי לסנן לפי מזהי מותג ספציפיים. בדוגמה הזו, אנחנו מסננים את המיקומים של Starbucks באמצעות מזהה המותג "1413758728321880760".
כדי למצוא את מזהי המותגים שרוצים לסנן לפיהם, שולחים שאילתה לbrandsטבלה של מערך הנתונים (לדוגמה, places_insights___us.brands). מידע נוסף על מערך הנתונים של המותגים זמין במאמר כתיבת שאילתה באמצעות נתוני מותגים.
לדוגמה, כדי למצוא את מזהה המותג של Starbucks:
SELECT id, name FROM `PROJECT_NAME.places_insights___us.brands` WHERE name = "Starbucks"
אחרי שמקבלים את מזהי המותגים, אפשר להשתמש בהם במסנן brand_ids כמו שמוצג בשאילתה הבאה:
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'brand_ids', ["1413758728321880760"] ) );
המחשה חזותית של פלט שאילתות באמצעות כלים של Google Cloud
כדי להפיק תובנות מנתוני BigQuery, אפשר להשתמש בכלי ניתוח ובינה עסקית (BI). BigQuery תומך בכמה כלים להמחשת נתונים של Google ושל צד שלישי, שבהם אפשר להשתמש כדי לנתח את התוצאות של הפונקציות בנתוני Places Insights.
דוגמה להצגה חזותית של תוצאות פונקציה מופיעה במאמר הצגה חזותית של תוצאות בתוך ההפניה PLACES_COUNT_PER_H3. מידע נוסף על הצגת תוצאות של שאילתות ב-Places Insights זמין במאמר בנושא הצגה חזותית של תוצאות שאילתות.
דרישות ומגבלות של פונקציות
לפונקציות ספירת המקומות יש את המגבלות והדרישות הבאות:
- הפונקציות תומכות רק בתובנות לגבי
COUNT. - נדרש אזור חיפוש מינימלי של 40.0 מטר על 40.0 מטר (1,600 מ"ר)
- מגבלת הגודל של קלט הפרמטר: אובייקט ה-JSON שמועבר כפרמטר לפונקציות מוגבל ל-1MB. ההשפעה של המגבלה הזו תלויה בגרסת הפונקציה:
- בפונקציות V2 (
PLACES_COUNT_V2,PLACES_COUNT_PER_TYPE_V2,PLACES_COUNT_CHANGE), המגבלה הזו חלה רק על אובייקט ה-JSON של המסננים. הפונקציות האלה יכולות להתרחב למספר גדול בהרבה של אזורים גיאוגרפיים קלט בלי להגיע למגבלת הגודל של JSON, כי האזורים הגיאוגרפיים מסופקים בנפרד באמצעות פרמטר של טבלה. - במקרה של
PLACES_COUNT_PER_H3,PLACES_COUNT,PLACES_COUNT_PER_TYPEו-PLACES_COUNT_PER_GEO, המגבלה הזו חלה על אובייקט ה-JSON כולו, כולל כל ההגדרות הגיאוגרפיות. יכול להיות שההגדרה הזו תגביל את מספר האזורים הגיאוגרפיים שאפשר לעבד בקריאה אחת.
- בפונקציות V2 (
- אין תמיכה בסינון לפי מזהה מקום או רכיב כתובת.
- אפשר לגשת לפונקציות של ספירת מקומות רק עבור הערים והמדינות שאליהן נרשמתם. מידע על גישה למערך נתונים זמין במאמר בנושא הגדרת Places Insights.
- פרמטרים של מסננים (לדוגמה,
geographyאוtypes) הם תלויי-רישיות, והם צריכים להיות זהים בדיוק לשמות הפרמטרים, אחרת השאילתה תיכשל.