ภาพรวม

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

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

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