פונקציות של ספירת מקומות הן שאילתות SQL מוגדרות מראש שמופעלות ב-BigQuery, והן משלימות את השאילתות שמופעלות ישירות על מערך הנתונים. ההבדל העיקרי בין הפעלת שאילתות ישירות על הנתונים לבין שימוש בפונקציה הוא שבפונקציות לא מוגדר סף מינימלי של ספירה, אלא אזור חיפוש מינימלי:
- שאילתות של מערכי נתונים של מקומות יכולות להחזיר רק ספירות של 5 ומעלה, אבל לא חלות עליהן מגבלות על גודל אזור החיפוש.
- פונקציות של ספירת מקומות יכולות להחזיר כל ספירה, כולל 0, אבל הן מחייבות אזור חיפוש מינימלי של 40.0 מטר על 40.0 מטר (1,600 מ'2). פונקציות יכולות גם להחזיר מזהי מקומות, שאפשר להשתמש בהם כדי לחפש מידע על מקומות ספציפיים.
כדאי להשתמש בפונקציות של ספירת מקומות אם חשוב לכם לדעת מתי שאילתה לא מחזירה תוצאות, או אם אתם צריכים לדעת אם יש פחות מ-5 מקומות. הוא גם שימושי אם אתם צריכים לקבל מידע על מקום ספציפי כדי לבדוק את התוצאות.
פונקציות של ספירת מקומות מספקות רק ספירות, ולכן אם אתם צריכים לבצע שאילתות מורכבות יותר כמו צירופי נתונים, או לקבל תובנות נוספות כמו הדירוג הממוצע של קבוצת מקומות, אתם צריכים להריץ שאילתה ישירות על מערך הנתונים.
פונקציות ספירת מקומות ומדינות נתמכות
Places Insights תומך בפונקציות הבאות:
-
PLACES_COUNT_V2: מחזירה טבלה שמכילה ספירות של מקומות ומזהי מקומות לדוגמה. הפונקציה הזו מקבלת פרמטר של טבלה לקלט של כמה אזורים גיאוגרפיים, וכך מאפשרת עיבוד ברצף (batch processing) יעיל. היא מותאמת במיוחד לצירופים גיאוספציאליים בהשוואה לפונקציותPLACES_COUNTו-PLACES_COUNT_PER_GEO. -
PLACES_COUNT_PER_TYPE_V2: מחזירה טבלה של ספירת מקומות ומזהי מקומות לדוגמה, שמסווגים לפי סוג המקום. בדומה ל-PLACES_COUNT_V2, הפונקציה הזו מקבלת פרמטר של טבלה כדי לעבד כמה אזורים גיאוגרפיים של קלט בו-זמנית. הארכיטקטורה הזו תומכת בעיבוד יעיל ברצף (batch processing) ומספקת אופטימיזציה של שאילתת איחוד (join) נתונים גיאוגרפיים בהשוואה ל-PLACES_COUNT_PER_TYPE. -
PLACES_COUNT_PER_H3: מחזירה טבלה ב-BigQuery עם מספר המקומות בכל תא H3. -
PLACES_COUNT: מחזירה שורה אחת שמכילה את ספירת המקומות. -
PLACES_COUNT_PER_TYPE: מחזירה טבלה ב-BigQuery עם ספירת המקומות לפי סוג המקום. -
PLACES_COUNT_PER_GEO: מחזירה טבלה ב-BigQuery עם ספירת המקומות לפי מיקום גיאוגרפי.
בנוסף לספירת המקומות, כל הפונקציות מלבד PLACES_COUNT מחזירות גם עד 250 מזהי מקומות לכל רכיב בתגובה.
אפשר להשתמש במזהי מקומות עם:
כתיבת שאילתות עם פונקציות
כדי להפעיל את הפונקציות, משתמשים בפורמט הבא: [project name
(optional)].[table name].[function name].
אם שיניתם את השם של מערך הנתונים המקושר כשקבעתם את ההגדרות של Places Insights, תצטרכו להשתמש בשם המותאם אישית במקום בשמות הטבלאות שמוגדרים כברירת מחדל שמפורטים במאמר פירוט פונקציות ספירת מקומות ב-BigQuery. אפשר גם לכלול את שם הפרויקט (אופציונלי). אם לא מציינים פרויקט, השאילתה תפעל כברירת מחדל על הפרויקט הפעיל.
לדוגמה:
PROJECT_NAME.places_insights___us.PLACES_COUNT
משתמשים ב-JSON_OBJECT כדי להעביר ארגומנטים לפונקציה.
סינון התוצאות
פונקציות הספירה של מקומות תומכות במסננים רבים לצמצום החיפוש. הפרמטרים האלה (לדוגמה, price_level או types) הם תלויי-רישיות וצריכים להיות זהים לשמות הפרמטרים. רשימה מלאה של האפשרויות זמינה במאמר בנושא פרמטרים של מסננים.
בדוגמה הבאה, מפעילים מסננים כדי להגביל את החיפוש לפי דירוג משתמשים מינימלי, רמת מחיר, הסטטוס של העסק והאם מותר להכניס כלבים למסעדה, באמצעות הפונקציה 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 עם טבלת הקלט בהתאמה אישית my_search_area כדי להחזיר את מספר המסעדות הפעילות ברדיוס של 1,000 מטר מבניין האמפייר סטייט ומטיימס סקוור בניו יורק:
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"] ) );
התשובה היא טבלה ב-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"] ) );
הצגה חזותית של התוצאות
כדי להפיק תובנות מנתוני BigQuery, חשוב להשתמש בכלי ניתוח ובינה עסקית. BigQuery תומך בכמה כלי להמחשת נתונים של Google ושל צד שלישי, שבהם אפשר להשתמש כדי לנתח את התוצאות של הפונקציות בנתוני Places Insights.
דוגמה להצגה חזותית של תוצאות פונקציה מופיעה במאמר הצגה חזותית של תוצאות. מידע נוסף ודוגמה להדמיה של תוצאות Places Insights זמינים במאמר בנושא הדמיה של תוצאות שאילתות.
מגבלות ודרישות
לפונקציות ספירת המקומות יש את המגבלות והדרישות הבאות:
- יש תמיכה רק בתובנות לגבי
COUNT. - נדרש אזור חיפוש מינימלי של 40.0 מטר על 40.0 מטר (1,600 מ"ר).
- מגבלת הגודל של קלט הפרמטרים: אובייקט ה-JSON שמועבר כפרמטר לפונקציות מוגבל ל-1MB. ההשפעה של המגבלה הזו תלויה בגרסת הפונקציה:
- בפונקציות V2 (
PLACES_COUNT_V2,PLACES_COUNT_PER_TYPE_V2), המגבלה הזו חלה רק על אובייקט ה-JSON של המסננים. מכיוון שהמיקומים הגיאוגרפיים מסופקים בנפרד באמצעות פרמטר של טבלה, הפונקציות האלה יכולות להתרחב למספר גדול בהרבה של מיקומים גיאוגרפיים להזנה בלי להגיע למגבלת הגודל של JSON.- במקרה של
PLACES_COUNT_PER_H3,PLACES_COUNT,PLACES_COUNT_PER_TYPEו-PLACES_COUNT_PER_GEO, המגבלה הזו חלה על אובייקט ה-JSON כולו, כולל כל ההגדרות הגיאוגרפיות. יכול להיות שההגדרה הזו תגביל את מספר האזורים הגיאוגרפיים שאפשר לעבד בקריאה אחת.
- במקרה של
- אין תמיכה בסינון לפי מזהה מקום, אפשרויות טעינה של רכב חשמלי או רכיב כתובת.
- אפשר לגשת לפונקציות של ספירת המקומות רק עבור הערים והמדינות שאליהן נרשמתם. פרטים נוספים על גישה למערכי נתונים זמינים במאמר הגדרת Places Insights.
- פרמטרים של מסננים (לדוגמה,
geographyאוtypes) הם תלויי-רישיות וחייבים להיות זהים לשמות הפרמטרים, אחרת השאילתה תיכשל.
פירוט פונקציות ספירת מקומות ב-BigQuery
כל הערים בקבוצת הנתונים לדוגמה והמדינות בקבוצת הנתונים המלאה תומכות בפונקציות של ספירת מקומות.
יש לכם גישה לפונקציות של ספירת מקומות שמתאימות לקבוצות הנתונים של הערים והמדינות שאליהן נרשמתם. במאמר הגדרת תובנות לגבי מקומות מוסבר איך מקבלים גישה למערך הנתונים.
בטבלאות האלה מפורטות הערים והמדינות הזמינות, ושמות הטבלאות התואמים להן.
נתונים שנדגמו
| עיר, מדינה | שמות הטבלאות |
|---|---|
| בואנוס איירס, ארגנטינה | places_insights___ar___sample.FUNCTION_NAME |
| סידני, אוסטרליה | places_insights___au___sample.FUNCTION_NAME |
| באד גאסטיין, אוסטריה | places_insights___at___sample.FUNCTION_NAME |
| Riffa, Bahrain | places_insights___bh___sample.FUNCTION_NAME |
| בריסל, בלגיה | places_insights___be___sample.FUNCTION_NAME |
| סאו פאולו, ברזיל | places_insights___br___sample.FUNCTION_NAME |
| פלבדיב, בולגריה | places_insights___bg___sample.FUNCTION_NAME |
| טורונטו, קנדה | places_insights___ca___sample.FUNCTION_NAME |
| סנטיאגו, צ'ילה | places_insights___cl___sample.FUNCTION_NAME |
| מדיין, קולומביה | places_insights___co___sample.FUNCTION_NAME |
| ברנו, צ'כיה | places_insights___cz___sample.FUNCTION_NAME |
| קופנהגן, דנמרק | places_insights___dk___sample.FUNCTION_NAME |
| קהיר, מצרים | places_insights___eg___sample.FUNCTION_NAME |
| הלסינקי, פינלנד | places_insights___fi___sample.FUNCTION_NAME |
| פריז, צרפת | places_insights___fr___sample.FUNCTION_NAME |
| ברלין, גרמניה | places_insights___de___sample.FUNCTION_NAME |
| אתונה, יוון | places_insights___gr___sample.FUNCTION_NAME |
| הונג קונג, הונג קונג | places_insights___hk___sample.FUNCTION_NAME |
| דברצן, הונגריה | places_insights___hu___sample.FUNCTION_NAME |
| מומבאי, הודו | places_insights___in___sample.FUNCTION_NAME |
| ג'קרטה, אינדונזיה | places_insights___id___sample.FUNCTION_NAME |
| קורק, אירלנד | places_insights___ie___sample.FUNCTION_NAME |
| תל אביב-יפו, ישראל | places_insights___il___sample.FUNCTION_NAME |
| רומא, איטליה | places_insights___it___sample.FUNCTION_NAME |
| טוקיו, יפן | places_insights___jp___sample.FUNCTION_NAME |
| בוסאן, דרום קוריאה | places_insights___kr___sample.FUNCTION_NAME |
| קואלה לומפור, מלזיה | places_insights___my___sample.FUNCTION_NAME |
| מקסיקו סיטי, מקסיקו | places_insights___mx___sample.FUNCTION_NAME |
| אמסטרדם, הולנד | places_insights___nl___sample.FUNCTION_NAME |
| ולינגטון, ניו זילנד | places_insights___nz___sample.FUNCTION_NAME |
| אוסלו, נורווגיה | places_insights___no___sample.FUNCTION_NAME |
| ארקיפה, פרו | places_insights___pe___sample.FUNCTION_NAME |
| מנילה, הפיליפינים | places_insights___ph___sample.FUNCTION_NAME |
| ורשה, פולין | places_insights___pl___sample.FUNCTION_NAME |
| ליסבון, פורטוגל | places_insights___pt___sample.FUNCTION_NAME |
| לוסייל, קטאר | places_insights___qa___sample.FUNCTION_NAME |
| בוקרשט, רומניה | places_insights___ro___sample.FUNCTION_NAME |
| ג'דה, ערב הסעודית | places_insights___sa___sample.FUNCTION_NAME |
| סינגפור, סינגפור | places_insights___sg___sample.FUNCTION_NAME |
| יוהנסבורג, דרום אפריקה | places_insights___za___sample.FUNCTION_NAME |
| מדריד, ספרד | places_insights___es___sample.FUNCTION_NAME |
| שטוקוהולם, שוודיה | places_insights___se___sample.FUNCTION_NAME |
| ציריך, שווייץ | places_insights___ch___sample.FUNCTION_NAME |
| טאיפיי, טייוואן | places_insights___tw___sample.FUNCTION_NAME |
| צ'יאנג מאי, תאילנד | places_insights___th___sample.FUNCTION_NAME |
| אנקרה, טורקיה | places_insights___tr___sample.FUNCTION_NAME |
| שארג'ה, איחוד האמירויות הערביות | places_insights___ae___sample.FUNCTION_NAME |
| לונדון, בריטניה | places_insights___gb___sample.FUNCTION_NAME |
| ניו יורק סיטי, ארצות הברית | places_insights___us___sample.FUNCTION_NAME |
| האנוי, וייטנאם | places_insights___vn___sample.FUNCTION_NAME |
נתונים מלאים
| מדינה | שמות הטבלאות |
|---|---|
| ארגנטינה | places_insights___ar.FUNCTION_NAME |
| אוסטרליה | places_insights___au.FUNCTION_NAME |
| אוסטריה | places_insights___at.FUNCTION_NAME |
| בחריין | places_insights___bh.FUNCTION_NAME |
| בלגיה | places_insights___be.FUNCTION_NAME |
| ברזיל | places_insights___br.FUNCTION_NAME |
| בולגריה | places_insights___bg.FUNCTION_NAME |
| קנדה | places_insights___ca.FUNCTION_NAME |
| צ'ילה | places_insights___cl.FUNCTION_NAME |
| קולומביה | places_insights___co.FUNCTION_NAME |
| צ'כיה | places_insights___cz.FUNCTION_NAME |
| דנמרק | places_insights___dk.FUNCTION_NAME |
| מצרים | places_insights___eg.FUNCTION_NAME |
| פינלנד | places_insights___fi.FUNCTION_NAME |
| צרפת | places_insights___fr.FUNCTION_NAME |
| גרמניה | places_insights___de.FUNCTION_NAME |
| יוון | places_insights___gr.FUNCTION_NAME |
| הונג קונג | places_insights___hk.FUNCTION_NAME |
| הונגריה | places_insights___hu.FUNCTION_NAME |
| הודו | places_insights___in.FUNCTION_NAME |
| אינדונזיה | places_insights___id.FUNCTION_NAME |
| אירלנד | places_insights___ie.FUNCTION_NAME |
| ישראל | places_insights___il.FUNCTION_NAME |
| איטליה | places_insights___it.FUNCTION_NAME |
| יפן | places_insights___jp.FUNCTION_NAME |
| מלזיה | places_insights___my.FUNCTION_NAME |
| מקסיקו | places_insights___mx.FUNCTION_NAME |
| הולנד | places_insights___nl.FUNCTION_NAME |
| ניו זילנד | places_insights___nz.FUNCTION_NAME |
| נורווגיה | places_insights___no.FUNCTION_NAME |
| פרו | places_insights___pe.FUNCTION_NAME |
| הפיליפינים | places_insights___ph.FUNCTION_NAME |
| פולין | places_insights___pl.FUNCTION_NAME |
| פורטוגל | places_insights___pt.FUNCTION_NAME |
| קטאר | places_insights___qa.FUNCTION_NAME |
| רומניה | places_insights___ro.FUNCTION_NAME |
| ערב הסעודית | places_insights___sa.FUNCTION_NAME |
| סינגפור | places_insights___sg.FUNCTION_NAME |
| דרום אפריקה | places_insights___za.FUNCTION_NAME |
| דרום קוריאה | places_insights___kr.FUNCTION_NAME |
| ספרד | places_insights___es.FUNCTION_NAME |
| שוודיה | places_insights___se.FUNCTION_NAME |
| שווייץ | places_insights___ch.FUNCTION_NAME |
| טייוואן | places_insights___tw.FUNCTION_NAME |
| תאילנד | places_insights___th.FUNCTION_NAME |
| טורקיה | places_insights___tr.FUNCTION_NAME |
| איחוד האמירויות הערביות | places_insights___ae.FUNCTION_NAME |
| בריטניה | places_insights___gb.FUNCTION_NAME |
| ארצות הברית | places_insights___us.FUNCTION_NAME |
| וייטנאם | places_insights___vn.FUNCTION_NAME |