نمای کلی

این سند نحوه ساختن گزارشهای جغرافیایی-فضایی پویا را بااستفاده از اطلاعات آماری جاها و Data Studio شرح میدهد. با توانمندسازی ذینفعان غیرفنی برای پاسخ دادن به سؤالات خودشان، ارزش دادههای مکانتان را باز کنید. این راهنما به شما نشان میدهد که چگونه گزارشهای ایستا را به ابزارهای تعاملی به سبک نقشه حرارتی برای تحلیل بازار تبدیل کنید، بدون اینکه لازم باشد برای هر درخواست SQL بنویسید. دسترسی به دادههای پیچیده مکان را فعال کنید و فاصله بین مهندسی داده و هوش کسبوکار را ازبین ببرید.
اتخاذ این الگوی معماری چندین مزیت کلیدی را بههمراه دارد:
- نمایش دیداری دادهها: دادههای «اطلاعات آماری جاها» را به نقشهها و نمودارهای تعاملی تبدیل میکند که فوراً تراکم و روندهای فضایی را منتقل میکنند.
- کاوش سادهشده بدون SQL: به اعضای تیم، مانند تحلیلگران بازار یا برنامهریزان املاک و مستغلات، امکان میدهد تا دادهها را بهطور پویا بااستفاده از پارامترهای ازپیشتعریفشده (مثلاً تغییر «شهر» یا «زمان روز» بااستفاده از منوهای کرکرهای) فیلتر کنند. آنها میتوانند دادهها را بدون نوشتن حتی یک خط SQL کاوش کنند.
- مشارکت یکپارچه: ویژگیهای همرسانی استاندارد Data Studio به شما امکان میدهد این اطلاعات آماری تعاملی را بهطور ایمن توزیع کنید.
گردش کار راهحل
گردش کار زیر معماری گزارشدهی کارآمدی را ایجاد میکند. این برنامه از یک خط پایه ایستا به یک برنامه کاملاً پویا تبدیل میشود و قبلاز معرفی پیچیدگی، از صحت دادهها اطمینان حاصل میکند.
پیشنیازها
قبلاز شروع، این دستورالعملها را برای راهاندازی «اطلاعات آماری جاها» دنبال کنید. به دسترسی به Data Studio نیاز دارید، که ابزاری بدون هزینه است.
Step 1: Establish a Static Geospatial Baseline
قبلاز معرفی تعامل، یک پُرسمان پایه ایجاد کنید و مطمئن شوید که بهدرستی در 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 که قبلاً اضافه کردیم انتخاب کنید.
در پنجره «ویرایش اتصال»، افزودن پارامتر را انتخاب کنید. میخواهیم سه پارامتر با مقادیر زیر اضافه کنیم.
| نام پارامتر | نوع داده | مقادیر مجاز | فهرست مقادیر (باید دقیقاً با DB مطابقت داشته باشد) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 (ساعت ۲۴ ساعته) باشد.
وقتی هر سه پارامتر را راهاندازی و ذخیره کردید، اتصال 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 توجه کنید که با نامهای پارامتری که بهتازگی راهاندازی کردیم مرتبط هستند.
به بوم گزارش برگردید تا این پارامترها را برای کاربر نهایی نمایان کنید:
- سه کنترل فهرست کرکرهای به گزارش خود اضافه کنید.
- برای هر کنترل، فیلد کنترل را طوری تنظیم کنید که با پارامترهای جدیدی که ایجاد کردهاید مطابقت داشته باشد:
- بازوی کنترل ۱:
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، ازجمله Geocoding API، دریافت کرد. در پُرسمانتان،
این موارد را به تابع ST_DWITHIN تزریق کنید:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- مبتنی بر چندضلعی: برای شکلهای سفارشی پیچیده (مانند قلمروهای فروش)،
کاربران نمیتوانند بهراحتی نوشتار هندسی وارد کنند. بهجای آن، جدول جستجویی در BigQuery ایجاد کنید که حاوی هندسههای شکل شما و نامی آشنا (مثلاً «منطقه الف») باشد. پارامتر نوشتاری
p_zone_nameرا در Looker Studio ایجاد کنید تا به کاربران اجازه دهید منطقه را انتخاب کنند، و از زیرپرسوجو برای بازیابی هندسه تابعST_CONTAINSاستفاده کنید.
- مبتنی بر شعاع: سه پارامتر عددی ایجاد کنید: p_latitude،
p_longitude، و p_radius_meters. مختصات را میتوان از میاناهای برنامهسازی کاربردی Google Maps Platform، ازجمله Geocoding API، دریافت کرد. در پُرسمانتان،
این موارد را به تابع ST_DWITHIN تزریق کنید:
همیاران
- دیوید شاینگارتن | مهندس روابط توسعهدهندگان
- هنریک والو | مهندس DevX