Looker Studio(구 Data Studio)에서 위/경도 위치 데이터를 지도에 표시하는 방법을 정리해보았다.
다음 기능을 지원한다.
- 시/군/구 등의 단위로 그룹화해서 지도에 데이터(개수) 표시
- 그룹 단위를 시/도, 시/군/구, 읍/면/동 레벨로 변경 가능 (drill down)
- 데이터 개수에 따라 풍선 크기를 다르게 표시
- 풍선 도움말에 주소 표시
2021년 4월에 Data Studio(현 Looker Studio)에서 작업했던 내용을 정리한 글입니다.
현재와 많이 다를 수 있습니다.
데이터 리소스 준비
Looker Studio에서 지원하는 여러 데이터 소스 중 BigQuery를 사용하였다.
아래와 같이 뷰를 구성했다.
# 원본 데이터 테이블
with geo as (
select address_dong, # 예) 서울특별시 강남구 신사동
address_sigungu, # 예) 서울특별시 강남구
address_sido, # 예) 서울특별시
lng, # 경도
lat # 위도
from logs.parent_last_log # 위치정보 테이블
),
# 시/도 그룹화 용 테이블
sido as (
select address_sido,
AVG(lat) lat,
AVG(lng) lng,
from geo
group by 1
),
# 시/군/구 그룹화 용 테이블
sigungu as (
select address_sido, address_sigungu,
AVG(lat) lat,
AVG(lng) lng,
from geo
group by 1, 2
),
# 읍/면/동 그룹화 용 테이블
dong as (
select address_sido, address_sigungu, address_dong,
AVG(lat) lat,
AVG(lng) lng,
COUNT(*) count,
from geo
group by 1, 2, 3
)
select address_sido, address_sigungu, address_dong,
CONCAT(sido.lat, ',', sido.lng) latlng_sido,
CONCAT(sigungu.lat, ',', sigungu.lng) latlng_sigungu,
CONCAT(dong.lat, ',', dong.lng) latlng_dong,
dong.count,
from dong
join sido using(address_sido)
join sigungu using(address_sido, address_sigungu)
- 원본 위치정보 테이블로부터 주소(address_sido, address_sigungu, address_dong), 위/경도(lng, lat) 필드를 조회하여 geo CTE 테이블에 저장
- 위치정보 테이블에는 개별 접수건의 주소, 위/경도 등의 정보가 적재되어 있음
- sido 테이블에 시/도 단위로 주소, 평균 위/경도 저장
- sigungu 테이블에 시/군/구 단위로 주소, 평균 위/경도 저장
- dong 테이블에 읍/면/동 단위로 주소, 평균 위/경도, 레코드 수 저장
- dong 테이블에 sido, sigungu 테이블을 join하여 데이터 조회
- 이 때, Looker Studio 위치 필드 사용을 위해 lng, lat 위/경도 값을
,
로 결합
- 이 때, Looker Studio 위치 필드 사용을 위해 lng, lat 위/경도 값을
데이터 리소스 연동
툴바에서 데이터 추가 버튼을 눌러 앞서 준비한 BigQuery 뷰를 연동한다.
(자세한 연동 과정은 생략)
연동 및 추가 작업을 모두 마친 모습은 아래와 같다.
1. latlng_sido 등 위/경도 필드의 유형을 "위도, 경도"로 변경
2. 그룹 단위 변경을 위해 "지역 단위" 매개변수 추가
값 목록에 sido, sigungu, dong 추가
"지역 단위" 컨트롤로 매개변수 값을 설정해서, 계산된 필드 "위/경도 (lod)", "주소 (lod)"에서 사용할 예정
3. 그룹 단위 변경을 위해 계산된 필드 "위/경도 (lod)", "주소 (lod)" 추가
지역 단위(lod)에 해당하는 위/경도, 주소를 반환하여, 이 값을 지도 차트에서 사용할 예정
lod는 Level of Detail의 의미로 임의로 붙인 이름입니다.
4. 자동으로 표시되는 정보에서 알아보기 좋게 필드 이름 정리 (한글 사용 가능)
지역 단위 컨트롤 추가
툴바에서 컨트롤 추가 버튼을 누른 후 고정 크기 목록을 추가한다.
우측 상세 패널에서 앞서 연동한 데이터 소스를 선택하고, 컨트롤 필드에 앞서 추가한 지역 단위 매개변수를 설정한다.
지도 차트 추가
툴바에서 차트 추가 버튼을 눌러 지도 차트를 추가한다.
우측 상세 패널에서 앞서 연동한 데이터 소스를 선택하고, 다음과 같이 설정한다.
- 필드: 위/경도 (lod)
- 도움말: 주소 (lod) -> 풍선 도움말에 주소 표시
- 크기: 접수 (합계 방식으로) -> 레코드 수로 풍선 크기 결정
- 색상 측정기준: 임의로 설정
수정을 완료하고 대시보드로 오면 아래와 같이 지도에서 데이터를 확인할 수 있다.
기타
추가 필터
위 스크린샷에서 전체 데이터가 아닌 경상남도만 표시하고 있는데, 실제 대시보드에는 기간이나 시/도 등을 제한할 수 있는 필터를 추가했다.
아래와 같이 컨트롤을 추가하고 컨트롤 필드를 설정하는 식으로 가능하다.
드릴다운 (Drill Down)
Looker Studio에서는 데이터를 그룹화하고 그룹화 단계를 바꿔볼 수 있는 drill down 기능을 제공하는데, 아래와 같이 측정기준을 모두 추가하고 드릴다운 옵션을 켜면 된다.
그러나, 지도 차트는 드릴다운 기능을 제공하지 않으므로, 매개 변수와 계산된 필드를 추가하여 직접 드릴다운(과 유사하게) 기능을 구현하였다.
'데이터' 카테고리의 다른 글
Firebase와 BigQuery로 DAU, 체류시간, PV, Time on Page 집계 (4) | 2023.12.07 |
---|---|
Sweetviz (Quick EDA) (0) | 2023.09.21 |