عدد نقاط الاهتمام في طلب البحث

تعرض الدالة PLACES_COUNT_V2 جدول BigQuery يحتوي على عدد الأماكن وعيّنات من معرّفات الأماكن لعدة مناطق جغرافية مستنِدة إلى فلاتر محدّدة. تم تصميم هذه الدالة لمعالجة الدُفعات بكفاءة من خلال قبول مَعلمة جدول إدخال للمناطق الجغرافية، ما يتيح لك تحليل العديد من المناطق التي تهمّك في طلب بحث واحد من خلال توفير المناطق الجغرافية عبر جدول إدخال.

البنية

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

المعلمات

  • PROJECT_NAME: اسم مشروعك على Google Cloud
  • LINKED_DATASET_NAME: اسم مجموعة بيانات BigQuery التي تحتوي على دوال إحصاءات الأماكن (مثل places_insights___us).
  • input_geographies: جدول BigQuery يحتوي على المناطق الجغرافية المطلوب تحليلها. يجب أن يتضمّن هذا الجدول الأعمدة التالية:
    • geo_id (STRING): معرّف فريد لكل منطقة جغرافية.
    • geo (GEOGRAPHY): عنصر GEOGRAPHY في BigQuery الذي يمثّل المنطقة. يمكن أن يكون ذلك نقطة أو مضلّعًا أو نوعًا جغرافيًا آخر.
  • filters (JSON): عنصر JSON يحتوي على أزواج مفتاح/قيمة لتصفية الأماكن. اطّلِع على مَعلمات الفلتر.

مخطط جدول النتائج

تعرض الدالة PLACES_COUNT_V2 جدولاً يتضمّن الأعمدة التالية:

اسم العَمود نوع البيانات الوصف
geo_id STRING المعرّف الفريد للمنطقة الجغرافية التي يتم إدخالها، من جدول input_geographies
input_geography GEOGRAPHY عنصر GEOGRAPHY الأصلي من الجدول input_geographies
place_count INTEGER إجمالي عدد الأماكن التي تتطابق مع الفلاتر
sample_place_ids ARRAY<STRING> مصفوفة تتضمّن ما يصل إلى 250 رقم تعريف مكان يطابق المعايير.

آلية العمل

تعالج الدالة كل صف في الجدول input_geographies. بالنسبة إلى كل عنصر 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 للمطاعم المفتوحة.

نتائج دالة &quot;عدد الأماكن&quot; في مقاطعات نيويورك

مزايا استخدام PLACES_COUNT_V2

تقدّم PLACES_COUNT_V2 مزايا كبيرة مقارنةً بكل من PLACES_COUNT وPLACES_COUNT_PER_GEO:

  • المعالجة المجمّعة: يمكنك تحليل آلاف المناطق الجغرافية المخصّصة بكفاءة في طلب بحث واحد من خلال تقديم مدخلات جغرافية متعدّدة في جدول.
  • الأداء: تستخدم هذه الميزة عمليات الربط الجغرافية المكانية المحسّنة في BigQuery، ما يوفّر مزايا كبيرة من حيث السرعة لمجموعات البيانات الكبيرة.
  • قابلية التوسّع: تم تصميمها للتعامل مع عدد كبير من المناطق الجغرافية المدخلة بدون قيود على حجم مَعلمة JSON الفردية.
  • تضمين عدد مرات الظهور صفر: تعرض PLACES_COUNT_V2 صفًا لكل geo_id مقدَّم في جدول الإدخال. إذا لم تتطابق أي أماكن مع معايير منطقة جغرافية معيّنة، ستكون قيمة place_count هي 0. يضمن لك ذلك الحصول على نتيجة لكل حقل إدخال، ما يتيح لك معرفة الأماكن التي لا تتوفّر فيها بيانات.
  • اللقطات السابقة: يمكنك طلب بيانات عدد الأماكن من شهر معيّن باستخدام الفلتر الاختياري snapshot_date.

مثال: طلب عدد نقاط الاهتمام من شهر سابق

يوضّح هذا المثال كيفية طلب عدد نقاط الاهتمام السابقة لمواقع جغرافية محدّدة باستخدام المَعلمة snapshot_date. تفلتر هذه السمة النتائج لعرض الأماكن التي تتضمّن مرافق شحن المركبات الكهربائية المحدّدة بواسطة max_ev_max_charge_rate_kw إلى جانب regular_opening_hours محدّدة.

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(
    'geography_radius', 5000,
    'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM)
    'max_ev_max_charge_rate_kw', 30.0, -- Filter by EV charge rate in kW
    'regular_opening_hours', JSON_OBJECT(
      'monday', [JSON_OBJECT('start_time', '09:00', 'end_time', '12:00')]
    )
  )
);