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

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

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

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

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

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

Places Insights از عملکردهای زیر پشتیبانی می‌کند:

  • PLACES_COUNT_V2 : جدولی شامل تعداد مکان‌ها و شناسه‌های مکان نمونه را برمی‌گرداند. این تابع یک پارامتر جدول برای ورودی چند جغرافیایی می‌پذیرد و پردازش دسته‌ای کارآمد را امکان‌پذیر می‌کند. در مقایسه با توابع PLACES_COUNT و PLACES_COUNT_PER_GEO ، برای اتصال‌های مکانی بسیار بهینه شده است.
  • PLACES_COUNT_PER_TYPE_V2 : جدولی از تعداد مکان‌ها و شناسه‌های مکان نمونه را که بر اساس نوع مکان دسته‌بندی شده‌اند، برمی‌گرداند. مشابه PLACES_COUNT_V2 ، این تابع یک پارامتر جدول را برای پردازش همزمان چندین جغرافیای ورودی می‌پذیرد. این معماری از پردازش دسته‌ای کارآمد پشتیبانی می‌کند و در مقایسه با PLACES_COUNT_PER_TYPE اتصال مکانی بهینه‌ای را ارائه می‌دهد.
  • PLACES_COUNT_PER_H3 : یک جدول BigQuery از تعداد مکان‌ها در هر سلول H3 را برمی‌گرداند.
  • PLACES_COUNT : یک ردیف واحد شامل تعداد مکان‌ها را برمی‌گرداند.
  • PLACES_COUNT_PER_TYPE : یک جدول BigQuery از تعداد مکان‌ها بر اساس نوع مکان‌ها را برمی‌گرداند.
  • PLACES_COUNT_PER_GEO : یک جدول BigQuery از تعداد مکان‌ها به ازای هر منطقه جغرافیایی را برمی‌گرداند.

علاوه بر شمارش مکان‌ها، همه توابع به جز PLACES_COUNT تا ۲۵۰ شناسه مکان را برای هر عنصر از پاسخ برمی‌گردانند.

شناسه‌های مکان را می‌توان با موارد زیر استفاده کرد:

نوشتن کوئری‌ها با توابع

برای فراخوانی توابع از فرمت زیر استفاده کنید: [project name (optional)].[table name].[function name] .

اگر هنگام تنظیم Places Insights نام مجموعه داده پیوند شده را تغییر داده‌اید، از نام دلخواه خود به جای نام‌های پیش‌فرض جدول که در توابع شمارش مکان مرجع در BigQuery ذکر شده‌اند، استفاده کنید. همچنین می‌توانید به صورت اختیاری نام پروژه خود را نیز وارد کنید. اگر نامی وارد نشود، پرس و جو به طور پیش‌فرض به پروژه فعال ارجاع داده می‌شود.

برای مثال:

PROJECT_NAME.places_insights___us.PLACES_COUNT

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

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

توابع شمارش مکان (Places Count) از فیلترهای زیادی برای اصلاح جستجوی شما پشتیبانی می‌کنند. این پارامترها (برای مثال، price_level یا types ) به حروف کوچک و بزرگ حساس هستند و باید دقیقاً با نام پارامترها مطابقت داشته باشند. برای مشاهده لیست کامل گزینه‌ها، به مرجع پارامترهای فیلتر مراجعه کنید .

در مثال بعدی، با استفاده از تابع PLACES_COUNT_V2 ، فیلترهایی را برای محدود کردن جستجو بر اساس حداقل امتیاز کاربر، سطح قیمت، وضعیت کسب‌وکار و اینکه آیا رستوران اجازه ورود سگ را می‌دهد یا خیر، اعمال می‌کنید.

ابتدا، از جدول جغرافیایی ورودی خود استفاده کنید یا جدولی با جغرافیای انتخاب شده تهیه کنید:

