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