تابع PLACES_COUNT_PER_TYPE_V2

تابع PLACES_COUNT_PER_TYPE_V2 یک جدول BigQuery حاوی تعداد مکان‌ها و شناسه‌های مکان نمونه، تفکیک‌شده بر اساس نوع مکان، برای چندین جغرافیای ورودی را برمی‌گرداند. این تابع با پذیرش پارامتر جدول ورودی از جغرافیاها، برای پردازش دسته‌ای کارآمد طراحی شده است. شما جغرافیاها را از طریق یک جدول ورودی ارائه می‌دهید و انواع مکان‌ها را به عنوان یک آرایه مشخص می‌کنید.

نحو

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

پارامترها

  • PROJECT_NAME : نام پروژه گوگل کلود شما.
  • LINKED_DATASET_NAME : نام مجموعه داده BigQuery که شامل توابع Places Insights است (مثلاً places_insights___us ).
  • input_geographies : یک جدول BigQuery شامل جغرافیاهایی که باید تجزیه و تحلیل شوند. این جدول باید شامل ستون‌های زیر باشد:
    • geo_id ( STRING ): یک شناسه منحصر به فرد برای هر منطقه جغرافیایی.
    • geo ( GEOGRAPHY ): شیء BigQuery GEOGRAPHY که نشان‌دهنده منطقه است. این می‌تواند یک نقطه، چندضلعی یا نوع جغرافیایی دیگری باشد.
  • target_types ( ARRAY<STRING> ): آرایه‌ای از رشته‌های نوع مکان که می‌خواهید تعداد آنها را دریافت کنید. مکان‌ها در صورتی شمارش می‌شوند که با هر یک از انواع ذکر شده در آرایه types خود مطابقت داشته باشند، نه فقط با primary_type .
  • filters ( JSON ): یک شیء JSON حاوی جفت‌های کلید-مقدار برای فیلتر کردن بیشتر مکان‌ها. به پارامترهای فیلتر مراجعه کنید.

طرح جدول خروجی

تابع PLACES_COUNT_PER_TYPE_V2 جدولی با ستون‌های زیر برمی‌گرداند:

نام ستون نوع داده توضیحات
geo_id رشته شناسه منحصر به فرد برای جغرافیای ورودی، از جدول input_geographies .
input_geography جغرافیا شیء اصلی GEOGRAPHY از جدول input_geographies .
place_type رشته نوع مکان از آرایه target_types که این ردیف نشان می‌دهد.
place_count عدد صحیح تعداد مکان‌هایی که با place_type و سایر فیلترها در داخل یا نزدیکی منطقه جغرافیایی مطابقت دارند.
sample_place_ids آرایه آرایه‌ای شامل حداکثر ۲۵۰ شناسه مکان که با معیارهای این نوع و جغرافیا مطابقت دارند.

خروجی شامل یک ردیف برای هر ترکیبی از geo_id و place_type مشخص شده در آرایه target_types خواهد بود، حتی اگر تعداد آنها صفر باشد.

چگونه کار می‌کند؟

این تابع هر جغرافیای ارائه شده در جدول input_geographies پردازش می‌کند. برای هر جغرافیا، مکان‌هایی را که با هر یک از انواع ذکر شده در آرایه target_types مطابقت دارند و همچنین تمام شرایط موجود در شیء JSON filters برآورده می‌کنند، شمارش می‌کند. نتایج بر اساس هر geo_id و هر نوع در target_types جمع آوری و تجزیه می‌شوند.

مثال: انواع مختلف رستوران‌ها را در شهرستان‌های نیویورک بشمارید

این مثال جدولی از تعداد انواع «رستوران»، «کافه» و «بار» را در سه شهرستان شهر نیویورک ایجاد می‌کند.

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']
  )
);

نتیجه، جدولی با ۹ ردیف (۳ شهرستان * ۳ نوع) خواهد بود. هر ردیف تعداد مکان‌های «رستوران»، «کافه» یا «بار» را در هر شهرستان نشان می‌دهد. همچنین می‌توانید در صورت اضافه کردن شناسه‌های مکان نمونه به دستور 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 و قابلیت‌های پردازش موازی در تمام مناطق جغرافیایی ارائه شده به طور همزمان بهره ببرد. این امر منجر به بهبود قابل توجه عملکرد و مقیاس‌پذیری بهتر هنگام کار با تعداد زیادی از مناطق جغرافیایی می‌شود.
  • تعداد صفر شامل می‌شود: ردیف‌هایی با تعداد صفر را برای انواعی که در یک ناحیه خاص در دسته یافت نمی‌شوند، برمی‌گرداند و یک مجموعه نتیجه کامل را برای همه ترکیبات نوع-جغرافیایی تضمین می‌کند.