แสดงข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่แบบไดนามิกด้วย Looker Studio

ภาพรวม

แผนภาพเวิร์กโฟลว์ที่แสดง Looker Studio ส่งพารามิเตอร์แบบไดนามิกสำหรับเมือง วัน และเวลาไปยังข้อมูลเชิงลึกเกี่ยวกับสถานที่ใน BigQuery เพื่อสร้างฮีตแมปความหนาแน่นเชิงพื้นที่

เอกสารนี้อธิบายวิธีสร้างรายงานเชิงพื้นที่แบบไดนามิกโดยใช้ ข้อมูลเชิงลึกเกี่ยวกับสถานที่ และ Looker Studio ปลดล็อกศักยภาพของข้อมูลตำแหน่งด้วยการช่วยให้ผู้มีส่วนเกี่ยวข้องที่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิคสามารถตอบคำถามของตนเองได้ คู่มือนี้จะแสดงวิธีเปลี่ยนรายงานแบบคงที่ให้เป็นเครื่องมือแบบอินเทอร์แอกทีฟในรูปแบบฮีตแมปสำหรับการวิเคราะห์ตลาด โดยไม่ต้องเขียน SQL สำหรับทุกคำขอ เปิดใช้การเข้าถึงข้อมูลตำแหน่งที่ซับซ้อน เพื่อเชื่อมช่องว่างระหว่างวิศวกรรมข้อมูลกับ Business Intelligence

การใช้รูปแบบสถาปัตยกรรมนี้จะช่วยให้ได้รับประโยชน์หลักๆ หลายประการ ดังนี้

  • การแสดงข้อมูลด้วยภาพ: แปลงข้อมูลข้อมูลเชิงลึกเกี่ยวกับสถานที่ให้เป็น แผนที่และแผนภูมิแบบอินเทอร์แอกทีฟที่สื่อถึงความหนาแน่นเชิงพื้นที่และ แนวโน้มได้ทันที
  • การสํารวจแบบง่ายโดยไม่ต้องใช้ 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

  1. สร้างรายงาน เปล่าใหม่
  2. เลือก BigQuery เป็นเครื่องมือเชื่อมต่อข้อมูล
  3. เลือกคำค้นหาที่กำหนดเองจากเมนูด้านซ้าย แล้วเลือกรหัสโปรเจ็กต์สำหรับการเรียกเก็บเงิน
  4. วางคำค้นหาฐานแบบคงที่ด้านบนลงในตัวแก้ไข
  5. ล้างพารามิเตอร์ใช้ SQL เดิม เปิดใช้ช่วงวันที่ และเปิดใช้อีเมลของผู้ดู
  6. คลิกเพิ่ม

1.2 กำหนดค่าการแสดงภาพเชิงพื้นที่

เมื่อเชื่อมต่อข้อมูลแล้ว ให้กำหนดค่า Looker Studio เพื่อให้รับรู้ข้อมูลขอบเขต H3 อย่างถูกต้องโดยทำดังนี้

  1. เพิ่มการแสดงข้อมูลแผนที่แบบแบ่งตามสีลงใน Report Canvas ของรายงานจากเมนูเพิ่มแผนภูมิ
  2. ตรวจสอบว่าฟิลด์ h3_geo ซึ่งมีรูปหลายเหลี่ยมทางเรขาคณิตได้รับการตั้งค่าเป็นประเภทข้อมูลภูมิสารสนเทศเชิงพื้นที่
    1. คลิกไอคอนแก้ไขแหล่งข้อมูล (ดินสอ) ข้างชื่อการเชื่อมต่อ
    2. หากตั้งค่า h3_geo เป็นข้อความ (ABC) ให้ใช้เมนูแบบเลื่อนลงเพื่อเลือก Geo > Geospatial
    3. คลิกเสร็จสิ้น
  3. แมปฟิลด์ h3_index กับ Location (ทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกัน)
  4. แมปฟิลด์ h3_geo กับฟิลด์ภูมิสารสนเทศเชิงพื้นที่ (ทำหน้าที่เป็นรูปหลายเหลี่ยม เรขาคณิต)
  5. แมปฟิลด์ restaurant_count กับเมตริกสี

การดำเนินการนี้จะแสดงแผนที่ความหนาแน่นของร้านอาหารตามเซลล์ H3 สีน้ำเงินเข้ม (ตัวเลือกสีเริ่มต้น) แสดงถึงเซลล์ที่มีจำนวนร้านอาหารสูงกว่า

แผนที่แบบแบ่งตามสีของลอนดอนที่วางซ้อนด้วยตารางหกเหลี่ยม โดยเซลล์สีน้ำเงินเข้มแสดงถึงความหนาแน่นของร้านอาหารที่สูงขึ้น คำอธิบายระบุจำนวนความหนาแน่นตั้งแต่ 5 ถึง 1,215

ขั้นตอนที่ 2: ติดตั้งใช้งานพารามิเตอร์แบบไดนามิก

