نمای کلی

این سند نحوه ساختن گزارشهای فضایی-جغرافیایی پویا بااستفاده از اطلاعات آماری مکانها و Data Studio را شرح میدهد. با توانمندسازی ذینفعان غیرفنی برای پاسخ دادن به پرسشهای خودشان، ارزش دادههای مکانتان را آزاد کنید. این راهنما نشان میدهد که چگونه گزارشهای ایستا را بدون نیاز به نوشتن SQL برای هر درخواست، به ابزارهای تعاملی بهسبک نقشه حرارتی برای تحلیل بازار تبدیل کنید. دسترسی به دادههای مکان پیچیده را فعال کنید و شکاف بین مهندسی داده و هوش کسبوکار را پر کنید.
اتخاذ این الگوی معماری مزایای کلیدی متعددی را به همراه دارد:
- نمایش تصویری دادهها: دادههای «اطلاعات آماری مکانها» را به نقشهها و نمودارهای تعاملی تبدیل میکند که بلافاصله تراکم فضایی و گرایشها را نشان میدهد.
- کاوش سادهشده بدون SQL: به اعضای تیم، مانند تحلیلگران بازار یا برنامهریزان املاک، امکان میدهد بااستفاده از پارامترهای ازپیش تعریفشده (برای نمونه، تغییر «شهر» یا «زمان روز» بااستفاده از منوهای کرکرهای)، دادهها را بهصورت پویا فیلتر کنند. آنها میتوانند دادهها را بدون نوشتن حتی یک خط SQL کاوش کنند.
- مشارکت یکپارچه: ویژگیهای استاندارد همرسانی Data Studio به شما امکان میدهد این اطلاعات آماری تعاملی را بهطور ایمن توزیع کنید.
گردش کار راهحل
گردش کار زیر معماری گزارشدهی با عملکرد بالا را ایجاد میکند. این برنامه از یک خط پایه ایستا به یک برنامه کاملاً پویا حرکت میکند و قبلاز معرفی پیچیدگی، از صحت دادهها اطمینان حاصل میکند.
پیشنیازها
قبلاز شروع، این دستورالعملها را دنبال کنید تا «اطلاعات آماری مکانها» را راهاندازی کنید. به دسترسی به Data Studio نیاز دارید، که ابزاری رایگان است.
مرحله ۱: ایجاد خط مبنای زمینفضایی ایستا
پیشاز معرفی تعاملی بودن، پُرسمان پایهای ایجاد کنید و مطمئن شوید که در Data Studio بهدرستی پرداز میشود. از «اطلاعات آماری مکانها» و قابلیتهای فضامکانی BigQuery برای تجمیع دادهها در شبکههای ششضلعی بااستفاده از سیستم نمایهگذاری H3 استفاده کنید. این کار برونداد پُرسمانی تولید میکند که میتوان از آن با نوع نمودار نقشه رنگی Data Studio برای دیداریسازی استفاده کرد.
۱.۱ اتصال دادهها
برای ایجاد اتصال اولیه، از پُرسمان ایستا زیر استفاده کنید. این هدف مکان ثابت (لندن) و دسته (رستورانها) را برای اعتبارسنجی خط لوله دادهها هدفیابی میکند.
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 تبدیل میکند،
سیستمی که جهان را به سلولهای ششضلعی تقسیم میکند.
از این تبدیل استفاده میکنیم زیرا «نقشه رنگی» Data Studio برای پرداز کردن رنگها به چندضلعی (شکل) نیاز دارد. با تبدیل کردن نقطهها به شکلهای ششضلعی، میتوانیم تراکم کسبوکارها را در یک منطقه خاص بهتصویر بکشیم، بهجای اینکه هزاران نقطه همپوشانی را رسم کنیم.
نکتهای درباره آستانه تجمیع
همه پُرسمانهای «اطلاعات آماری مکانها» به بند WITH AGGREGATION_THRESHOLD نیاز دارند.
این محافظت از حریم خصوصی تضمین میکند که دادهها فقط درصورتی برگردانده میشوند که تعداد تجمیعی ۵ یا بیشتر باشد.
در بافت این دیداریسازی، اگر سلول شبکه H3 کمتر از ۵ رستوران داشته باشد، آن سلول بهطور کامل از مجموعه نتایج حذف میشود و در نقشه شما خالی نشان داده میشود.
برای پیادهسازی این در Data Studio:
- گزارش خالی جدیدی ایجاد کنید.
- BigQuery را بهعنوان اتصالدهنده داده انتخاب کنید.
- از منوِ سمت راست، پُرسمان سفارشی را انتخاب کنید و شناسه پروژه صورتحساب خود را انتخاب کنید.
- پُرسمان پایه ایستا بالا را در ویرایشگر جایگذاری کنید.
- پارامترهای استفاده از SQL قدیمی، فعال کردن محدوده تاریخ، و فعال کردن نشانی ایمیل بیننده را پاک کنید.
- روی افزودن کلیک کنید.
۱.۲ پیکربندی مصورسازی زمینمکانی
پساز متصل شدن دادهها، Data Studio را پیکربندی کنید تا دادههای مرز H3 را بهدرستی تشخیص دهد:
- از منو افزودن نمودار، یک نمایانسازی نقشه رنگی به بوم گزارش اضافه کنید.
- مطمئن شوید فیلد
h3_geoکه حاوی هندسه چندضلعی است روی نوع داده زمینمکانی تنظیم شده باشد.- روی نماد ویرایش منبع داده (مداد) در کنار نام اتصال خود کلیک کنید.
- اگر
h3_geoروی نوشتار (ABC) تنظیم شده است، از منوِ کرکرهای برای انتخاب جغرافیایی > فضایی-جغرافیایی استفاده کنید، - روی تمام کلیک کنید.
- فیلد
h3_indexرا به مکان (بهعنوان شناسه یکتا) نگاشت کنید. - فیلد
h3_geoرا به فیلد زمینمکانی (عملکننده بهعنوان هندسه چندضلعی) نگاشت کنید. - فیلد
restaurant_countرا به سنجه رنگ نگاشت کنید.
با این کار، نقشه تراکم رستوران براساس سلول H3 ارائه میشود. آبی تیرهتر (گزینه رنگ پیشفرض) نشاندهنده سلولی با تعداد رستوران بیشتر است.

