عرض بيانات إحصاءات الأماكن بشكل ديناميكي باستخدام "مركز البيانات"

نظرة عامة

مخطّط سير عمل يوضّح إرسال Data Studio مَعلمات ديناميكية للمدينة واليوم والوقت إلى "إحصاءات الأماكن" في BigQuery لإنشاء خريطة حرارية للكثافة الجغرافية المكانية

توضّح هذه المقالة كيفية إنشاء تقارير جغرافية مكانية ديناميكية باستخدام Places Insights و "مركز البيانات". يمكنك الاستفادة من بيانات الموقع الجغرافي من خلال منح أصحاب المصلحة غير الفنيين إمكانية الإجابة عن أسئلتهم بأنفسهم. يوضّح لك هذا الدليل كيفية تحويل التقارير الثابتة إلى أدوات تفاعلية على شكل خريطة حرارية لتحليل السوق، بدون الحاجة إلى كتابة طلبات بحث بلغة SQL لكل طلب. يمكنك منح إذن الوصول إلى بيانات الموقع الجغرافي المعقّدة، ما يقلّل الفجوة بين هندسة البيانات وذكاء الأعمال.

يوفّر استخدام هذا النمط المعماري عدة مزايا رئيسية:

  • عرض البيانات بشكل مرئي: يتم تحويل بيانات إحصاءات الأماكن إلى خرائط ورسوم بيانية تفاعلية توضّح على الفور الكثافة المكانية والاتجاهات.
  • استكشاف مبسط بدون استخدام SQL: يمكن لأعضاء الفريق، مثل محلّلي السوق أو مخطّطي العقارات، فلترة البيانات بشكل ديناميكي باستخدام مَعلمات محدّدة مسبقًا (مثل تغيير "المدينة" أو "الوقت من اليوم" باستخدام القوائم المنسدلة). ويمكنهم استكشاف البيانات بدون كتابة أي سطر من لغة SQL.
  • تعاون سلس: تتيح لك ميزات المشاركة العادية في "مركز البيانات" توزيع هذه الإحصاءات التفاعلية بأمان.

سير عمل الحلّ

يضع سير العمل التالي بنية أساسية فعّالة لإعداد التقارير. وينتقل من خط أساس ثابت إلى تطبيق ديناميكي بالكامل، ما يضمن صحة البيانات قبل إضافة أي تعقيد.

المتطلبات الأساسية

قبل البدء، اتّبِع هذه التعليمات لإعداد Places Insights. ستحتاج إلى إذن الوصول إلى "مركز البيانات"، وهو أداة مجانية.

الخطوة 1: وضع خط أساس جغرافي مكاني ثابت

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

1.1 ربط البيانات

استخدِم طلب البحث الثابت التالي لإنشاء الاتصال الأوّلي. يستهدف موقعًا جغرافيًا ثابتًا (لندن) وفئة ثابتة (المطاعم) للتحقّق من مسار البيانات.

SELECT
  h3_index,
  `carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
  restaurant_count
FROM (
  SELECT WITH AGGREGATION_THRESHOLD
    `carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
    COUNT(*) AS restaurant_count
  FROM
    -- Note: Change 'gb' to your target country code (e.g., 'us')
    `places_insights___gb.places`
  WHERE
    'London' IN UNNEST(locality_names)
    AND 'restaurant' IN UNNEST(types)
  GROUP BY
    h3_index
)
ORDER BY
  restaurant_count DESC;

ملاحظة حول التجميع المكاني

يستخدم طلب البحث هذا دالة من CARTO Analytics Toolbox (carto-os) متاحة للجميع في Google Cloud BigQuery. تحوِّل الدالة H3_FROMGEOGPOINT نقاط مواقع جغرافية معيّنة إلى خلايا H3، وهو نظام يقسّم العالم إلى خلايا شبكة سداسية.

