عرض بيانات Places Insights بشكل ديناميكي باستخدام Looker Studio

نظرة عامة

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

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

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

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

سير عمل الحل

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

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

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

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

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

‫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 Spatial Extension (carto-os) المتاحة للجميع في BigQuery. تحوّل الدالة H3_FROMGEOGPOINT نقاط موقع جغرافي محدّدة إلى خلايا H3، وهو نظام يقسّم العالم إلى خلايا شبكية سداسية الشكل.

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

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

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

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

لتنفيذ ذلك في Looker Studio، اتّبِع الخطوات التالية:

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

‫1.2 إعداد العرض المرئي للبيانات الجغرافية المكانية

بعد ربط البيانات، اضبط إعدادات Looker Studio للتعرّف على بيانات حدود H3 بشكل صحيح:

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

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

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

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

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

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

لتحقيق ذلك، عليك تمرير المَعلمات التي يختارها المستخدم مباشرةً إلى طلب معدَّل في Places Insights في وقت التشغيل. في أداة تعديل مصدر البيانات في Looker Studio، عليك تحديد هذه المَعلمات بشكل صريح كمتغيّرات مكتوبة.

في Looker Studio، انقر على قائمة الموارد، ثمّ على إدارة مصادر البيانات المضافة. في اللوحة التي تظهر، انقر على 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)، يجب أن تكون القيم التي يتم تمريرها من Looker Studio بالتنسيق HH:MM:SS (نظام 24 ساعة).

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

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

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
    • التحكّم في ميزة "p_day_of_week"
    • عنصر التحكّم 3: p_hour_of_day

يجب أن يبدو التقرير النهائي على النحو التالي. سيؤدي تغيير قيمة في أحد عناصر التحكّم بالقائمة المنسدلة إلى أن يطلب Looker Studio جلب البيانات المطلوبة من &quot;إحصاءات الأماكن&quot; قبل عرضها على الخريطة.

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

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

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

الخاتمة

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

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

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

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

المساهمون