مرحله ۲: پیادهسازی پارامترهای پویا
برای تعاملی کردن گزارش، کنترلهایی به گزارش اضافه میکنیم که به کاربر امکان میدهد از بین گزینههای زیر انتخاب کند:
- محل: شهری را که گزارش روی آن تمرکز میکند کنترل میکند.
- روز هفته: مکانها را براساس روزی که باز هستند فیلتر میکند و از
رکورد
regular_opening_hoursدر طرحواره بهره میبرد. - ساعت روز: مکانها را براساس ساعات کاریشان با مقایسه با فیلدهای
start_timeوend_timeفیلتر میکند.
برای دستیابی به این هدف، پارامترهای انتخابشده توسط کاربر را مستقیماً به پُرسمان اصلاحشده «اطلاعات آماری مکانها» در زمان اجرا منتقل میکنید. در ویرایشگر منبع داده Data Studio، باید این پارامترها را بهصورت متغیرهای نوعدار تعریف کنید.
در Data Studio، منو منبع را انتخاب کنید، سپس روی مدیریت منابع داده اضافه شده کلیک کنید. در پانل ظاهرشده، EDIT را دربرابر منبع داده «SQL سفارشی BigQuery» که قبلاً اضافه کردهایم انتخاب کنید.
در پنجره «ویرایش اتصال»، افزودن پارامتر را انتخاب کنید. قصد داریم سه پارامتر با مقادیر زیر اضافه کنیم.
| نام پارامتر | نوع داده | مقادیر مجاز | فهرست مقادیر (باید دقیقاً با پایگاه داده مطابقت داشته باشد) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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) استفاده میکند، مقادیر منتقلشده
از Data Studio باید در قالب دقیق HH:MM:SS (ساعت ۲۴ ساعته) باشد.
پساز اینکه هر سه پارامتر را راهاندازی و ذخیره کردید، اتصال 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 را که با نامهای پارامترهایی که بهتازگی راهاندازی کردهایم همبستگی دارند، یادداشت کنید.
برای آشکار کردن این پارامترها برای کاربر نهایی، به بوم گزارش برگردید:
- سه کنترل فهرست کرکرهای به گزارش خود اضافه کنید.
- برای هر کنترل، فیلد کنترل را تنظیم کنید تا با پارامترهای جدیدی که ایجاد کردهاید مطابقت داشته باشد:
- کنترل ۱:
p_locality - کنترل ۲:
p_day_of_week - کنترل ۳:
p_hour_of_day
- کنترل ۱:
گزارش نهایی شما باید به این شکل باشد. تغییر مقدار در یکی از کنترلهای کرکرهای باعث میشود Data Studio دادههای درخواستی را از «اطلاعات آماری مکانها» واکشی کند و سپس آن را در نقشه بهتصویر بکشد.