نستخدم هذا التحويل لأنّ "الخريطة الملوّنة" في "مركز البيانات" تتطلّب مضلّعات (أشكال) لعرض الألوان. من خلال تحويل النقاط إلى أشكال سداسية، يمكننا عرض كثافة المؤسسات في منطقة معيّنة، بدلاً من رسم آلاف النقاط المتراكبة.

ملاحظة حول حدّ التجميع

تتطلّب جميع طلبات البحث في Places Insights عبارة WITH AGGREGATION_THRESHOLD. تضمن هذه الحماية للخصوصية عدم عرض البيانات إلا إذا كان العدد المجمّع 5 أو أكثر.

في سياق هذا العرض، إذا كانت خلية شبكة H3 تحتوي على أقل من 5 مطاعم، يتم حذف هذه الخلية من مجموعة النتائج بالكامل وستظهر فارغة على خريطتك.

لتنفيذ ذلك في "مركز البيانات":

  1. أنشئ تقريرًا فارغًا جديدًا.
  2. اختَر BigQuery كأداة ربط البيانات.
  3. اختَر طلب بحث مخصّص من القائمة اليمنى، ثم اختَر رقم تعريف المشروع الذي يتم تحصيل الرسوم منه.
  4. الصِق طلب البحث الأساسي الثابت أعلاه في المحرّر.
  5. ألغِ تحديد المَعلمات استخدام لغة SQL القديمة وتفعيل النطاق الزمني وتفعيل عنوان البريد الإلكتروني للمشاهد.
  6. انقر على إضافة.

1.2 إعداد العرض الجغرافي المكاني

بعد ربط البيانات، اضبط "مركز البيانات" للتعرّف على بيانات حدود H3 بشكل صحيح:

  1. أضِف عرضًا خريطة ملوّنة إلى لوحة عرض التقرير من قائمة إضافة رسم بياني.
  2. تأكّد من أنّ حقل h3_geo، الذي يحتوي على هندسة المضلّع، مضبوط على نوع البيانات جغرافي مكاني.
    1. انقر على رمز تعديل مصدر البيانات (قلم رصاص) بجانب اسم الاتصال.
    2. إذا كان h3_geo مضبوطًا على نص (ABC)، استخدِم القائمة المنسدلة لاختيار جغرافي > جغرافي مكاني.
    3. انقر على تم.
  3. اربط حقل h3_index بـ الموقع الجغرافي (الذي يعمل كمعرّف فريد).
  4. اربط حقل h3_geo بـ الحقل الجغرافي المكاني (الذي يعمل كهندسة المضلّع).
  5. اربط حقل restaurant_count بـ مقياس اللون.

سيؤدي ذلك إلى عرض خريطة لكثافة المطاعم حسب خلية H3. يشير اللون الأزرق الداكن (خيار اللون التلقائي) إلى خلية تحتوي على عدد أكبر من المطاعم.

خريطة مملوءة لمدينة لندن مع شبكة سداسية الأضلاع، حيث تشير الخلايا الزرقاء الداكنة إلى تركيز أعلى للمطاعم تشير التسمية التوضيحية إلى أعداد الكثافة التي تتراوح بين 5 و1,215.

الخطوة 2: تنفيذ المَعلمات الديناميكية

لجعل التقرير تفاعليًا، سنضيف عناصر تحكّم إلى التقرير تسمح للمستخدم بالاختيار من بين الخيارات التالية:

  • المحلية: تتحكّم في المدينة التي يركّز عليها التقرير.
  • يوم الأسبوع: يتم فلترة الأماكن استنادًا إلى اليوم الذي تكون فيه مفتوحة، باستخدام سجلّ regular_opening_hours في المخطّط.
  • ساعة اليوم: يتم فلترة الأماكن استنادًا إلى ساعات عملها من خلال المقارنة مع الحقلَين start_time وend_time.

لتحقيق ذلك، ستمرِّر المَعلمات التي يختارها المستخدم مباشرةً إلى طلب بحث معدَّل في إحصاءات الأماكن في وقت التشغيل. في محرّر مصدر البيانات في "مركز البيانات"، عليك تحديد هذه المَعلمات بشكل صريح كمتغيّرات مكتوبة.

