הפונקציה PLACES_COUNT_PER_TYPE_V2 מחזירה טבלה ב-BigQuery שמכילה ספירות של מקומות ומזהים לדוגמה של מקומות, עם פירוט לפי סוג המקום, עבור כמה מיקומים גיאוגרפיים שמוזנים כקלט. הפונקציה הזו מיועדת ל**עיבוד ברצף (batch processing)** יעיל על ידי קבלת פרמטר של טבלת קלט של מיקומים גיאוגרפיים. אתם מספקים את המיקומים הגיאוגרפיים באמצעות טבלת קלט ומציינים את סוגי המקומות כמערך.
תחביר
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, filters )
פרמטרים
PROJECT_NAME: השם של הפרויקט ב-Google Cloud.-
LINKED_DATASET_NAME: השם של מערך הנתונים ב-BigQuery שמכיל את הפונקציות של Places Insights (למשל,places_insights___us). -
input_geographies: טבלה ב-BigQuery שמכילה את האזורים הגיאוגרפיים לניתוח. הטבלה הזו חייבת לכלול את העמודות הבאות: -
target_types(ARRAY<STRING>): מערך של מחרוזות של סוגי מקומות שרוצים לקבל את המספרים שלהם. מקומות ייספרו אם הם תואמים לכל אחד מהסוגים שמופיעים במערךtypesשלהם, ולא רק לסוגprimary_type. -
filters(JSON): אובייקט JSON שמכיל צמדי מפתח-ערך לסינון נוסף של המקומות. מידע על פרמטרים של מסננים
סכימת טבלת הפלט
הפונקציה PLACES_COUNT_PER_TYPE_V2 מחזירה טבלה עם העמודות הבאות:
| שם העמודה | סוג הנתונים | תיאור |
|---|---|---|
geo_id |
STRING | המזהה הייחודי של המיקום הגיאוגרפי של הקלט, מתוך הטבלה input_geographies. |
input_geography |
GEOGRAPHY | אובייקט ה-GEOGRAPHY המקורי מהטבלה input_geographies. |
place_type |
STRING | סוג המקום ממערך target_types שהשורה הזו מייצגת. |
place_count |
INTEGER | מספר המקומות שתואמים לplace_type ולמסננים אחרים בתוך האזור הגיאוגרפי או בקרבתו. |
sample_place_ids |
ARRAY<STRING> | מערך של עד 250 מזהי מקומות שתואמים לקריטריונים של הסוג והמיקום הגיאוגרפי הזה. |
הפלט יכיל שורה לכל שילוב של geo_id ו-place_type
שצוין במערך target_types, גם אם הספירה היא אפס.
איך זה עובד
הפונקציה מעבדת כל מיקום גיאוגרפי שמופיע בטבלה input_geographies.
לכל אזור גיאוגרפי, המערכת סופרת את המקומות שתואמים לכל אחד מהסוגים שמופיעים במערך target_types וגם עומדים בכל התנאים באובייקט ה-JSON filters. התוצאות נצברות ומפורטות לפי כל geo_id ולפי כל סוג ב-target_types.
דוגמה: ספירת סוגים שונים של מסעדות במחוזות של ניו יורק
בדוגמה הזו נוצר טבלה של ספירות עבור סוגי המקומות restaurant, cafe ו-bar בשלושה מחוזות בעיר ניו יורק.
SELECT geo_id, input_geography, place_type, place_count FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_V2`( ( SELECT county_name AS geo_id, ST_SIMPLIFY(county_geom, 100) AS geo FROM `bigquery-public-data.geo_us_boundaries.counties` WHERE state_fips_code = "36" -- New York State AND county_name IN ("Queens", "Kings", "New York") ), ['restaurant', 'cafe', 'bar'], -- target_types JSON_OBJECT( 'business_status', ['OPERATIONAL'] ) );
התוצאה תהיה טבלה עם 9 שורות (3 מחוזות * 3 סוגים). בכל שורה יופיע מספר המוסדות מסוג 'מסעדה', 'בית קפה' או 'בר' בכל מחוז. אפשר גם לכלול מזהים לדוגמה של מקומות אם מוסיפים אותם להצהרת SELECT.

היתרונות של השימוש ב-PLACES_COUNT_PER_TYPE_V2
PLACES_COUNT_PER_TYPE_V2 מציעה כמה יתרונות מרכזיים, במיוחד בהשוואה לפונקציה הישנה יותר PLACES_COUNT_PER_TYPE:
- עיבוד באצווה של מיקומים גיאוגרפיים: בניגוד ל-
PLACES_COUNT_PER_TYPEשמעבד מיקום גיאוגרפי אחד בכל פעם,PLACES_COUNT_PER_TYPE_V2מקבלTABLEשל מיקומים גיאוגרפיים כקלט. כך תוכלו לנתח ולקבל ספירות ספציפיות לסוגים שונים של נתונים (נקודות, מצולעים) באזורים גיאוגרפיים רבים בשאילתה אחת, במקום לבצע כמה קריאות לפונקציה. - ביצועים ויכולת הרחבה משופרים: על ידי קבלת קלט של טבלה,
PLACES_COUNT_PER_TYPE_V2יכולה לנצל את ההצטרפויות הגיאוגרפיות המרחביות הממוטבות של BigQuery ואת יכולות העיבוד המקבילי בכל האזורים הגיאוגרפיים שסופקו בו-זמנית. כך אפשר לשפר משמעותית את הביצועים ולשפר את יכולת ההתאמה כשמטפלים במספר גדול של מיקומים גיאוגרפיים. - Zero Counts Included: מחזירה שורות עם ספירות של 0 לסוגים שלא נמצאו באזור ספציפי באצווה, כדי להבטיח קבוצת תוצאות מלאה לכל השילובים של סוג ומיקום גיאוגרפי.