مرحله ۳: همرسانی نتایج
برای همرسانی گزارش، از ابزار همرسانی ساختهشده در Data Studio استفاده کنید. این کار به بینندگان امکان میدهد تصویرسازی را براساس پارامترهایی که از فهرستهای کرکرهای شما انتخاب میکنند بهصورت پویا بهروز کنند.
نتیجهگیری
این الگو ابزار گزارشدهی تعاملی و مقیاسپذیری ایجاد میکند که از قدرت محاسباتی BigQuery برای ارائه دادههای تجمیعی «اطلاعات آماری مکانها» به Data Studio استفاده میکند. این معماری از مشکلات تلاش برای تصویرسازی مجموعههای داده خام عظیم جلوگیری میکند و به کاربران نهایی این انعطافپذیری را میدهد که دادهها را در ابعاد مختلف، مانند زمان، مکان، و نوع کسبوکار، تقریباً بهصورت همزمان کاوش کنند. این ابزاری قدرتمند است که به ذینفعان غیرفنی شما امکان میدهد دادهها را بهصورت انعطافپذیر کاوش کنند.
مراحل بعدی
با پارامتری کردن بخشهای مختلف طرحواره «اطلاعات آماری مکانها»، تنوعهای دیگر گزارشهای پویا را کاوش کنید:
- تجزیهوتحلیل پویای رقبا: پارامتری برای
brandنام ایجاد کنید تا به کاربران امکان دهد نقشه حرارتی را بین رقبای مختلف بهسرعت تغییر دهند و میزان اشباع نسبی آنها را در بازار ببینند. برای اطلاع از دردسترس بودن دادههای نمانام، به درباره دادههای اطلاعات آماری مکانها مراجعه کنید. - انتخاب سایت تعاملی: پارامترهایی را برای
price_level(برای نمونه، «متوسط» دربرابر «گران») و حداقلratingاضافه کنید تا تیمهای املاک بتوانند بهطور پویا برای مناطقی که با نمایههای جمعیتشناسی خاص مطابقت دارند فیلتر کنند. - مناطق آبریز سفارشی: بهجای فیلتر کردن براساس نام شهر، به کاربران اجازه دهید
مناطق مطالعه سفارشی تعریف کنند.
- مبتنی بر شعاع: سه پارامتر عددی ایجاد کنید: p_latitude،
p_longitude، و p_radius_meters. میتوانید مختصات را از
Google Maps Platform APIs، ازجمله Geocoding API، دریافت کنید. در پُرسمان شما،
اینها را به تابع ST_DWITHIN تزریق کنید:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- چندضلعیمحور: برای شکلهای سفارشی پیچیده (مثل قلمروهای فروش)،
کاربران نمیتوانند بهراحتی نوشتار هندسی وارد کنند. بهجای آن، جدول جستجویی
در BigQuery ایجاد کنید که حاوی هندسههای شکل و نامی دوستانه (برای نمونه،
"منطقه A") باشد. پارامتر نوشتاری
p_zone_nameرا در Data Studio ایجاد کنید تا به کاربران امکان دهید منطقه را انتخاب کنند و از پُرسمان فرعی برای بازیابی هندسه تابعST_CONTAINSاستفاده کنید.
- مبتنی بر شعاع: سه پارامتر عددی ایجاد کنید: p_latitude،
p_longitude، و p_radius_meters. میتوانید مختصات را از
Google Maps Platform APIs، ازجمله Geocoding API، دریافت کنید. در پُرسمان شما،
اینها را به تابع ST_DWITHIN تزریق کنید:
همیاران
- David Szajngarten | مهندس روابط توسعهدهندگان
- Henrik Valve | مهندس DevX