التمثيل المرئي في "مركز البيانات" لبيانات إحصاءات الأماكن

نظرة عامة

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

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

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

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

سير عمل الحلّ

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

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

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

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

قبل تقديم ميزات التفاعل، أنشئ طلب بحث أساسيًا وتأكَّد من عرضه بشكل صحيح في "مركز البيانات". استخدِم Places Insights وإمكانات 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‏ (carto-os) المتاحة للجميع في Google Cloud BigQuery. تحوّل الدالة H3_FROMGEOGPOINT نقاط مواقع جغرافية محدّدة إلى خلايا H3، وهو نظام يقسّم العالم إلى خلايا شبكة سداسية الشكل.

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

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

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

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

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

  1. أنشئ تقريرًا فارغًا جديدًا.
  2. اختَر BigQuery كأداة ربط البيانات.
  3. انقر على طلب بحث مخصّص من القائمة اليمنى واختَر رقم تعريف مشروع الفوترة.
  4. الصِق طلب البحث الأساسي الثابت أعلاه في المحرِّر.
  5. ألغِ تحديد المَعلمات استخدام Legacy 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 إلى 1215.

الخطوة 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 ساعة).

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

يتم ذلك عن طريق النقر فوق "Edit Connection" (تحرير الاتصال)، ولصق الاستعلام المعدل أدناه:

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

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

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

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

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

الخاتمة

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

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

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

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

المساهمون