Looker Studio를 사용하여 장소 통계 데이터 동적으로 시각화하기

개요

Looker Studio가 BigQuery의 장소 통계에 도시, 요일, 시간에 관한 동적 매개변수를 전송하여 지리 공간 밀도 히트맵을 생성하는 워크플로 다이어그램

이 문서에서는 Places InsightsLooker Studio를 사용하여 동적 지리정보 보고서를 빌드하는 방법을 설명합니다. 기술적 배경이 없는 이해관계자가 직접 질문에 답할 수 있도록 지원하여 위치 데이터의 가치를 창출하세요. 이 가이드에서는 모든 요청에 대해 SQL을 작성하지 않고도 정적 보고서를 시장 분석을 위한 대화형 히트맵 스타일 도구로 전환하는 방법을 보여줍니다. 데이터 엔지니어링과 비즈니스 인텔리전스 간의 격차를 해소하여 복잡한 위치 데이터에 대한 액세스를 사용 설정합니다.

이 아키텍처 패턴을 채택하면 다음과 같은 몇 가지 주요 이점을 얻을 수 있습니다.

  • 시각적 데이터 표현: Places Insights 데이터를 공간 밀도와 추세를 즉시 전달하는 대화형 지도와 차트로 변환합니다.
  • SQL 없는 간소화된 탐색: 시장 분석가 또는 부동산 기획자와 같은 팀원이 사전 정의된 매개변수 (예: 드롭다운을 사용하여 '도시' 또는 '시간' 변경)를 사용하여 데이터를 동적으로 필터링할 수 있도록 지원합니다. SQL을 한 줄도 작성하지 않고 데이터를 탐색할 수 있습니다.
  • 원활한 공동작업: 표준 Looker Studio 공유 기능을 사용하면 이러한 대화형 유용한 정보를 안전하게 배포할 수 있습니다.

솔루션 워크플로

다음 워크플로는 성능이 우수한 보고 아키텍처를 설정합니다. 정적 기준선에서 완전히 동적인 애플리케이션으로 이동하여 복잡성을 도입하기 전에 데이터 정확성을 보장합니다.

기본 요건

시작하기 전에 다음 안내에 따라 Places Insights를 설정하세요. 무료 도구인 Looker Studio에 액세스할 수 있어야 합니다.

1단계: 정적 지리정보 기준선 설정

상호작용을 도입하기 전에 기본 쿼리를 설정하고 Looker Studio에서 올바르게 렌더링되는지 확인합니다. Places Insights 및 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;

공간 집계 참고사항

이 쿼리는 Google Cloud BigQuery에서 공개적으로 사용할 수 있는 CARTO Analytics Toolbox (carto-os)의 함수를 사용합니다. H3_FROMGEOGPOINT 함수는 특정 위치 지점을 H3 셀로 변환합니다. 세계를 육각형 그리드 셀로 나누는 시스템입니다.

Looker Studio의 채워진 지도에서 색상을 렌더링하려면 다각형(도형)이 필요하므로 이 변환을 사용합니다. 점을 육각형 도형으로 변환하면 수천 개의 겹치는 점을 표시하는 대신 특정 지역의 비즈니스 밀도를 시각화할 수 있습니다.

집계 기준점 참고사항

모든 Places Insights 쿼리에는 WITH AGGREGATION_THRESHOLD 절이 필요합니다. 이 개인 정보 보호는 집계된 개수가 5개 이상인 경우에만 데이터가 반환되도록 보장합니다.

이 시각화의 컨텍스트에서 H3 그리드 셀에 5개 미만의 음식점이 포함되어 있으면 해당 셀은 결과 집합에서 완전히 생략되고 지도에 비어 있는 것으로 표시됩니다.

Looker Studio에서 이를 구현하려면 다음 단계를 따르세요.

  1. 빈 보고서 를 만듭니다.
  2. 데이터 커넥터로 BigQuery 를 선택합니다.
  3. 왼쪽 메뉴에서 커스텀 쿼리 를 선택하고 결제 프로젝트 ID 를 선택합니다.
  4. 위의 정적 기본 쿼리 를 편집기에 붙여넣습니다.
  5. 레거시 SQL 사용, 기간 사용 설정, 조회자 이메일 주소 사용 설정 매개변수를 지웁니다.
  6. 추가 를 클릭합니다.

1.2 지리정보 시각화 구성

데이터가 연결되면 Looker Studio가 H3 경계 데이터를 올바르게 인식하도록 구성합니다.

  1. 차트 추가 메뉴에서 보고서 캔버스에 채워진 지도 시각화를 추가합니다.
  2. 다각형 도형이 포함된 h3_geo 필드가 지리정보 데이터 유형으로 설정되어 있는지 확인합니다.
    1. 연결 이름 옆에 있는 데이터 소스 수정 (연필) 아이콘을 클릭합니다.
    2. h3_geo텍스트 (ABC)로 설정되어 있으면 드롭다운 메뉴를 사용하여 지리 > 지리정보를 선택합니다.
    3. 완료 를 클릭합니다.
  3. h3_index 필드를 위치 (고유 식별자 역할)에 매핑합니다.
  4. h3_geo 필드를 지리정보 필드 (다각형 도형 역할)에 매핑합니다.
  5. restaurant_count 필드를 색상 측정항목 에 매핑합니다.

이렇게 하면 H3 셀별 음식점 밀도 지도가 렌더링됩니다. 더 어두운 파란색(기본 색상 옵션)은 음식점 개수가 더 많은 셀을 나타냅니다.

