نظرة عامة

يوضّح هذا المستند كيفية إنشاء تقارير جغرافية مكانية ديناميكية باستخدام Places Insights ومركز البيانات. يمكنك الاستفادة من بيانات الموقع الجغرافي من خلال منح الأطراف المعنية غير الفنية القدرة على الإجابة عن أسئلتها. يوضّح لك هذا الدليل كيفية تحويل التقارير الثابتة إلى أدوات تفاعلية بنمط الخريطة الحرارية لتحليل السوق، بدون الحاجة إلى كتابة SQL لكل طلب. تفعيل إمكانية الوصول إلى بيانات الموقع الجغرافي المعقّدة، ما يساهم في سد الفجوة بين هندسة البيانات وذكاء الأعمال
يوفّر اتّباع نمط التصميم هذا العديد من المزايا الرئيسية:
- التمثيل البصري للبيانات: يحوّل بيانات إحصاءات الأماكن إلى خرائط ورسوم بيانية تفاعلية تعرض فورًا الكثافة المكانية والمؤشرات.
- استكشاف مبسط بدون SQL: يتيح لأعضاء الفريق، مثل محلّلي السوق أو مخطّطي العقارات، فلترة البيانات بشكل ديناميكي باستخدام مَعلمات محدّدة مسبقًا (مثل تغيير "المدينة" أو "الوقت من اليوم" باستخدام القوائم المنسدلة). ويمكنهم استكشاف البيانات بدون كتابة سطر واحد من SQL.
- التعاون السلس: تتيح لك ميزات المشاركة العادية في "مركز البيانات" توزيع هذه الإحصاءات التفاعلية بأمان.
سير عمل الحل
يؤدي سير العمل التالي إلى إنشاء بنية تقارير فعّالة. وتنتقل من خط أساس ثابت إلى تطبيق ديناميكي بالكامل، ما يضمن صحة البيانات قبل إضافة أي تعقيد.
المتطلبات الأساسية
قبل البدء، اتّبِع هذه التعليمات لإعداد "إحصاءات الأماكن". يجب أن يتوفّر لديك إذن الوصول إلى مركز البيانات، وهي أداة مجانية.
الخطوة 1: إنشاء خط أساس ثابت للبيانات الجيوفضائية
قبل تقديم ميزة التفاعل، عليك إنشاء طلب بحث أساسي والتأكّد من عرضه بشكل صحيح في "مركز البيانات". استخدِم إحصاءات الأماكن وإمكانات BigQuery الجغرافية المكانية لتجميع البيانات في شبكات سداسية باستخدام نظام فهرسة H3. سيؤدي ذلك إلى إنشاء ناتج طلب بحث يمكن استخدامه مع نوع الرسم البياني "خريطة بالدرجات اللونية" في Data 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 Analytics
Toolbox (carto-os) المتاحة بشكل علني في Google Cloud BigQuery. تحوّل الدالة
H3_FROMGEOGPOINT نقاط الموقع الجغرافي المحددة إلى خلايا H3،
وهي نظام يقسّم العالم إلى خلايا شبكية سداسية الأضلاع.
نستخدم هذا التحويل لأنّ "الخريطة المعبّأة" في "مركز البيانات" تتطلّب مضلّعات (أشكالاً) لعرض الألوان. من خلال تحويل النقاط إلى أشكال سداسية، يمكننا عرض كثافة الأنشطة التجارية في منطقة معيّنة، بدلاً من رسم آلاف النقاط المتداخلة.
ملاحظة حول الحدّ الأدنى للتجميع
تتطلّب جميع طلبات البحث في "إحصاءات الأماكن" استخدام العبارة WITH AGGREGATION_THRESHOLD.
تضمن حماية الخصوصية هذه عدم عرض البيانات إلا إذا كان العدد المجمّع 5 أو أكثر.
في سياق هذا التمثيل المرئي، إذا كانت خلية شبكة H3 تحتوي على أقل من 5 مطاعم، سيتم حذف هذه الخلية من مجموعة النتائج بالكامل وستظهر فارغة على خريطتك.
لتنفيذ ذلك في "مركز البيانات"، اتّبِع الخطوات التالية:
- أنشئ تقريرًا فارغًا جديدًا.
- اختَر BigQuery كأداة ربط البيانات.
- اختَر طلب بحث مخصّص من القائمة اليمنى، ثمّ اختَر رقم تعريف المشروع الخاص بالفوترة.
- الصِق طلب البحث الأساسي الثابت أعلاه في المحرّر.
- ألغِ تحديد المَعلمات استخدام SQL القديم وتفعيل النطاق الزمني وتفعيل عنوان البريد الإلكتروني الخاص بالمشاهد.
- انقر على إضافة.
1.2 إعداد مؤثرات عرض البيانات الجيوفضائية
بعد ربط البيانات، اضبط "مركز البيانات" للتعرّف على بيانات حدود H3 بشكل صحيح:
- أضِف تصور خريطة مملوءة إلى لوحة عرض التقارير، من قائمة إضافة رسم بياني.
- تأكَّد من أنّ الحقل
h3_geoالذي يحتوي على شكل المضلّع الهندسي مضبوط على نوع البيانات جيوفضائي.- انقر على رمز تعديل مصدر البيانات (القلم الرصاص) بجانب اسم عملية الربط.
- إذا تم ضبط
h3_geoعلى نص (ABC)، استخدِم القائمة المنسدلة لاختيار جغرافي > جغرافي مكاني. - انقر على تم.
- اربط الحقل
h3_indexبـ الموقع الجغرافي (الذي يعمل كمعرّف فريد). - اربط الحقل
h3_geoبـ الحقل الجغرافي المكاني (الذي يعمل كشكل هندسي متعدد الأضلاع). - اربط الحقل
restaurant_countبمقياس اللون.
سيؤدي ذلك إلى عرض خريطة لكثافة المطاعم حسب خلية H3. يشير اللون الأزرق الداكن (خيار اللون التلقائي) إلى خلية تحتوي على عدد أكبر من المطاعم.

