ภาพรวม

เอกสารนี้อธิบายวิธีสร้างรายงานภูมิสารสนเทศเชิงพื้นที่แบบไดนามิกโดยใช้ Places Insights และ Data Studio ปลดล็อกคุณค่าของข้อมูลสถานที่ตั้งด้วยการมอบอำนาจให้ผู้มีส่วนร่วมที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิคสามารถตอบคำถามของตนเองได้ คู่มือนี้แสดงวิธีเปลี่ยนรายงานแบบคงที่ให้เป็นเครื่องมือแบบอินเทอร์แอกทีฟสไตล์ฮีตแมปสำหรับการวิเคราะห์ตลาด โดยไม่ต้องเขียน SQL สำหรับคำขอแต่ละรายการ เปิดใช้การเข้าถึงข้อมูลสถานที่ตั้งที่ซับซ้อน ซึ่งจะช่วยลดช่องว่างระหว่างวิศวกรรมข้อมูลกับระบบธุรกิจอัจฉริยะ
การใช้รูปแบบสถาปัตยกรรมนี้จะช่วยให้ได้สิทธิประโยชน์หลักๆ หลายประการ ดังนี้
- การแสดงข้อมูลเป็นภาพ: เปลี่ยนข้อมูลเชิงลึกเกี่ยวกับสถานที่ให้เป็นแผนที่และแผนภูมิแบบอินเทอร์แอกทีฟที่สื่อสารความหนาแน่นและแนวโน้มเชิงพื้นที่ได้ทันที
- การสำรวจที่ง่ายขึ้นโดยไม่ต้องใช้ SQL: ช่วยให้สมาชิกในทีม เช่น นักวิเคราะห์ตลาดหรือนักวางแผนอสังหาริมทรัพย์ กรองข้อมูลแบบไดนามิกโดยใช้พารามิเตอร์ที่กำหนดไว้ล่วงหน้า (เช่น การเปลี่ยน "เมือง" หรือ "ช่วงเวลาของวัน" โดยใช้เมนูแบบเลื่อนลง) โดยสมาชิกในทีมจะสำรวจข้อมูลได้โดยไม่ต้องเขียน SQL แม้แต่บรรทัดเดียว
- การทำงานร่วมกันอย่างราบรื่น: ฟีเจอร์การแชร์ Data Studio มาตรฐานช่วยให้คุณเผยแพร่ข้อมูลเชิงลึกแบบอินเทอร์แอกทีฟเหล่านี้ได้อย่างปลอดภัย
เวิร์กโฟลว์ของโซลูชัน
เวิร์กโฟลว์ต่อไปนี้สร้างสถาปัตยกรรมการรายงานที่มีประสิทธิภาพ โดยจะเปลี่ยนจากพื้นฐานแบบคงที่ไปเป็นแอปพลิเคชันแบบไดนามิกอย่างเต็มรูปแบบ เพื่อให้มั่นใจว่าข้อมูลถูกต้องก่อนที่จะเพิ่มความซับซ้อน
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น ให้ทำตามวิธีการต่อไปนี้เพื่อตั้งค่า Places Insights คุณจะต้องมีสิทธิ์เข้าถึงData Studio, ซึ่งเป็นเครื่องมือที่ไม่มีค่าใช้จ่าย
ขั้นตอนที่ 1: สร้างพื้นฐานภูมิสารสนเทศเชิงพื้นที่แบบคงที่
สร้างการค้นหาพื้นฐานและตรวจสอบว่าการค้นหาแสดงผลอย่างถูกต้องใน Data Studio ก่อนที่จะเพิ่มฟีเจอร์แบบอินเทอร์แอกทีฟ ใช้ข้อมูลเชิงลึกเกี่ยวกับสถานที่ และความสามารถด้านภูมิสารสนเทศเชิงพื้นที่ของ 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 ซึ่งเป็นระบบที่แบ่งโลกออกเป็นเซลล์กริดหกเหลี่ยม
เราใช้การแปลงนี้เนื่องจากแผนที่แบบแบ่งตามสีของ Data Studio ต้องใช้รูปหลายเหลี่ยม (รูปร่าง) เพื่อแสดงสี การแปลงจุดให้เป็นรูปร่างหกเหลี่ยมช่วยให้เราแสดงภาพความหนาแน่นของธุรกิจในพื้นที่ที่เฉพาะเจาะจงได้ แทนที่จะพล็อตจุดที่ซ้อนทับกันหลายพันจุด
หมายเหตุเกี่ยวกับเกณฑ์การรวม
การค้นหา Places Insights ทั้งหมดต้องมีอนุประโยค WITH AGGREGATION_THRESHOLD
การคุ้มครองความเป็นส่วนตัวนี้ช่วยให้มั่นใจได้ว่าระบบจะแสดงข้อมูลก็ต่อเมื่อจำนวนรวมเป็น 5 ขึ้นไปเท่านั้น
ในบริบทของการแสดงภาพนี้ หากเซลล์กริด H3 มีร้านอาหารน้อยกว่า 5 แห่ง ระบบจะละเว้นเซลล์นั้นออกจากชุดผลลัพธ์ทั้งหมดและเซลล์นั้นจะปรากฏเป็นเซลล์ว่างบนแผนที่
วิธีใช้ฟังก์ชันนี้ใน Data Studio
- สร้างรายงานว่าง ใหม่
- เลือก BigQuery เป็นเครื่องมือเชื่อมต่อข้อมูล
- เลือก การค้นหาที่กำหนดเอง จากเมนูด้านซ้าย แล้วเลือกรหัสโปรเจ็กต์สำหรับการเรียกเก็บเงิน
- วางการค้นหาพื้นฐานแบบคงที่ ด้านบนลงในตัวแก้ไข
- ล้างพารามิเตอร์ใช้ SQL แบบเดิม เปิดใช้ช่วงวันที่ และเปิดใช้อีเมลของผู้ดู ที่อยู่
- คลิกเพิ่ม
1.2 กำหนดค่าการแสดงภาพภูมิสารสนเทศเชิงพื้นที่
เมื่อเชื่อมต่อข้อมูลแล้ว ให้กำหนดค่า Data Studio เพื่อให้รับรู้ข้อมูลขอบเขต H3 อย่างถูกต้องโดยทำดังนี้
- เพิ่มการแสดงภาพแผนที่แบบแบ่งตามสี ลงในพื้นที่ทำงานของรายงานจากเมนูเพิ่มแผนภูมิ
- ตรวจสอบว่าได้ตั้งค่าช่อง
h3_geoซึ่งมีรูปหลายเหลี่ยมเป็นรูปทรงเรขาคณิตเป็นประเภทข้อมูลภูมิสารสนเทศเชิงพื้นที่- คลิกไอคอนแก้ไขแหล่งข้อมูล (ดินสอ) ข้างชื่อการเชื่อมต่อ
- หากตั้งค่า
h3_geoเป็นข้อความ (ABC) ให้ใช้เมนูแบบเลื่อนลงเพื่อเลือก ภูมิศาสตร์ > ภูมิสารสนเทศเชิงพื้นที่ - คลิกเสร็จสิ้น
- แมปช่อง
h3_indexกับสถานที่ตั้ง (ทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกัน) - แมปช่อง
h3_geoกับช่องภูมิสารสนเทศเชิงพื้นที่ (ทำหน้าที่เป็นรูปหลายเหลี่ยมเป็นรูปทรงเรขาคณิต) - แมปช่อง
restaurant_countกับเมตริกสี
การดำเนินการนี้จะแสดงแผนที่ความหนาแน่นของร้านอาหารตามเซลล์ H3 สีน้ำเงินเข้ม (ตัวเลือกสีเริ่มต้น) แสดงถึงเซลล์ที่มีจำนวนร้านอาหารสูงกว่า

