סקירה כללית

במאמר הזה מוסבר איך ליצור דוחות דינמיים של נתונים גיאוגרפיים באמצעות Places Insights ו-Data Studio. כדי להפיק תועלת מנתוני המיקום, צריך לאפשר לבעלי עניין שאינם טכניים לענות על השאלות שלהם בעצמם. במדריך הזה נסביר איך להפוך דוחות סטטיים לכלים אינטראקטיביים לניתוח שוק, בסגנון מפת חום, בלי שתצטרכו לכתוב SQL לכל בקשה. הפעלת גישה לנתוני מיקום מורכבים, כדי לגשר על הפער בין הנדסת נתונים לבין בינה עסקית.
השימוש בדפוס הארכיטקטוני הזה מאפשר ליהנות מכמה יתרונות מרכזיים:
- המחשה חזותית של נתונים: הנתונים של Places Insights הופכים למפות ולתרשימים אינטראקטיביים שמציגים באופן מיידי את הצפיפות המרחבית ואת המגמות.
- ניתוח פשוט ללא SQL: מאפשר לחברי צוות, כמו אנליסטים של שוק או מתכנני נדל"ן, לסנן נתונים באופן דינמי באמצעות פרמטרים מוגדרים מראש (למשל, שינוי של 'עיר' או 'שעה ביום' באמצעות תפריטים נפתחים). הם יכולים לבדוק את הנתונים בלי לכתוב שורת SQL אחת.
- שיתוף חלק: התכונות הרגילות של שיתוף ב-Data Studio מאפשרות לכם להפיץ את התובנות האינטראקטיביות האלה בצורה מאובטחת.
תהליך העבודה של הפתרון
תהליך העבודה הבא יוצר ארכיטקטורת דיווח יעילה. היא עוברת מבסיס נתונים סטטי לאפליקציה דינמית לחלוטין, וכך מוודאת שהנתונים נכונים לפני שהיא מוסיפה מורכבות.
דרישות מוקדמות
לפני שמתחילים, פועלים לפי ההוראות האלה כדי להגדיר את התובנות לגבי מקומות. תצטרכו גישה ל-Data Studio, שהוא כלי ללא עלות.
שלב 1: יוצרים בסיס גיאוגרפי סטטי
לפני שמוסיפים אינטראקטיביות, צריך ליצור שאילתת בסיס ולוודא שהיא מוצגת בצורה נכונה ב-Data Studio. אפשר להשתמש ב-Places Insights וביכולות הגיאו-מרחביות של BigQuery כדי לצבור נתונים ברשתות משושים באמצעות מערכת האינדקס H3. הפעולה הזו תיצור פלט של שאילתה שאפשר להשתמש בו עם סוג התרשים 'מפה עם מילוי' ב-Data Studio לצורך ויזואליזציה.
1.1 קישור נתונים
כדי ליצור את החיבור הראשוני, משתמשים בשאילתה הסטטית הבאה. הוא מטרגט מיקום קבוע (לונדון) וקטגוריה (מסעדות) כדי לאמת את צינור הנתונים.
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
-- Note: Change 'gb' to your target country code (e.g., 'us')
`places_insights___gb.places`
WHERE
'London' IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
הערה לגבי צבירה מרחבית
השאילתה הזו משתמשת בפונקציה מתוך CARTO Analytics Toolbox (carto-os) שזמין לציבור ב-Google Cloud BigQuery. הפונקציה H3_FROMGEOGPOINT ממירה נקודות מיקום ספציפיות לתאי H3, מערכת שמחלקת את העולם לתאים משושים ברשת.
אנחנו משתמשים בהמרה הזו כי כדי להציג צבעים במפה עם מילוי ב-Data Studio צריך מצולעים (צורות). המרת הנקודות לצורות משושה מאפשרת לנו להמחיש את צפיפות העסקים באזור מסוים, במקום לשרטט אלפי נקודות חופפות.
הערה לגבי הסף לצבירת נתונים
כל השאילתות של Places Insights מחייבות את פסוקית WITH AGGREGATION_THRESHOLD.
ההגנה על הפרטיות מבטיחה שהנתונים יוחזרו רק אם הספירה המצטברת היא 5 או יותר.
בהקשר של התרשים הזה, אם תא ברשת H3 מכיל פחות מ-5 מסעדות, התא הזה מושמט לחלוטין מסט התוצאות ויופיע ריק במפה.
כדי להטמיע את זה ב-Data Studio:
- יוצרים דוח ריק חדש.
- בוחרים באפשרות BigQuery כמחבר מקור הנתונים החיצוני.
- בתפריט הימני, בוחרים באפשרות שאילתה בהתאמה אישית ובוחרים את מזהה הפרויקט לחיוב.
- מדביקים את שאילתת הבסיס הסטטית שלמעלה בעורך.
- מבטלים את הסימון של הפרמטרים SQL מדור קודם, טווח תאריכים ו-כתובת אימייל של הצופה.
- לוחצים על הוספה.
1.2 הגדרת המחשה גיאו-מרחבית
אחרי שמקשרים את הנתונים, צריך להגדיר את Data Studio כך שיזהה את נתוני הגבול של H3 בצורה נכונה:
- בתפריט הוספת תרשים, מוסיפים את הוויזואליזציה מפה עם צבעים לאזור העריכה של הדוח.
- מוודאים שהשדה
h3_geo, שמכיל את גיאומטריית הפוליגון, מוגדר לסוג הנתונים גיאו-מרחבי.- לוחצים על סמל עריכת מקור הנתונים (עיפרון) לצד שם החיבור.
- אם
h3_geoמוגדר לטקסט (ABC), משתמשים בתפריט הנפתח כדי לבחור באפשרות גיאוגרפי > גיאו-מרחבי. - לוחצים על סיום.
- ממפים את השדה
h3_indexאל מיקום (שמשמש כמזהה הייחודי). - ממפים את השדה
h3_geoאל Geospatial Field (שפועל כגיאומטריית הפוליגון). - ממפים את השדה
restaurant_countאל מדד הצבע.
המערכת תיצור מפה של צפיפות המסעדות לפי תא H3. הצבע הכחול הכהה יותר (אפשרות הצבע שמוגדרת כברירת מחדל) מציין תא עם מספר גבוה יותר של מסעדות.

