تابع PLACES_COUNT_V2

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

نحو

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

پارامترها

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

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

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

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

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

این تابع هر سطر را در جدول input_geographies پردازش می‌کند. برای هر شیء geo ، تعداد مکان‌هایی را که در محدوده geo قرار می‌گیرند (یا در محدوده geography_radius اگر geo یک نقطه باشد و شعاع در filters مشخص شده باشد) می‌شمارد. این شمارش فقط شامل مکان‌هایی می‌شود که با تمام شرایط تعریف شده در شیء JSON filters مطابقت دارند.

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

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

این مثال از مجموعه داده عمومی BigQuery اداره سرشماری ایالات متحده برای بدست آوردن مرزهای سه شهرستان در شهر نیویورک استفاده می‌کند: "کوئینز"، "کینگز" و "نیویورک". مرزهای هر شهرستان در ستون 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 با ۰ خواهد بود. این تضمین می‌کند که برای هر منطقه ورودی نتیجه‌ای دارید، بنابراین می‌توانید ببینید که مکان‌ها در کجا وجود ندارند.