في "مركز البيانات"، انقر على قائمة المورد ، ثم على إدارة مصادر البيانات المضافة. في اللوحة التي تظهر، انقر على EDIT بجانب الـ BigQuery Custom SQL مصدر بيانات الذي أضفناه سابقًا.

في نافذة "تعديل الاتصال"، انقر على إضافة مَعلمة. سنضيف ثلاث مَعلمات بالقيم أدناه.

اسم المَعلمة نوع البيانات القيم المسموح بها قائمة القيم (يجب أن تتطابق تمامًا مع قاعدة البيانات)
p_locality نص قائمة تضم القيم
القيمة التصنيف
London لندن
Manchester Manchester
Birmingham برمنغهام
Glasgow غلاسغو
p_day_of_week نص قائمة تضم القيم
القيمة التصنيف
monday الاثنين
tuesday الثلاثاء
wednesday الأربعاء
thursday الخميس
friday الجمعة
saturday السبت
sunday الأحد
p_hour_of_day نص قائمة تضم القيم
القيمة التصنيف
03:00:00 من 3 صباحًا حتى 4 صباحًا
08:00:00 من 8 صباحًا حتى 9 صباحًا
19:00:00 من 7 مساءً حتى 8 مساءً

مثال على ضبط المَعلمة p_hour_of_day:

واجهة الإعدادات الخاصة بالمعلَمة p_hour_of_day التي تعرض قسم قائمة القيم حيث يتم ربط السلاسل الزمنية بتصنيفات قابلة للقراءة

بالنسبة إلى المَعلمة p_hour_of_day، انتبه جيدًا إلى عمود Value. بما أنّ طلب بحث SQL يستخدم CAST(@p_hour_of_day AS TIME)، يجب أن تكون القيم التي يتم تمريرها من "مركز البيانات" بتنسيق HH:MM:SS (ساعة 24) صارم.

بعد إعداد جميع المَعلمات الثلاث وحفظها، عدِّل اتصال BigQuery Custom SQL للإشارة إلى هذه المتغيّرات باستخدام بنية @.

يمكنك إجراء ذلك من خلال النقر على "تعديل الاتصال" ولصق طلب البحث المعدَّل أدناه:

SELECT
  h3_index,
  `carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
  restaurant_count
FROM (
  SELECT WITH AGGREGATION_THRESHOLD
    `carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
    COUNT(*) AS restaurant_count
  FROM
    `places_insights___gb.places`
  WHERE
    -- Dynamic locality filter based on parameter
    @p_locality IN UNNEST(locality_names)
    AND 'restaurant' IN UNNEST(types)
    AND business_status = 'OPERATIONAL'
    AND EXISTS (
      SELECT 1
      FROM UNNEST(
        CASE @p_day_of_week
          WHEN 'monday' THEN regular_opening_hours.monday
          WHEN 'tuesday' THEN regular_opening_hours.tuesday
          WHEN 'wednesday' THEN regular_opening_hours.wednesday
          WHEN 'thursday' THEN regular_opening_hours.thursday
          WHEN 'friday' THEN regular_opening_hours.friday
          WHEN 'saturday' THEN regular_opening_hours.saturday
          WHEN 'sunday' THEN regular_opening_hours.sunday
        END
      ) AS hours
      WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
        AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
    )
  GROUP BY
    h3_index
)
ORDER BY
  restaurant_count DESC;

انقر على "إعادة الاتصال" لحفظ التعديل. في طلب البحث المعدَّل، لاحظ المتغيّرات الجديدة، مثل @p_hour_of_day، التي تتطابق مع أسماء المَعلمات التي أعددناها للتو.

عُد إلى لوحة عرض التقرير لعرض هذه المَعلمات للمستخدم النهائي:

  1. أضِف ثلاثة عناصر تحكّم من نوع قائمة منسدلة إلى تقريرك.
  2. بالنسبة إلى كل عنصر تحكّم، اضبط حقل عنصر التحكّم ليتطابق مع المَعلمات التي أنشأتها حديثًا:
    • عنصر التحكّم 1: p_locality
    • عنصر التحكّم 2: p_day_of_week
    • عنصر التحكّم 3: p_hour_of_day