שלב 2: הטמעה של פרמטרים דינמיים
כדי להפוך את הדוח לאינטראקטיבי, נוסיף לו אמצעי בקרה שיאפשרו למשתמש לבחור מבין האפשרויות הבאות:
- יישוב: מאפשר לבחור את העיר שבה הדוח יתמקד.
- יום בשבוע: מסנן מקומות לפי היום שבו הם פתוחים, על סמך רשומת
regular_opening_hoursבסכימה. - שעה ביום: מסנן מקומות לפי שעות הפעילות שלהם על ידי השוואה לשדות
start_timeו-end_time.
כדי לעשות את זה, תעבירו פרמטרים שהמשתמש בחר ישירות לשאילתת Places Insights שעברה שינוי בזמן הריצה. בכלי לעריכת מקורות נתונים ב-Data Studio, צריך להגדיר את הפרמטרים האלה במפורש כמשתנים מוקלדים.
ב-Data Studio, בוחרים בתפריט Resource ואז לוחצים על Manage added data sources. בחלונית שמופיעה, בוחרים באפשרות EDIT לצד מקור הנתונים של BigQuery Custom SQL שהוספנו קודם.
בחלון 'עריכת חיבור', לוחצים על הוספת פרמטר. אנחנו נוסיף שלושה פרמטרים עם הערכים הבאים.
| שם פרמטר | סוג הנתונים | ערכים מותרים | רשימת ערכים (חייבת להיות זהה לערכים במסד הנתונים) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
p_locality |
טקסט | רשימת ערכים |
|
||||||||||||||||
p_day_of_week |
טקסט | רשימת ערכים |
|
||||||||||||||||
p_hour_of_day |
טקסט | רשימת ערכים |
|
הגדרה לדוגמה של הפרמטר p_hour_of_day.