ขั้นตอนที่ 2: ใช้พารามิเตอร์แบบไดนามิก
หากต้องการให้รายงานเป็นแบบอินเทอร์แอกทีฟ เราจะเพิ่มส่วนควบคุมลงในรายงานเพื่อให้ผู้ใช้เลือกจากตัวเลือกต่อไปนี้ได้
- ท้องถิ่น: ควบคุมเมืองที่รายงานมุ่งเน้น
- วันในสัปดาห์: กรองสถานที่ตามวันที่เปิดทำการ โดยใช้ประโยชน์จากระเบียน
regular_opening_hoursในสคีมา - ชั่วโมงของวัน: กรองสถานที่ตามเวลาทำการโดยเปรียบเทียบกับช่อง
start_timeและend_time
หากต้องการทำเช่นนี้ คุณจะต้องส่งพารามิเตอร์ที่ผู้ใช้เลือกไปยังการค้นหาข้อมูลเชิงลึกเกี่ยวกับสถานที่ที่แก้ไขแล้วโดยตรงในขณะรันไทม์ ในตัวแก้ไขแหล่งข้อมูลของ Data Studio คุณต้องกำหนดพารามิเตอร์เหล่านี้อย่างชัดเจนเป็นตัวแปรที่มีประเภท
ใน Data Studio ให้เลือกเมนูแหล่งข้อมูล แล้วคลิกจัดการแหล่งข้อมูลที่เพิ่ม ในแผงที่ปรากฏขึ้น ให้เลือก EDIT กับ
แหล่งข้อมูล BigQuery Custom SQL ที่เราเพิ่มไว้ก่อนหน้านี้
ในหน้าต่างแก้ไขการเชื่อมต่อ ให้เลือกเพิ่มพารามิเตอร์ เราจะเพิ่มพารามิเตอร์ 3 รายการที่มีค่าดังต่อไปนี้
| ชื่อพารามิเตอร์ | ประเภทข้อมูล | ค่าที่อนุญาต | รายการค่า (ต้องตรงกับค่าในฐานข้อมูลทุกประการ) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 (นาฬิกา 24 ชั่วโมง) อย่างเคร่งครัด
เมื่อตั้งค่าและบันทึกพารามิเตอร์ทั้ง 3 รายการแล้ว ให้แก้ไขการเชื่อมต่อ 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 ซึ่งสัมพันธ์กับชื่อพารามิเตอร์ที่เราเพิ่งตั้งค่า
กลับไปที่พื้นที่ทำงานของรายงานเพื่อแสดงพารามิเตอร์เหล่านี้ต่อผู้ใช้ปลายทางโดยทำดังนี้
- เพิ่มส่วนควบคุมรายการแบบเลื่อนลง 3 รายการลงในรายงาน
- สำหรับส่วนควบคุมแต่ละรายการ ให้ตั้งค่าช่องควบคุม ให้สอดคล้องกับพารามิเตอร์ที่สร้างขึ้นใหม่ ดังนี้
- ส่วนควบคุม 1:
p_locality - ส่วนควบคุม 2:
p_day_of_week - ส่วนควบคุม 3:
p_hour_of_day
- ส่วนควบคุม 1:
รายงานขั้นสุดท้ายควรมีลักษณะดังต่อไปนี้ การเปลี่ยนค่าในส่วนควบคุมแบบเลื่อนลงรายการใดรายการหนึ่งจะทริกเกอร์ให้ Data Studio ดึงข้อมูลที่ขอจากข้อมูลเชิงลึกเกี่ยวกับสถานที่ก่อนที่จะแสดงภาพบนแผนที่