يجب أن يبدو تقريرك النهائي على النحو التالي. سيؤدي تغيير قيمة في أحد عناصر التحكّم المنسدلة إلى أن يجلب "مركز البيانات" البيانات المطلوبة من Places Insights قبل عرضها على الخريطة.

التقرير التفاعلي النهائي الذي يعرض خريطة كثافة المطاعم في غلاسكو مع ثلاثة فلاتر منسدلة في الأعلى تم توسيع قائمة ساعات اليوم لعرض النطاقات الزمنية القابلة للاختيار.

الخطوة 3: مشاركة النتائج

استخدِم أداة المشاركة المضمّنة في "مركز البيانات" لمشاركة التقرير. سيسمح ذلك للمشاهدين بتعديل العرض بشكل ديناميكي استنادًا إلى المَعلمات التي يختارونها من القوائم المنسدلة.

الخاتمة

ينشئ هذا النمط أداة إعداد تقارير تفاعلية وقابلة للتوسّع تستفيد من قوة الحوسبة في BigQuery لعرض بيانات إحصاءات الأماكن المجمّعة في "مركز البيانات". تتجنّب هذه البنية الأساسية المشاكل المحتملة لمحاولة عرض مجموعات البيانات الأولية الضخمة وتمنح المستخدمين النهائيين المرونة لاستكشاف البيانات على مستوى سمات مختلفة، مثل الوقت والموقع الجغرافي ونوع المؤسسة، في الوقت الفعلي تقريبًا. هذه أداة فعّالة لمنح أصحاب المصلحة غير الفنيين المرونة لاستكشاف البيانات.

الخطوات التالية

استكشِف أشكالاً أخرى من التقارير الديناميكية من خلال تحديد مَعلمات لأجزاء مختلفة من مخطّط إحصاءات الأماكن:

  • تحليل ديناميكي للمنافسين: أنشئ مَعلمة لأسماء brand للسماح للمستخدمين بتبديل خريطة التمثيل اللوني على الفور بين المنافسين المختلفين للاطّلاع على مدى انتشارهم النسبي في السوق. راجِع مقالة لمحة عن بيانات إحصاءات الأماكن للاطّلاع على مدى توفّر بيانات العلامات التجارية.
  • اختيار تفاعلي للموقع الجغرافي: أضِف مَعلمات لـ price_level (مثل "متوسط" مقابل "باهظ") وrating كحد أدنى للسماح لفِرق العقارات بالفلترة بشكل ديناميكي للمناطق التي تتطابق مع ملفات ديمغرافية معيّنة.
  • مناطق التجميع المخصّصة: بدلاً من الفلترة حسب اسم المدينة، اسمح للمستخدمين بتحديد مناطق دراسة مخصّصة.
    • استنادًا إلى النطاق: أنشئ ثلاث مَعلمات رقمية: p_latitude وp_longitude وp_radius_meters. يمكن الحصول على الإحداثيات من منصة خرائط Google APIs، بما في ذلك Geocoding API. في طلب البحث، أدخِل هذه الإحداثيات في الدالة ST_DWITHIN:
      • ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
    • استنادًا إلى المضلّع: بالنسبة إلى الأشكال المخصّصة المعقّدة (مثل المناطق الجغرافية للمبيعات)، لا يمكن للمستخدمين إدخال نص الهندسة بسهولة. بدلاً من ذلك، أنشئ جدول بحث في BigQuery يحتوي على أشكال الهندسة وأسماء سهلة الاستخدام (مثل "المنطقة أ"). أنشئ مَعلمة نصية p_zone_name في "مركز البيانات" للسماح للمستخدمين باختيار المنطقة، واستخدِم طلب بحث فرعيًا لاسترداد الهندسة للدالة ST_CONTAINS.

المساهمون