לגבי הפרמטר p_hour_of_day, חשוב לשים לב לעמודה Value.
מכיוון שבשאילתת ה-SQL נעשה שימוש ב-CAST(@p_hour_of_day AS TIME), הערכים שמועברים מ-Data Studio צריכים להיות בפורמט HH:MM:SS (שעון 24 שעות).
אחרי שמגדירים ושומרים את שלושת הפרמטרים, משנים את החיבור של BigQuery Custom SQL כדי להפנות למשתנים האלה באמצעות התחביר @.
כדי לעשות את זה, לוחצים על 'עריכת החיבור' ומדביקים את השאילתה שמופיעה בהמשך אחרי שערכנו אותה:
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
`places_insights___gb.places`
WHERE
-- Dynamic locality filter based on parameter
@p_locality IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
AND business_status = 'OPERATIONAL'
AND EXISTS (
SELECT 1
FROM UNNEST(
CASE @p_day_of_week
WHEN 'monday' THEN regular_opening_hours.monday
WHEN 'tuesday' THEN regular_opening_hours.tuesday
WHEN 'wednesday' THEN regular_opening_hours.wednesday
WHEN 'thursday' THEN regular_opening_hours.thursday
WHEN 'friday' THEN regular_opening_hours.friday
WHEN 'saturday' THEN regular_opening_hours.saturday
WHEN 'sunday' THEN regular_opening_hours.sunday
END
) AS hours
WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
לוחצים על 'חיבור מחדש' כדי לשמור את העריכה. בשורה של השאילתה ששיניתם, שימו לב למשתנים החדשים, כמו @p_hour_of_day, שמתאימים לשמות הפרמטרים שהגדרנו.
כדי שהפרמטרים האלה יוצגו למשתמש הקצה, צריך לחזור לאזור העריכה של הדוח:
- מוסיפים לדוח שלושה פקדים של תפריט נפתח.
- בכל אמצעי בקרה, מגדירים את שדה הבקרה כך שיתאים לפרמטרים החדשים שיצרתם:
- אמצעי בקרה 1:
p_locality - אמצעי בקרה 2:
p_day_of_week - שליטה 3:
p_hour_of_day
- אמצעי בקרה 1:
הדוח הסופי אמור להיראות כך. שינוי ערך באחד מאמצעי הבקרה של התפריט הנפתח יגרום ל-Data Studio לאחזר את הנתונים המבוקשים מ-Places Insights לפני הצגתם במפה.

שלב 3: שיתוף התוצאות
משתמשים בכלי השיתוף שמוטמע ב-Data Studio כדי לשתף את הדוח. הפעולה הזו תאפשר לצופים לעדכן באופן דינמי את ההמחשה על סמך הפרמטרים שהם בוחרים מתוך התפריטים הנפתחים.
סיכום
הדפוס הזה יוצר כלי דיווח אינטראקטיבי וניתן להרחבה שממנף את יכולת החישוב של BigQuery כדי להציג נתונים מצטברים של 'תובנות לגבי מקומות' ב-Data Studio. הארכיטקטורה הזו מאפשרת להימנע מהבעיות שעלולות לקרות כשמנסים להציג נתונים חזותיים של מערכי נתונים גדולים וגולמיים, ומספקת למשתמשי הקצה את הגמישות לחקור נתונים במאפיינים שונים, כמו זמן, מיקום וסוג העסק, כמעט בזמן אמת. זהו כלי יעיל שמאפשר לבעלי עניין לא טכניים לבחון את הנתונים.
השלבים הבאים
כדי לראות וריאציות אחרות של דוחות דינמיים, אפשר להגדיר פרמטרים לחלקים שונים בסכימה של Places Insights:
- ניתוח מתחרים דינמי: יוצרים פרמטר לשמות של
brandכדי לאפשר למשתמשים להחליף באופן מיידי את מפת החום בין מתחרים שונים, וכך לראות את מידת החדירה היחסית שלהם לשוק. מידע על זמינות נתוני המותג מופיע במאמר מידע על נתונים של תובנות לגבי מקומות. - בחירת אתרים אינטראקטיבית: מוסיפים פרמטרים ל-
price_level(למשל, 'בינוני' לעומת 'יקר') ול-ratingכדי לאפשר לצוותי נדל"ן לסנן באופן דינמי אזורים שתואמים לפרופילים דמוגרפיים ספציפיים. - אזורי השפעה בהתאמה אישית: במקום לסנן לפי שם העיר, אפשר לאפשר למשתמשים להגדיר אזורי מחקר בהתאמה אישית.
- על בסיס רדיוס: יוצרים שלושה פרמטרים מספריים: p_latitude, p_longitude ו-p_radius_meters. אפשר לקבל קואורדינטות מממשקי API של Google Maps Platform, כולל Geocoding API. בשילוב עם הפונקציה ST_DWITHIN בשאילתה:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- על בסיס מצולעים: עבור צורות מותאמות אישית מורכבות (כמו אזורי מכירות), המשתמשים לא יכולים להזין בקלות טקסט גיאומטרי. במקום זאת, יוצרים טבלת בדיקה ב-BigQuery שמכילה את הגיאומטריות של הצורות ושם ידידותי (למשל, 'אזור א'). יוצרים פרמטר טקסט
p_zone_nameב-Data Studio כדי לאפשר למשתמשים לבחור את האזור, ומשתמשים בשאילתת משנה כדי לאחזר את הגיאומטריה של הפונקציהST_CONTAINS.
- על בסיס רדיוס: יוצרים שלושה פרמטרים מספריים: p_latitude, p_longitude ו-p_radius_meters. אפשר לקבל קואורדינטות מממשקי API של Google Maps Platform, כולל Geocoding API. בשילוב עם הפונקציה ST_DWITHIN בשאילתה:
תורמים
- David Szajngarten | Developer Relations Engineer
- Henrik Valve | DevX Engineer