ขั้นตอนที่ 3: แชร์ผลลัพธ์
ใช้เครื่องมือการแชร์ ที่มาพร้อมกับ Data Studio เพื่อแชร์รายงาน ซึ่งจะช่วยให้ผู้ดูอัปเดตการแสดงภาพแบบไดนามิกตามพารามิเตอร์ที่เลือกจากรายการแบบเลื่อนลงได้
บทสรุป
รูปแบบนี้สร้างเครื่องมือการรายงานแบบอินเทอร์แอกทีฟที่ปรับขนาดได้ ซึ่งใช้ประโยชน์จากพลังการประมวลผลของ BigQuery เพื่อแสดงข้อมูลเชิงลึกเกี่ยวกับสถานที่แบบรวมต่อ Data Studio สถาปัตยกรรมนี้หลีกเลี่ยงข้อผิดพลาดจากการพยายามแสดงภาพชุดข้อมูลดิบขนาดใหญ่ และช่วยให้ผู้ใช้ปลายทางมีความยืดหยุ่นในการสำรวจข้อมูลในมิติต่างๆ เช่น เวลา สถานที่ตั้ง และประเภทธุรกิจ แบบเกือบเรียลไทม์ ซึ่งเป็นเครื่องมือที่มีประสิทธิภาพในการมอบความยืดหยุ่นให้ผู้มีส่วนร่วมที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิคสามารถสำรวจข้อมูลได้
ขั้นตอนถัดไป
สำรวจรายงานแบบไดนามิกอื่นๆ โดยกำหนดพารามิเตอร์ให้กับส่วนต่างๆ ของสคีมาข้อมูลเชิงลึกเกี่ยวกับสถานที่ ดังนี้
- การวิเคราะห์คู่แข่งแบบไดนามิก: สร้างพารามิเตอร์สำหรับชื่อ
brandเพื่อให้ผู้ใช้เปลี่ยนแผนที่ความหนาแน่นระหว่างคู่แข่งต่างๆ ได้ทันทีเพื่อดูความอิ่มตัวสัมพัทธ์ในตลาด ดูข้อมูลเกี่ยวกับความพร้อมใช้งานของข้อมูลแบรนด์ - การเลือกสถานที่แบบอินเทอร์แอกทีฟ: เพิ่มพารามิเตอร์สำหรับ
price_level(เช่น "ปานกลาง" เทียบกับ "แพง") และratingขั้นต่ำ เพื่อให้ทีมอสังหาริมทรัพย์กรองพื้นที่ที่ตรงกับโปรไฟล์ประชากรที่เฉพาะเจาะจงแบบไดนามิกได้ - พื้นที่ครอบคลุมที่กำหนดเอง: อนุญาตให้ผู้ใช้กำหนดพื้นที่ศึกษาที่กำหนดเองแทนการกรองตามชื่อเมือง
- อิงตามรัศมี: สร้างพารามิเตอร์ตัวเลข 3 รายการ ได้แก่ p_latitude, p_longitude และ p_radius_meters คุณสามารถรับพิกัดจาก Google Maps Platform API รวมถึง 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
- อิงตามรัศมี: สร้างพารามิเตอร์ตัวเลข 3 รายการ ได้แก่ p_latitude, p_longitude และ p_radius_meters คุณสามารถรับพิกัดจาก Google Maps Platform API รวมถึง Geocoding API และแทรกพิกัดเหล่านี้ลงในฟังก์ชัน ST_DWITHIN ในการค้นหา ดังนี้
ผู้ร่วมให้ข้อมูล
- David Szajngarten | วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์
- เฮนริก วาล์ว | วิศวกร DevX