توابع شمارش مکان، کوئریهای SQL از پیش تعریفشدهای هستند که در BigQuery اجرا میشوند و مکمل کوئری مستقیم از مجموعه دادهها هستند. تفاوت اصلی بین کوئری مستقیم از دادهها و استفاده از یک تابع این است که توابع حداقل آستانه شمارش را اعمال نمیکنند، بلکه در عوض حداقل ناحیه جستجو را اعمال میکنند:
- پرسوجوهای مجموعه دادههای مکانی فقط میتوانند تعداد ۵ و بالاتر را برگردانند، اما هیچ محدودیتی در اندازه ناحیه جستجو اعمال نمیکنند.
- توابع شمارش مکان میتوانند هر تعداد مکانی، از جمله عدد ۰، را برگردانند، اما حداقل مساحت جستجو را ۴۰.۰ متر در ۴۰.۰ متر (۱۶۰۰ متر مربع ) تعیین میکنند. توابع همچنین میتوانند شناسه مکانها را برگردانند که میتوان از آنها برای جستجوی اطلاعات مربوط به مکانهای منفرد استفاده کرد.
اگر مهم است بدانید چه زمانی یک پرسوجو نتیجهای نمیدهد یا اگر نیاز به دانستن تعداد کم مکانها زیر ۵ دارید، ممکن است بخواهید از توابع شمارش مکان استفاده کنید. همچنین اگر نیاز به دریافت اطلاعات مکانهای خاص برای بررسی دقیق نتایج خود دارید، این روش مفید است.
توابع شمارش مکانها فقط تعداد مکانها را ارائه میدهند، بنابراین اگر نیاز به انجام پرسوجوهای پیچیدهتری مانند اتصال دادهها یا دریافت بینشهای اضافی مانند میانگین امتیاز گروهی از مکانها دارید، مستقیماً از مجموعه دادهها پرسوجو کنید .
توابع شمارش مکان و کشورها پشتیبانی شده
Places Insights از عملکردهای زیر پشتیبانی میکند:
-
PLACES_COUNT: یک ردیف واحد شامل تعداد مکانها را برمیگرداند. -
PLACES_COUNT_PER_TYPE: یک جدول BigQuery از تعداد مکانها بر اساس نوع مکان را برمیگرداند. -
PLACES_COUNT_PER_GEO: یک جدول BigQuery از تعداد مکانها به ازای هر منطقه جغرافیایی را برمیگرداند. -
PLACES_COUNT_PER_H3: یک جدول BigQuery از تعداد مکانها در هر سلول H3 را برمیگرداند.
همراه با شمارش مکانها، توابع PLACES_COUNT_PER_TYPE ، PLACES_COUNT_PER_GEO و PLACES_COUNT_PER_H3 نیز تا ۲۵۰ شناسه مکان را برای هر عنصر از پاسخ برمیگردانند. همه پارامترهای فیلتر را ببینید .
شناسههای مکان را میتوان با موارد زیر استفاده کرد:
نوشتن کوئریها با توابع
برای فراخوانی توابع از فرمت زیر استفاده کنید: [project name (optional)].[table name].[function name] .
اگر هنگام تنظیم Places Insights نام مجموعه داده پیوند شده را تغییر دادهاید، به جای نامهای پیشفرض جدول که در اینجا ذکر شدهاند، از نام دلخواه خود استفاده کنید. همچنین میتوانید به صورت اختیاری نام پروژه خود را نیز وارد کنید. اگر نامی وارد نشود، پرس و جو به طور پیشفرض روی پروژه فعال قرار میگیرد.
برای مثال:
PROJECT_NAME.places_insights___us.PLACES_COUNT
برای ارسال آرگومانها به تابع، از JSON_OBJECT استفاده کنید.
نتایج خود را فیلتر کنید
توابع شمارش مکان از فیلترهای زیادی برای اصلاح جستجوی شما پشتیبانی میکنند. این پارامترها (برای مثال، price_level یا types ) به حروف کوچک و بزرگ حساس هستند و باید دقیقاً با نام پارامترها مطابقت داشته باشند. برای لیست کامل گزینهها، به مرجع پارامترهای فیلتر مراجعه کنید .
در مثال بعدی، فیلترهایی را برای محدود کردن جستجو بر اساس حداقل امتیاز کاربر، سطح قیمت، وضعیت کسبوکار و اینکه آیا رستوران اجازه ورود سگ را میدهد یا خیر، اعمال میکنید:
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"], 'min_rating', 1.3, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'allows_dogs', TRUE ) ) as count;
مثال تابع شمارش مکان
مثال زیر از تابع PLACES_COUNT برای بازگرداندن تعداد رستورانهای فعال در محدوده ۱۰۰۰ متری ساختمان امپایر استیت در شهر نیویورک استفاده میکند:
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"] ) ) as count;
پاسخ شامل یک شمارش واحد است:

