پرس و جو در مجموعه داده با استفاده از توابع شمارش مکان‌ها

توابع شمارش مکان، کوئری‌های SQL از پیش تعریف‌شده‌ای هستند که در BigQuery اجرا می‌شوند و مکمل کوئری مستقیم از مجموعه داده‌ها هستند. تفاوت اصلی بین کوئری مستقیم از داده‌ها و استفاده از یک تابع این است که توابع حداقل آستانه شمارش را اعمال نمی‌کنند، بلکه در عوض حداقل ناحیه جستجو را اعمال می‌کنند:

  • پرس‌وجوهای مجموعه داده‌های مکانی فقط می‌توانند تعداد ۵ و بالاتر را برگردانند، اما هیچ محدودیتی در اندازه ناحیه جستجو اعمال نمی‌کنند.
  • توابع شمارش مکان‌ها می‌توانند هر تعداد مکانی، از جمله عدد ۰، را برگردانند، اما حداقل مساحت جستجو را ۴۰ در ۴۰ متر (۱۶۰۰ متر مربع ) تعیین می‌کنند. توابع همچنین می‌توانند شناسه مکان‌ها (Place IDs ) را برگردانند که می‌توان از آنها برای جستجوی اطلاعات مربوط به مکان‌های خاص استفاده کرد.

اگر مهم است بدانید چه زمانی یک پرس‌وجو نتیجه‌ای نمی‌دهد یا اگر نیاز به دانستن تعداد کم مکان‌ها زیر ۵ دارید، ممکن است بخواهید از توابع شمارش مکان‌ها استفاده کنید. همچنین اگر نیاز به دریافت اطلاعات مکان‌های خاص برای بررسی دقیق نتایج خود دارید، مفید است.

توابع شمارش مکان‌ها فقط تعداد مکان‌ها را ارائه می‌دهند، بنابراین اگر نیاز به انجام پرس‌وجوهای پیچیده‌تری مانند اتصال داده‌ها یا دریافت بینش‌های اضافی مانند میانگین امتیاز گروهی از مکان‌ها دارید، مستقیماً از مجموعه داده‌ها پرس‌وجو کنید .

توابع و کشورهای پشتیبانی شده برای شمارش مکان‌ها

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

برای مثال:

PROJECT_NAME.places_insights___us.PLACES_COUNT

برای ارسال آرگومان‌ها به تابع، از JSON_OBJECT استفاده کنید.

نتایج خود را فیلتر کنید

توابع شمارش مکان (Places Count) از فیلترهای زیادی برای اصلاح جستجوی شما پشتیبانی می‌کنند. این پارامترها (برای مثال، 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 ) به حروف کوچک و بزرگ حساس هستند و باید دقیقاً با نام پارامترها مطابقت داشته باشند، در غیر این صورت پرس و جو با شکست مواجه خواهد شد.

توابع شمارش مکان‌های مرجع در BigQuery

تمام شهرهای موجود در مجموعه داده‌های نمونه و مجموعه داده‌های کامل کشورها از توابع شمارش مکان‌ها پشتیبانی می‌کنند.

شما به توابع شمارش مکان‌ها (Places Count) مربوط به مجموعه داده‌های شهرها و کشورهایی که در آنها مشترک شده‌اید، دسترسی دارید. برای دسترسی به مجموعه داده‌ها، به بخش «تنظیمات بینش مکان‌ها» مراجعه کنید.

این جداول، شهرها، کشورهای موجود و نام جدول مربوط به آنها را فهرست می‌کنند.

داده‌های نمونه

شهر، کشور نام جدول‌ها
سیدنی، استرالیا places_insights___au___sample. FUNCTION_NAME
سائو پائولو، برزیل places_insights___br___sample. FUNCTION_NAME
تورنتو، کانادا places_insights___ca___sample. FUNCTION_NAME
پاریس، فرانسه places_insights___fr___sample. FUNCTION_NAME
برلین، آلمان places_insights___de___sample. FUNCTION_NAME
بمبئی، هند places_insights___in___sample. FUNCTION_NAME
جاکارتا، اندونزی places_insights___id___sample. FUNCTION_NAME
رم، ایتالیا places_insights___it___sample. FUNCTION_NAME
توکیو، ژاپن places_insights___jp___sample. FUNCTION_NAME
مکزیکوسیتی، مکزیک places_insights___mx___sample. FUNCTION_NAME
مادرید، اسپانیا places_insights___es___sample. FUNCTION_NAME
زوریخ، سوئیس places_insights___ch___sample. FUNCTION_NAME
لندن، بریتانیا places_insights___gb___sample. FUNCTION_NAME
شهر نیویورک، ایالات متحده places_insights___us___sample. FUNCTION_NAME

داده‌های کامل

کشور نام جدول‌ها
استرالیا places_insights___au. FUNCTION_NAME
برزیل places_insights___br. FUNCTION_NAME
کانادا places_insights___ca. FUNCTION_NAME
فرانسه places_insights___fr. FUNCTION_NAME
آلمان places_insights___de. FUNCTION_NAME
هند places_insights___in. FUNCTION_NAME
اندونزی places_insights___id. FUNCTION_NAME
ایتالیا places_insights___it. FUNCTION_NAME
ژاپن places_insights___jp. FUNCTION_NAME
مکزیک places_insights___mx. FUNCTION_NAME
اسپانیا places_insights___es. FUNCTION_NAME
سوئیس places_insights___ch. FUNCTION_NAME
بریتانیا places_insights___gb. FUNCTION_NAME
ایالات متحده places_insights___us. FUNCTION_NAME