-- Create a table for the input geographies
CREATE TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas` AS (
  SELECT
    '1' AS geo_id, -- Unique identifier
    ST_GEOGPOINT(-73.9857, 40.7484) AS geo -- Empire State Building
  UNION ALL
  SELECT
    '2' AS geo_id, -- Unique identifier
    ST_GEOGPOINT(-73.9851, 40.7580) AS geo -- Times Square
);

در مرحله بعد، تابع PLACES_COUNT_V2 با جدول و شیء JSON حاوی فیلترها فراخوانی کنید. شعاع جستجو در فیلترهای JSON گنجانده شده است و در اطراف هر نقطه در جدول my_search_areas اعمال خواهد شد.

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters around each point in 'geo'
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'min_rating', 1.3,
      'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'],
      'allows_dogs', TRUE
      )
);

مثال تابع شمارش مکان‌ها

مثال زیر از تابع PLACES_COUNT_V2 با جدول ورودی جغرافیایی سفارشی my_search_area برای بازگرداندن تعداد رستوران‌های فعال در محدوده ۱۰۰۰ متری ساختمان امپایر استیت و میدان تایمز در شهر نیویورک استفاده می‌کند:

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"]
      )
);

پاسخ یک جدول BigQuery است که شامل geo_id ، جغرافیا، تعداد و نمونه‌ای از شناسه‌های مکان است.

نتایج مربوط به تابع شمارش اماکن در شهر نیویورک.

نتایج را تجسم کنید

ابزارهای تحلیل و هوش تجاری برای کمک به شما در کشف بینش از داده‌های BigQuery بسیار مهم هستند. BigQuery از چندین ابزار تجسم داده‌های گوگل و شخص ثالث پشتیبانی می‌کند که می‌توانید از آنها برای تحلیل نتایج توابع خود در داده‌های Places Insights استفاده کنید.

برای مثالی از مصورسازی نتایج یک تابع، به Visualize results مراجعه کنید. برای اطلاعات بیشتر و مثالی در مورد مصورسازی نتایج Places Insights، به Visualize query results مراجعه کنید.

محدودیت‌ها و الزامات

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

  • فقط بینش‌های COUNT پشتیبانی می‌شوند.
  • حداقل مساحت جستجو ۴۰ متر در ۴۰ متر (۱۶۰۰ متر مربع ) مورد نیاز است.
  • محدودیت اندازه ورودی پارامتر: شیء JSON که به عنوان پارامتر به توابع ارسال می‌شود، به ۱ مگابایت محدود است. تأثیر این محدودیت به نسخه تابع بستگی دارد:
  • برای توابع V2 ( PLACES_COUNT_V2 ، PLACES_COUNT_PER_TYPE_V2 )، این محدودیت فقط برای شیء JSON فیلترها اعمال می‌شود. از آنجایی که جغرافیاها به طور جداگانه با استفاده از یک پارامتر جدول ارائه می‌شوند، این توابع می‌توانند بدون رسیدن به محدودیت اندازه JSON، به تعداد بسیار بیشتری از جغرافیاهای ورودی مقیاس‌بندی شوند.
    • برای PLACES_COUNT_PER_H3 ، PLACES_COUNT ، PLACES_COUNT_PER_TYPE و PLACES_COUNT_PER_GEO ، این محدودیت برای کل شیء JSON، شامل تمام تعاریف جغرافیایی، اعمال می‌شود. این ممکن است تعداد جغرافیایی‌هایی را که می‌توان در یک فراخوانی واحد پردازش کرد، محدود کند.
  • از فیلتر کردن بر اساس شناسه مکان، برندها، گزینه‌های شارژ خودروی برقی یا مؤلفه آدرس پشتیبانی نمی‌کند.
  • شما فقط می‌توانید به توابع شمارش مکان‌ها برای شهرها و کشورهایی که در آنها مشترک شده‌اید دسترسی داشته باشید. برای دسترسی به مجموعه داده‌ها، به بخش «تنظیم بینش مکان‌ها» مراجعه کنید.
  • پارامترهای فیلتر (برای مثال، geography یا types ) به حروف کوچک و بزرگ حساس هستند و باید دقیقاً با نام پارامترها مطابقت داشته باشند، در غیر این صورت پرس و جو با شکست مواجه خواهد شد.

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

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

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

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

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

شهر، کشور نام جدول‌ها
بوئنوس آیرس، آرژانتین places_insights___ar___sample. FUNCTION_NAME
سیدنی، استرالیا places_insights___au___sample. FUNCTION_NAME
باد گاستین، اتریش places_insights___at___sample. FUNCTION_NAME
الرفاع، بحرین places_insights___bh___sample. FUNCTION_NAME
بروکسل، بلژیک places_insights___be___sample. FUNCTION_NAME
سائو پائولو، برزیل places_insights___br___sample. FUNCTION_NAME
پلوودیو، بلغارستان places_insights___bg___sample. FUNCTION_NAME
تورنتو، کانادا places_insights___ca___sample. FUNCTION_NAME
سانتیاگو، شیلی places_insights___cl___sample. FUNCTION_NAME
مدلین، کلمبیا places_insights___co___sample. FUNCTION_NAME
برنو، جمهوری چک places_insights___cz___sample. FUNCTION_NAME
کپنهاگ، دانمارک places_insights___dk___sample. FUNCTION_NAME
قاهره، مصر places_insights___eg___sample. FUNCTION_NAME
هلسینکی، فنلاند places_insights___fi___sample. FUNCTION_NAME
پاریس، فرانسه places_insights___fr___sample. FUNCTION_NAME
برلین، آلمان places_insights___de___sample. FUNCTION_NAME
آتن، یونان places_insights___gr___sample. FUNCTION_NAME
هنگ کنگ، هنگ کنگ places_insights___hk___sample. FUNCTION_NAME
دبرسن، مجارستان places_insights___hu___sample. FUNCTION_NAME
بمبئی، هند places_insights___in___sample. FUNCTION_NAME
جاکارتا، اندونزی places_insights___id___sample. FUNCTION_NAME
کورک، ایرلند places_insights___ie___sample. FUNCTION_NAME
تل‌آویو-یافو، اسرائیل places_insights___il___sample. FUNCTION_NAME
رم، ایتالیا places_insights___it___sample. FUNCTION_NAME
توکیو، ژاپن places_insights___jp___sample. FUNCTION_NAME
بوسان، کره جنوبی places_insights___kr___sample. FUNCTION_NAME
کوالالامپور، مالزی places_insights___my___sample. FUNCTION_NAME
مکزیکوسیتی، مکزیک places_insights___mx___sample. FUNCTION_NAME
آمستردام، هلند places_insights___nl___sample. FUNCTION_NAME
ولینگتون، نیوزیلند places_insights___nz___sample. FUNCTION_NAME
اسلو، نروژ places_insights___no___sample. FUNCTION_NAME
آرکیپا، پرو places_insights___pe___sample. FUNCTION_NAME
مانیل، فیلیپین places_insights___ph___sample. FUNCTION_NAME
ورشو، لهستان places_insights___pl___sample. FUNCTION_NAME
لیسبون، پرتغال places_insights___pt___sample. FUNCTION_NAME
لوسیل، قطر places_insights___qa___sample. FUNCTION_NAME
بخارست، رومانی places_insights___ro___sample. FUNCTION_NAME
جده، عربستان سعودی places_insights___sa___sample. FUNCTION_NAME
سنگاپور، سنگاپور places_insights___sg___sample. FUNCTION_NAME
ژوهانسبورگ، آفریقای جنوبی places_insights___za___sample. FUNCTION_NAME
مادرید، اسپانیا places_insights___es___sample. FUNCTION_NAME
استکهلم، سوئد places_insights___se___sample. FUNCTION_NAME
زوریخ، سوئیس places_insights___ch___sample. FUNCTION_NAME
تایپه، تایوان places_insights___tw___sample. FUNCTION_NAME
چیانگ مای، تایلند places_insights___th___sample. FUNCTION_NAME
آنکارا، ترکیه places_insights___tr___sample. FUNCTION_NAME
شارجه، امارات متحده عربی places_insights___ae___sample. FUNCTION_NAME
لندن، بریتانیا places_insights___gb___sample. FUNCTION_NAME
شهر نیویورک، ایالات متحده places_insights___us___sample. FUNCTION_NAME
هانوی، ویتنام places_insights___vn___sample. FUNCTION_NAME

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

کشور نام جدول‌ها
آرژانتین places_insights___ar. FUNCTION_NAME
استرالیا places_insights___au. FUNCTION_NAME
اتریش places_insights___at. FUNCTION_NAME
بحرین places_insights___bh. FUNCTION_NAME
بلژیک places_insights___be. FUNCTION_NAME
برزیل places_insights___br. FUNCTION_NAME
بلغارستان places_insights___bg. FUNCTION_NAME
کانادا places_insights___ca. FUNCTION_NAME
شیلی places_insights___cl. FUNCTION_NAME
کلمبیا places_insights___co. FUNCTION_NAME
چک places_insights___cz. FUNCTION_NAME
دانمارک places_insights___dk. FUNCTION_NAME
مصر places_insights___eg. FUNCTION_NAME
فنلاند places_insights___fi. FUNCTION_NAME
فرانسه places_insights___fr. FUNCTION_NAME
آلمان places_insights___de. FUNCTION_NAME
یونان places_insights___gr. FUNCTION_NAME
هنگ کنگ places_insights___hk. FUNCTION_NAME
مجارستان places_insights___hu. FUNCTION_NAME
هند places_insights___in. FUNCTION_NAME
اندونزی places_insights___id. FUNCTION_NAME
ایرلند places_insights___ie. FUNCTION_NAME
اسرائیل places_insights___il. FUNCTION_NAME
ایتالیا places_insights___it. FUNCTION_NAME
ژاپن places_insights___jp. FUNCTION_NAME
مالزی places_insights___my. FUNCTION_NAME
مکزیک places_insights___mx. FUNCTION_NAME
هلند places_insights___nl. FUNCTION_NAME
نیوزیلند places_insights___nz. FUNCTION_NAME
نروژ places_insights___no. FUNCTION_NAME
پرو places_insights___pe. FUNCTION_NAME
فیلیپین places_insights___ph. FUNCTION_NAME
لهستان places_insights___pl. FUNCTION_NAME
پرتغال places_insights___pt. FUNCTION_NAME
قطر places_insights___qa. FUNCTION_NAME
رومانی places_insights___ro. FUNCTION_NAME
عربستان سعودی places_insights___sa. FUNCTION_NAME
سنگاپور places_insights___sg. FUNCTION_NAME
آفریقای جنوبی places_insights___za. FUNCTION_NAME
کره جنوبی places_insights___kr. FUNCTION_NAME
اسپانیا places_insights___es. FUNCTION_NAME
سوئد places_insights___se. FUNCTION_NAME
سوئیس places_insights___ch. FUNCTION_NAME
تایوان places_insights___tw. FUNCTION_NAME
تایلند places_insights___th. FUNCTION_NAME
ترکیه places_insights___tr. FUNCTION_NAME
امارات متحده عربی places_insights___ae. FUNCTION_NAME
بریتانیا places_insights___gb. FUNCTION_NAME
ایالات متحده places_insights___us. FUNCTION_NAME
ویتنام places_insights___vn. FUNCTION_NAME