הפונקציה PLACES_COUNT_V2

הפונקציה PLACES_COUNT_V2 מחזירה טבלה ב-BigQuery שמכילה ספירות של מקומות ומזהים לדוגמה של מקומות עבור כמה אזורים גיאוגרפיים שמוגדרים כקלט, על סמך מסננים שצוינו. הפונקציה הזו מיועדת לעיבוד ברצף (batch processing) יעיל של נתונים. היא מקבלת פרמטר של טבלת קלט של אזורים גיאוגרפיים, וכך מאפשרת לכם לנתח אזורים רבים שמעניינים אתכם בשאילתה אחת, על ידי ציון האזורים הגיאוגרפיים דרך טבלת קלט.

תחביר

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`(
  TABLE input_geographies,
  filters
)

פרמטרים

  • PROJECT_NAME: השם של הפרויקט ב-Google Cloud.
  • LINKED_DATASET_NAME: השם של מערך הנתונים ב-BigQuery שמכיל את הפונקציות של Places Insights (למשל, places_insights___us).
  • input_geographies: טבלה ב-BigQuery שמכילה את האזורים הגיאוגרפיים לניתוח. הטבלה הזו חייבת לכלול את העמודות הבאות:
    • geo_id (STRING): מזהה ייחודי לכל אזור גיאוגרפי.
    • geo (GEOGRAPHY): אובייקט ה-GEOGRAPHY ב-BigQuery שמייצג את האזור. זה יכול להיות נקודה, פוליגון או סוג אחר של מיקום גיאוגרפי.
  • filters (JSON): אובייקט JSON שמכיל צמדי מפתח/ערך לסינון המקומות. מידע על פרמטרים של מסננים

סכימת טבלת הפלט

הפונקציה PLACES_COUNT_V2 מחזירה טבלה עם העמודות הבאות:

שם העמודה סוג הנתונים תיאור
geo_id STRING המזהה הייחודי של המיקום הגיאוגרפי של הקלט, מתוך הטבלה input_geographies.
input_geography GEOGRAPHY אובייקט ה-GEOGRAPHY המקורי מהטבלה input_geographies.
place_count INTEGER המספר הכולל של מקומות שתואמים למסננים.
sample_place_ids ARRAY<STRING> מערך של עד 250 מזהי מקומות שתואמים לקריטריונים.

איך זה עובד

הפונקציה מעבדת כל שורה בטבלה input_geographies. לכל אובייקט, הפונקציה סופרת את מספר המקומות שנמצאים בתוך האזור הגיאוגרפי (או בתוך geography_radius אם geo הוא נקודה והרדיוס מוגדר ב-filters). הספירה כוללת רק את המקומות שתואמים לכל התנאים שמוגדרים באובייקט ה-JSON‏ filters.geo

דוגמה: חישוב מספר המסעדות בשלושה מחוזות בעיר ניו יורק

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

בדוגמה הזו נעשה שימוש בנתונים של לשכת מפקד האוכלוסין של ארצות הברית, שהם מערך נתונים ציבורי ב-BigQuery, כדי לקבל את הגבולות של שלושה מחוזות בעיר ניו יורק: Queens,‏ Kings ו-New York. הגבולות של כל מחוז מופיעים בעמודה county_geom.

קודם יוצרים טבלה זמנית new_york_counties כדי לאחסן את geo_id ואת GEOGRAPHY הפשוט לכל מחוז.

SELECT *
FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_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")
  ),
  JSON_OBJECT(
      'types', ["restaurant"],
      'business_status', ['OPERATIONAL']
  )
);

בטבלת התגובה יהיו שלוש שורות, אחת לכל מחוז, עם השדות geo_id, input_geography, place_count ו-sample_place_ids של מסעדות פעילות.

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

היתרונות של שימוש ב-PLACES_COUNT_V2

ל-PLACES_COUNT_V2 יש יתרונות משמעותיים בהשוואה ל-PLACES_COUNT ול-PLACES_COUNT_PER_GEO:

  • עיבוד באצווה: אפשר לנתח ביעילות אלפי מיקומים גיאוגרפיים מותאמים אישית בשאילתה אחת על ידי הזנת כמה מיקומים גיאוגרפיים בטבלה.
  • ביצועים: נעשה שימוש בצירופים גיאו-מרחביים מותאמים של BigQuery, שמציעים יתרונות משמעותיים במהירות עבור מערכי נתונים גדולים.
  • יכולת הרחבה: הממשק הזה מיועד לטיפול במספר גדול של מיקומי קלט גיאוגרפיים בלי המגבלות של גודל פרמטר JSON יחיד.
  • כולל ספירות אפס: PLACES_COUNT_V2 מחזירה שורה לכל geo_id שמופיע בטבלת הקלט. אם אין מקומות שעומדים בקריטריונים של מיקום גיאוגרפי מסוים, הערך של place_count יהיה 0. כך תוכלו לראות איפה אין מקומות, כי תקבלו תוצאה לכל אזור קלט.