این مثال از تابع BigQuery ST_GEOGPOINT برای بازگرداندن مقدار GEOGRAPHY از یک نقطه و سپس ارسال آن مقدار به پارامتر geography استفاده میکند. همچنین شعاع جستجو در اطراف نقطه و نوع مکان، "restaurant" ، را برای جستجو ارسال میکند.
تعداد مکانها به ازای هر نوع، موقعیت جغرافیایی یا مثال H3
همراه با شمارش مکانها، توابع PLACES_COUNT_PER_TYPE ، PLACES_COUNT_PER_GEO و PLACES_COUNT_PER_H3 نیز تا ۲۵۰ شناسه مکان را برای مکانهای موجود در پاسخ برمیگردانند.
برای مثال، تابع PLACES_COUNT_PER_TYPE جدولی از تعداد مکانها به ازای هر نوع مکان را برمیگرداند. در پاسخ، آرایهای از شناسههای مکان برای مکانهایی که با هر نوع مطابقت دارند، گنجانده شده است. میتوانید از شناسههای مکان برگردانده شده برای جستجوی اطلاعات مربوط به هر مکان استفاده کنید.
فراخوانی تابع زیر تعدادی مکان با انواع: restaurant ، cafe و bar را برمیگرداند:
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'types', ["restaurant", "cafe", "bar"], 'business_status', ['OPERATIONAL'] ) );
این تابع یک جدول با سه ستون برمیگرداند: type ، count و sample_place_ids . ستونهای count تعداد مکانها را برای هر type نشان میدهند و ستون sample_place_ids تا ۲۵۰ شناسه مکان را برای هر type نشان میدهد.

نتایج را تجسم کنید
ابزارهای تحلیل و هوش تجاری برای کمک به شما در کشف بینش از دادههای BigQuery بسیار مهم هستند. BigQuery از چندین ابزار تجسم دادههای گوگل و شخص ثالث پشتیبانی میکند که میتوانید از آنها برای تحلیل نتایج توابع خود در دادههای Places Insights استفاده کنید.
برای مثالی از مصورسازی نتایج یک تابع، به Visualize results مراجعه کنید. برای اطلاعات بیشتر و مثالی در مورد مصورسازی نتایج Places Insights، به Visualize query results مراجعه کنید.
محدودیتها و الزامات
توابع شمارش مکان محدودیتها و الزامات زیر را دارند:
- فقط بینشهای
COUNTپشتیبانی میشوند. - حداقل مساحت جستجو ۴۰ متر در ۴۰ متر (۱۶۰۰ متر مربع ) مورد نیاز است.
- اندازه ورودی پارامتر شمارش تابع، حداکثر ۱ مگابایت است.
- از فیلتر کردن بر اساس شناسه مکان، برندها، گزینههای شارژ خودروی برقی یا مؤلفه آدرس پشتیبانی نمیکند.
- شما فقط میتوانید به توابع شمارش مکانها برای شهرها و کشورهایی که در آنها مشترک شدهاید دسترسی داشته باشید. برای دسترسی به مجموعه دادهها، به بخش «تنظیم بینش مکانها» مراجعه کنید.
- پارامترهای فیلتر (برای مثال،
geographyیاtypes) به حروف کوچک و بزرگ حساس هستند و باید دقیقاً با نام پارامترها مطابقت داشته باشند، در غیر این صورت پرس و جو با شکست مواجه خواهد شد.