เราจะเพิ่มตัวควบคุมลงในรายงานเพื่อให้ผู้ใช้เลือกตัวเลือกต่อไปนี้ได้ เพื่อทำให้รายงานเป็นแบบอินเทอร์แอกทีฟ

  • ท้องถิ่น: ควบคุมเมืองที่รายงานมุ่งเน้น
  • วันของสัปดาห์: กรองสถานที่ตามวันที่เปิดทำการ โดยใช้regular_opening_hoursบันทึกในสคีมา
  • ชั่วโมงของวัน: กรองสถานที่ตามเวลาทำการโดย เปรียบเทียบกับฟิลด์ start_time และ end_time

หากต้องการดำเนินการนี้ คุณจะต้องส่งพารามิเตอร์ที่ผู้ใช้เลือกไปยังคำค้นหาข้อมูลเชิงลึกเกี่ยวกับสถานที่ที่แก้ไขแล้วโดยตรงในขณะรันไทม์ ในเครื่องมือแก้ไขแหล่งข้อมูลของ Looker Studio คุณ ต้องกําหนดพารามิเตอร์เหล่านี้อย่างชัดเจนเป็นตัวแปรที่พิมพ์

ใน Looker Studio ให้เลือกเมนูแหล่งข้อมูล แล้วคลิกจัดการแหล่งข้อมูลที่เพิ่ม ในแผงที่ปรากฏขึ้น ให้เลือก EDIT ข้างแหล่งข้อมูล SQL ที่กำหนดเองของ BigQuery ที่เราเพิ่มไว้ก่อนหน้านี้

ในหน้าต่าง "แก้ไขการเชื่อมต่อ" ให้เลือกเพิ่มพารามิเตอร์ เราจะ เพิ่มพารามิเตอร์ 3 รายการโดยมีค่าดังต่อไปนี้

ชื่อพารามิเตอร์ ประเภทข้อมูล ค่าที่อนุญาต รายการค่า (ต้องตรงกับ DB ทุกประการ)
p_locality ข้อความ รายการค่า
ค่า ป้ายกำกับ
London ลอนดอน
Manchester แมนเชสเตอร์
Birmingham เบอร์มิงแฮม
Glasgow กลาสโกว์
p_day_of_week ข้อความ รายการค่า
ค่า ป้ายกำกับ
monday วันจันทร์
tuesday อังคาร
wednesday พุธ
thursday พฤหัสบดี
friday ศุกร์
saturday เสาร์
sunday วันอาทิตย์
p_hour_of_day ข้อความ รายการค่า
ค่า ป้ายกำกับ
03:00:00 03:00 น. - 04:00 น.
08:00:00 08:00 น. - 09:00 น.
19:00:00 19:00 น. - 20:00 น.

ตัวอย่างการกำหนดค่าสำหรับพารามิเตอร์ 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 ซึ่งสัมพันธ์กับชื่อพารามิเตอร์ที่เราเพิ่งตั้งค่า

กลับไปที่ Report Canvas เพื่อแสดงพารามิเตอร์เหล่านี้ต่อผู้ใช้ปลายทาง

  1. เพิ่มตัวควบคุมรายการแบบเลื่อนลง 3 รายการลงในรายงาน
  2. สําหรับการควบคุมแต่ละรายการ ให้ตั้งค่าฟิลด์การควบคุมให้สอดคล้องกับพารามิเตอร์ที่สร้างขึ้นใหม่
    • การควบคุม 1: p_locality
    • การควบคุม 2: p_day_of_week
    • การควบคุม 3: p_hour_of_day

รายงานขั้นสุดท้ายควรมีลักษณะดังต่อไปนี้ การเปลี่ยนค่าในตัวควบคุมแบบเลื่อนลงรายการใดรายการหนึ่งจะทําให้ Looker Studio ดึงข้อมูลที่ขอจากข้อมูลเชิงลึกเกี่ยวกับสถานที่ก่อนที่จะแสดงเป็นภาพบนแผนที่

รายงานแบบอินเทอร์แอกทีฟสุดท้ายแสดงแผนที่ความหนาแน่นของร้านอาหารในกลาสโกว์พร้อมตัวกรองแบบเลื่อนลง 3 รายการที่ด้านบน เมนูชั่วโมงของวันจะขยายออกเพื่อแสดงช่วงเวลาที่เลือกได้

ขั้นตอนที่ 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 ที่มีเรขาคณิตของรูปร่างและชื่อที่เข้าใจง่าย (เช่น "โซน A") สร้างพารามิเตอร์ข้อความ p_zone_name ใน Looker Studio เพื่อให้ผู้ใช้เลือกโซน และใช้คำสั่งย่อยเพื่อดึงข้อมูลเรขาคณิตสำหรับฟังก์ชัน ST_CONTAINS

ผู้ร่วมให้ข้อมูล

  • David Szajngarten | วิศวกรนักพัฒนาซอฟต์แวร์สัมพันธ์
  • Henrik Valve | วิศวกร DevX