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

تعرض الدالة 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): كائن BigQuery GEOGRAPHY الذي يمثّل المنطقة. يمكن أن يكون نقطة أو مضلّعًا أو نوعًا آخر من المناطق الجغرافية.
  • 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 للمطاعم التي تعمل.

نتائج دالة Places Count في مقاطعات نيويورك

مزايا استخدام 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')]
    )
  )
);