공간 분석용 그리드 시스템
이 문서에서는 BigQuery에서 지리 공간 그리드 시스템(예: S2 및 H3)을 사용하여 표준화된 지리적 영역에 공간 데이터를 구성하는 목적과 방법을 설명합니다. 또한 애플리케이션에 적합한 그리드 시스템을 선택하는 방법도 설명합니다. 이 문서는 공간 데이터를 사용하고 BigQuery에서 공간 분석을 수행하는 모든 사용자에게 유용합니다.
공간 분석 사용 개요 및 과제
공간 분석은 물리적 공간의 항목(매장 또는 주택)과 이벤트 간의 관계를 보여주는 데 도움이 됩니다. 지구의 표면을 물리적 공간으로 사용하는 공간 분석을 지리 공간 분석이라고 합니다. BigQuery에는 지리 공간 분석을 대규모로 수행할 수 있는 지리 공간 기능이 포함되어 있습니다.
많은 지리 공간 사용 사례에는 현지화된 영역 내에서 데이터를 집계하고 해당 영역의 통계 집계를 서로 비교하는 것이 포함됩니다. 이러한 현지화된 영역은 공간 데이터베이스 테이블에서 다각형으로 표시됩니다. 일부 상황에서는 이 메서드를 통계적 지리라고 합니다. 더 나은 보고, 분석, 공간 색인 생성을 위해 지리적 영역의 범위를 결정하는 방법은 표준화해야 합니다. 예를 들어 소매업체는 시간이 지남에 따라 매장이 있는 지역 또는 새 매장 구축을 고려 중인 지역에서의 인구통계 변화를 분석하려고 할 수 있습니다. 또는 보험 회사에서는 특정 지역에서 우세한 자연 재해 위험을 분석하여 자산 위험에 대한 이해를 높이려고 할 수 있습니다.
많은 지역의 엄격한 데이터 개인 정보 보호 규정으로 인해 데이터에 표시된 개인의 개인 정보를 보호하기 위해 위치 정보가 포함된 데이터 세트를 익명화하거나 부분적으로 익명처리해야 합니다. 예를 들어 미해결 주택담보대출에 대한 데이터가 포함된 데이터 세트에서 지리적 신용 편중 위험 분석을 수행해야 할 수 있습니다. 데이터 세트를 규정 준수 분석에 적합하게 익명화하려면 속성의 위치에 대한 관련 정보를 보존해야 하지만 특정 주소나 경도 및 위도 좌표를 사용하지 않아야 합니다.
앞의 예시에서 이러한 분석 설계자에게는 다음과 같은 과제가 주어집니다.
- 시간 경과에 따른 변화를 분석하는 영역 경계를 그리는 방법
- 인구 조사 지역 또는 다중 해상도 그리드 시스템과 같은 기존 행정 경계를 사용하는 방법
이 문서에서는 각 옵션을 설명하고 권장사항을 설명하며 일반적인 문제를 피할 수 있도록 이러한 질문에 답하는 것을 목표로 합니다.
통계 영역 선택 시의 일반적인 문제
부동산 판매, 마케팅 캠페인, 전자상거래 배송, 보험 정책과 같은 비즈니스 데이터 세트는 공간 분석에 적합합니다. 이러한 데이터 세트에는 인구 조사 지역, 우편번호, 도시 이름과 같이 편리한 공간 조인 키로 보이는 항목이 포함되는 경우가 많습니다. 인구 조사 지역, 우편번호, 도시로 표현된 공개 데이터 세트는 쉽게 사용할 수 있으므로 통계 집계를 위한 행정 경계로 사용하고 싶을 수 있습니다.
명목상 편리하지만 이러한 행정 경계와 기타 행정 경계에는 몇 가지 단점이 있습니다. 또한 이러한 경계는 분석 프로젝트의 초기 단계에서 적합할 수 있지만 이후 단계에서 단점이 드러날 수 있습니다.
우편번호
우편번호는 전 세계 여러 국가의 우편물을 보내는 데 사용되며, 이러한 보편성으로 인해 공간 및 비공간 데이터 세트의 위치와 지역을 참조하는 데 자주 사용됩니다. 주택담보대출에 대한 예시를 참조하자면 다운스트림 분석을 수행하기 전에 데이터 세트를 익명화해야 하는 경우가 많습니다. 각 속성 주소에 우편번호가 포함되어 있으므로 우편번호 참조 테이블에 액세스할 수 있어 공간 분석을 위한 조인 키에 편리한 옵션입니다.
우편번호를 사용할 때의 문제는 다각형으로 표시되지 않고 우편번호 지역에 대한 올바른 단일 정보 소스가 없다는 것입니다. 또한 우편번호는 실제 사람의 행동을 잘 나타내지 않습니다. 미국에서 가장 일반적으로 사용되는 우편번호 데이터는 미국 인구조사국 TIGER/Line Shapefiles에서 가져온 것으로, 여기에는 ZCTA5(우편번호 표 형식 영역)라는 데이터 세트가 포함되어 있습니다. 이 데이터 세트는 우편 전송 경로에서 파생된 우편번호 경계의 근사치를 나타냅니다. 그러나 개별 건물을 나타내는 일부 우편번호는 경계가 전혀 없습니다. 다른 국가에서도 이 문제가 있으므로 시스템 및 데이터 세트 전반에서 사용할 수 있는 신뢰할 수 있는 우편번호 경계 집합을 포함하는 단일 전역 팩트 테이블을 형성하기가 어렵습니다.
또한 전 세계에서 사용되는 표준화된 우편번호 형식이 없습니다. 일부는 3~10자리의 숫자이고 일부는 영숫자입니다. 또한 국가 간에 겹치는 부분이 있으므로 우편번호와 함께 출발지 국가를 별도의 열에 저장해야 합니다. 일부 국가에서는 우편번호를 사용하지 않으므로 분석이 더 복잡해집니다.
인구 조사 지역, 도시, 카운티
권한 경계가 없는 인구 조사 지역, 도시, 군과 같은 일부 행정 단위도 있습니다. 예를 들어 도시의 경계는 대부분의 경우 정부 기관에 의해 잘 설정되어 있습니다. 인구 조사 지역은 미국 인구조사국과 다른 대부분의 국가에 있는 유사한 기관에 의해 잘 정의됩니다.
이러한 경계와 기타 행정 경계를 사용할 때의 단점은 시간이 지남에 따라 변화하고 지리적으로 서로 일관성이 없다는 것입니다. 카운티와 도시는 서로 병합되거나 분리되며 이름이 변경되는 경우가 있습니다. 인구 조사 지역은 미국에서 10년마다 업데이트되며 기타 국가에서는 서로 다른 시기에 업데이트됩니다. 혼란스럽게도 지리적 경계는 변경될 수 있지만 고유 식별자는 동일하게 유지되므로 시간 경과에 따른 변화를 분석하고 이해하기 어렵습니다.
일부 행정 경계에서 공통적인 또 다른 단점은 지리적 계층 구조가 없는 개별 영역이라는 점입니다. 개별 영역을 서로 비교하는 것 외에도 영역 자체의 집계를 다른 집계와 비교하는 것이 일반적인 요구사항입니다. 예를 들어 Huff 모델을 구현하는 소매업체는 비즈니스의 다른 부분에서 사용되는 행정 구역에 해당하지 않는 여러 거리를 사용하여 이 분석을 실행할 수 있습니다.
단일 및 다중 해상도 그리드
단일 해상도 그리드는 해당 단위를 포함하는 더 큰 영역과 지리적으로 관련이 없는 개별 단위로 구성됩니다. 예를 들어 우편번호는 우편번호를 포함할 수 있는 도시나 카운티와 같은 더 큰 규모의 행정 단위의 경계와 일관되지 않은 지리적 관계를 갖습니다. 공간 분석을 위해서는 영역 다각형을 정의하는 역사와 법률에 대한 깊이 있는 지식 없이 서로 다른 영역이 어떻게 관련되는지 이해하는 것이 중요합니다.
다중 해상도 그리드는 각 확대/축소 수준의 셀이 더 높은 확대/축소 수준에서 작은 셀로 분할되기 때문에 계층적 그리드라고도 합니다. 다중 해상도 그리드는 더 큰 단위 내에 포함된, 잘 정의된 단위 계층 구조로 구성됩니다. 예를 들어 인구 조사 지역에는 블록 그룹이 포함되며, 이 그룹에 다시 블록이 포함됩니다. 이러한 일관된 계층적 관계는 통계 집계에 유용할 수 있습니다. 예를 들어 특정 지역에 포함된 모든 블록 그룹의 평균 소득을 가져오면 블록 그룹이 포함된 인구 조사 지역의 평균 소득을 표시할 수 있습니다. 우편번호는 모든 우편번호가 단일 해상도에 있기 때문에 이렇게 할 수 없습니다. 인접한 지역을 정의하거나 여러 국가의 소득을 비교하는 표준화된 방법이 없으므로 한 지역의 소득을 주변 지역과 비교하기 어려울 수 있습니다.
S2 및 H3 그리드 시스템
이 섹션에서는 S2 및 H3 그리드 시스템을 간략하게 설명합니다.
S2
S2 도형은 Google에서 개발하고 2011년에 대중에 공개된 오픈소스 계층적 그리드 시스템입니다. S2 그리드 시스템을 사용하여 각 셀에 고유한 64비트 정수를 할당하여 공간 데이터를 구성하고 색인을 생성할 수 있습니다. 여기에는 31가지 해상도 수준이 있습니다. 각 셀은 정사각형으로 표시되며 구면 도형(지역이라고도 함) 작업을 위해 설계됩니다. 각 정사각형은 4개의 작은 정사각형으로 분할됩니다. 인접한 S2 셀을 식별하는 기능인 이웃 순회는 분석 유형에 따라 정사각형에 4개 또는 8개의 관련 이웃이 있을 수 있으므로 정의가 잘 되지 않습니다. 다음은 다중 해상도 S2 그리드 셀의 예시입니다.
BigQuery는 S2 셀을 사용하여 공간 데이터의 색인을 생성하고 여러 함수를 노출합니다. 예를 들어 S2_CELLIDFROMPOINT
는 지구 표면의 특정 수준에 있는 지점을 포함하는 S2 셀 ID를 반환합니다.
H3
H3는 Uber에서 개발하고 Overture Maps에서 사용하는 오픈소스 계층적 그리드 시스템입니다. 여기에는 16가지 해상도 수준이 있습니다. 각 셀은 육각형으로 표현되며 S2와 마찬가지로 각 셀에는 고유한 64비트 정수가 할당됩니다. 멕시코만의 H3 셀 시각화에 관한 예시에서는 작은 H3 셀이 큰 셀에 완벽하게 포함되지 않습니다.
각 셀은 작은 육각형 7개로 분할됩니다. 구획은 정확하지 않지만 많은 사용 사례에 적합합니다. 각 셀은 6개의 인접 셀과 에지를 공유하여 이웃 순회를 간소화합니다. 예를 들어 각 수준에 12개의 오각형이 있으며 이들은 6개가 아닌 5개의 이웃과 에지를 공유합니다. H3는 BigQuery에서 지원되지 않지만 BigQuery용 Carto Analytics Toolbox를 사용하여 BigQuery에 H3 지원을 추가할 수 있습니다.
S2 및 H3 라이브러리는 모두 오픈소스이며 Apache 2 라이선스에 따라 사용할 수 있지만 H3 라이브러리에는 보다 자세한 문서가 있습니다.
HEALPix
구체를 그리는 추가 스키마로서 천문학 분야에서 일반적으로 사용되는 것을 HEALPix(Hierarchical Equal Area isoLatitude Pixelation)라고 합니다. HEALPix는 계층적 픽셀 깊이와 무관하지만 컴퓨팅 시간은 일정하게 유지됩니다.
HEALPix는 구의 계층적 동일 영역 픽셀화 스키마입니다. 천체(또는 다른) 구체의 데이터를 나타내고 분석하는 데 사용됩니다. HEALPix 그리드는 일정한 컴퓨팅 시간 외에 다음과 같은 특성이 있습니다.
- 그리드 셀은 계층적이며 상위-하위 관계가 유지됩니다.
- 특정 계층 구조에서 셀은 동일한 영역으로 구성됩니다.
- 셀은 iso-latitude 분포를 따르므로 스펙트럼 방법의 성능을 더 높일 수 있습니다.
BigQuery는 HEALPix를 지원하지 않지만 JavaScript를 비롯한 다양한 언어로 여러 가지 구현이 있으므로 BigQuery 사용자 정의 함수(UDF)에서 간편하게 사용할 수 있습니다.
각 색인 생성 전략의 사용 사례 예시
이 섹션에서는 사용 사례에 가장 적합한 그리드 시스템을 평가하는 데 도움이 되는 몇 가지 예시를 제공합니다.
많은 분석 및 보고 사용 사례에는 분석 자체의 일부로 또는 비즈니스 이해관계자에게 보고하기 위한 시각화가 포함됩니다. 이러한 시각화는 일반적으로 Web Mercator에 제공되며, 이는 Google 지도 및 다른 여러 웹 매핑 애플리케이션에서 사용되는 평면 투영입니다. 시각화가 중요한 역할을 하는 경우 H3 셀은 주관적으로 더 나은 시각화 환경을 제공합니다. 특히 위도가 높은 S2 셀은 H3보다 왜곡되어 나타나는 경향이 있으며 평면 투영에서는 낮은 위도의 셀과 일관되게 표시되지 않습니다.
H3 셀은 인접한 비교가 분석에서 중요한 역할을 하는 구현을 간소화합니다. 예를 들어 한 도시의 여러 섹션을 비교 분석하면 새로운 소매점 또는 유통 센터를 여는 데 적합한 위치를 결정하는 데 도움이 될 수 있습니다. 분석을 위해서는 인접한 셀과 비교되는 특정 셀의 속성에 대한 통계 계산이 필요합니다.
S2 셀은 거리와 각도를 측정하는 분석과 같이 본질적으로 광범위한 분석에서 더 잘 작동합니다. Niantic의 Pokemon Go는 S2 셀을 활용하여 게임 애셋이 배치되는 위치와 배포 방법을 결정합니다. S2 셀의 정확한 구획 속성을 통해 게임 애셋을 전 세계에 균일하게 분산시킬 수 있습니다.
다음 단계
- 공간 클러스터링에 대한 권장사항은 BigQuery의 공간 클러스터링 - 권장사항을 참조하세요.
- 불완전한 데이터에서 공간 계층 구조를 만드는 방법 알아보기
- GitHub의 S2 도형 알아보기
- GitHub의 H3 도형 알아보기
- H3, BigQuery, Earth Engine을 사용하는 예시 참조