육각형 그리드가 겹쳐진 런던의 채워진 지도입니다. 파란색이 진한 셀은 레스토랑의 밀도가 높다는 것을 나타냅니다. 범례는 밀도 수가 5~1,215임을 나타냅니다.

2단계: 동적 매개변수 구현

보고서를 대화형으로 만들기 위해 사용자가 다음 옵션 중에서 선택할 수 있는 컨트롤을 보고서에 추가합니다.

  • 지역: 보고서에서 중점을 두는 도시를 제어합니다.
  • 요일: 스키마의 regular_opening_hours 레코드를 활용하여 영업일을 기준으로 장소를 필터링합니다.
  • 시간: start_timeend_time 필드와 비교하여 운영 시간을 기준으로 장소를 필터링합니다.

이를 위해 사용자 선택 매개변수를 수정된 Places Insights 쿼리에 런타임에 직접 전달합니다. Looker Studio의 데이터 소스 편집기에서 이러한 매개변수를 유형이 지정된 변수로 명시적으로 정의해야 합니다.

Looker Studio에서 리소스 메뉴를 선택한 다음 추가된 데이터 소스 관리 를 클릭합니다. 표시되는 패널에서 이전에 추가한 BigQuery 커스텀 SQL 데이터 소스에 대해 EDIT 를 선택합니다.

연결 수정 창에서 매개변수 추가 를 선택합니다. 아래 값을 사용하여 매개변수 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 오전 3시~오전 4시
08:00:00 오전 8시~오전 9시
19:00:00 오후 7시~오후 8시

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시간 시계)이어야 합니다.

세 매개변수를 모두 설정하고 저장한 후 BigQuery 커스텀 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와 같은 새 변수를 확인합니다.

보고서 캔버스로 돌아가서 최종 사용자에게 이러한 매개변수를 노출합니다.

  1. 보고서에 드롭다운 목록 컨트롤 3개를 추가합니다.
  2. 각 컨트롤에 대해 새로 만든 매개변수에 해당하는 컨트롤 필드 를 설정합니다.
    • 컨트롤 1: p_locality
    • 컨트롤 2: p_day_of_week
    • 컨트롤 3: p_hour_of_day

최종 보고서는 다음과 같습니다. 드롭다운 컨트롤 중 하나의 값을 변경하면 Looker Studio가 지도에 시각화하기 전에 Places Insights에서 요청된 데이터를 가져옵니다.

글래스고의 레스토랑 밀도 지도를 보여주는 최종 대화형 보고서로, 상단에 드롭다운 필터가 3개 있습니다. 선택 가능한 시간 범위를 표시하기 위해 시간 메뉴가 펼쳐집니다.

3단계: 결과 공유

Looker Studio에 내장된 공유 도구 를 사용하여 보고서를 공유합니다. 이렇게 하면 조회자가 드롭다운 목록에서 선택한 매개변수를 기반으로 시각화를 동적으로 업데이트할 수 있습니다.

결론

이 패턴은 BigQuery의 컴퓨팅 성능을 활용하여 집계된 Places Insights 데이터를 Looker Studio에 제공하는 확장 가능한 대화형 보고 도구를 만듭니다. 이 아키텍처는 대규모 원시 데이터 세트를 시각화하려고 할 때 발생하는 문제를 방지하고 최종 사용자에게 시간, 위치, 비즈니스 유형과 같은 다양한 측정기준에서 데이터를 거의 실시간으로 탐색할 수 있는 유연성을 제공합니다. 이는 기술적 배경이 없는 이해관계자에게 데이터를 탐색할 수 있는 유연성을 제공하는 강력한 도구입니다.

다음 단계

Places Insights 스키마의 여러 부분을 매개변수화하여 동적 보고서의 다른 변형을 살펴보세요.

  • 동적 경쟁업체 분석: 사용자가 다양한 경쟁업체 간에 히트맵을 즉시 전환하여 시장에서 상대적 포화도를 확인할 수 있도록 brand 이름의 매개변수를 만듭니다. 브랜드 데이터 가용성은 Places Insights 데이터 정보를 참고하세요.
  • 대화형 사이트 선택: 부동산 팀이 특정 인구통계 프로필과 일치하는 지역을 동적으로 필터링할 수 있도록 price_level (예: '보통' 대 '비쌈') 및 최소 rating의 매개변수를 추가합니다.
  • 맞춤 유입 지역: 도시 이름으로 필터링하는 대신 사용자가 맞춤 연구 지역을 정의할 수 있도록 허용합니다.
    • 반경 기반: 숫자 매개변수 3개(p_latitude, p_longitude, p_radius_meters)를 만듭니다. 좌표는 Geocoding API를 비롯한 Google Maps Platform API에서 가져올 수 있습니다. 쿼리에서 이를 ST_DWITHIN 함수에 삽입합니다.
      • ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
    • 다각형 기반: 판매 지역과 같은 복잡한 맞춤 도형의 경우 사용자가 도형 텍스트를 쉽게 입력할 수 없습니다. 대신 도형 도형과 친숙한 이름 (예: '구역 A')이 포함된 BigQuery에서 조회 테이블을 만듭니다. Looker Studio에서 텍스트 매개변수 p_zone_name을 만들어 사용자가 구역을 선택할 수 있도록 하고 하위 쿼리를 사용하여 ST_CONTAINS 함수의 도형을 가져옵니다.

참여자