الخطوة 2: تنفيذ المَعلمات الديناميكية
لجعل التقرير تفاعليًا، سنضيف إليه عناصر تحكّم تتيح للمستخدم الاختيار من بين الخيارات التالية:
- المنطقة المحلية: تتحكّم في المدينة التي يركّز عليها التقرير.
- يوم الأسبوع: يفلتر الأماكن استنادًا إلى اليوم الذي تكون فيه مفتوحة، وذلك باستخدام سجل
regular_opening_hoursفي المخطط. - ساعة اليوم: يفلتر هذا الخيار الأماكن استنادًا إلى ساعات عملها من خلال مقارنتها بالحقلَين
start_timeوend_time.
لتحقيق ذلك، عليك تمرير المَعلمات التي يختارها المستخدم مباشرةً إلى طلب معدَّل في إحصاءات الأماكن في وقت التشغيل. في أداة تعديل مصدر البيانات في Data Studio، عليك تحديد هذه المَعلمات بشكل صريح كمتغيرات مكتوبة.
في "مركز البيانات"، انقر على قائمة الموارد، ثمّ على إدارة مصادر البيانات المضافة. في اللوحة التي تظهر، انقر على EDIT بجانب مصدر بيانات BigQuery Custom SQL الذي أضفناه سابقًا.
في نافذة "تعديل الاتصال"، انقر على إضافة مَعلمة. سنضيف ثلاث مَعلمات بالقيم التالية.
| اسم المَعلمة | نوع البيانات | القيم المسموح بها | قائمة القيم (يجب أن تتطابق مع قاعدة البيانات تمامًا) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
p_locality |
نص | قائمة تضم القيم |
|
||||||||||||||||
p_day_of_week |
نص | قائمة تضم القيم |
|
||||||||||||||||
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:
p_locality - التحكّم 2:
p_day_of_week - عنصر التحكّم 3:
p_hour_of_day
- عنصر التحكّم 1:
يجب أن يبدو التقرير النهائي على النحو التالي. سيؤدي تغيير قيمة في أحد عناصر التحكّم المنسدلة إلى أن يطلب "مركز البيانات" جلب البيانات المطلوبة من "إحصاءات حول الأماكن" قبل عرضها على الخريطة.

الخطوة 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في مركز البيانات للسماح للمستخدمين باختيار المنطقة، واستخدِم طلبًا فرعيًا لاسترداد الشكل الهندسي للدالةST_CONTAINS.
- استنادًا إلى نصف القطر: أنشئ ثلاث مَعلمات رقمية: p_latitude وp_longitude وp_radius_meters. يمكن الحصول على الإحداثيات من واجهات برمجة التطبيقات على "منصة خرائط Google"، بما في ذلك Geocoding API. في طلب البحث،
أدرِج هذه القيم في الدالة ST_DWITHIN:
المساهمون
- ديفيد ساجنجارتن | مهندس علاقات المطوّرين
- هنريك فالف | مهندس تجربة المطوّرين