# BigQuery GIS

BigQuery에서 좌표 데이터를 다룰 수 있는 BigQuery GIS가 존재합니다

Table에 좌표 값이 있는 경우 예를 들어 지역별로 데이터를 파악할 때, 행정구 단위가 아닌 지역을 설정해 분석할 수 있습니다.

다음과 같은 예시에서 활용될 수 있습니다.

  • 특정 Point에서 반경 3KM 이내의 좌표 갯수 구하기
  • 시간의 흐름에 따른 차량의 이동
  • 육각형 단위(Uber H3)로 지역을 나눠서 집계하기
  • 두 좌표 사이의 거리 구하기


# 지리 함수

지리(Geography) 함수는 BigQuery의 GEOGRAPHY 자료형에서 작동하는 함수입니다. 지리 함수는 ST_로 시작하며. ST는 Spatial Type의 약자입니다.

참고로 지리 데이터 분석할 때 자주 나오는 단어로 WKT가 있습니다. WKT는 Well-known text의 약자로 자세한 내용은 위키피디아 (opens new window)를 참고해주세요


# 함수의 카테고리

지리 함수의 카테고리는 계속 추가되고 있으며, 공식 문서 (opens new window)의 내용을 확인하는 것을 추천합니다.

  • Constructors : Geography 데이터나 좌표를 사용해 새로운 Geography 데이터 생성
    • ST_GEOPOINT
    • ST_MAKELINE
    • ST_MAKEPOLYGON
    • ST_MAKEPOLYGONORIENTED
  • Parsers : WKT, GeoJSON 데이터를 Geography 데이터로 변경
    • ST_GEOGFROM
    • ST_GEOGFROMGEOJSON
    • ST_GEOGFROMTEXT
    • ST_GEOGFROMWKB
    • ST_GEOGPOINTFROMGEOHASH
  • Formatters : Geography 데이터를 WKT, GeoJSON 등으로 추출(Parser와 반대 개념)
    • ST_ASBINARY
    • ST_ASGEOJSON
    • ST_ASTEXT
    • ST_GEOHASH
  • Transformations : 입력 값을 기반으로 새로운 Geography 데이터 생성
    • ST_BOUNDARY
    • ST_CENTROID
    • ST_CENTROID_AGG (Aggregate)
    • ST_CLOSESTPOINT
    • ST_CONVEXHULL
    • ST_DIFFERENCE
    • ST_DUMP
    • ST_EXTERIORRING
    • ST_INTERSECTION
    • ST_SIMPLIFY
    • ST_SNAPTOGRID
    • ST_UNION
    • ST_UNION_AGG (Aggregate)
  • Accessors : 사이드 이팩트 없이 Geography 데이터에 접근할 수 있는 함수
    • ST_DIMENSION
    • ST_DUMP
    • ST_ENDPOINT
    • ST_ISCOLLECTION
    • ST_ISEMPTY
    • ST_NPOINTS
    • ST_NUMPOINTS
    • ST_POINTN
    • ST_STARTPOINT
    • ST_X
    • ST_Y
  • Predicates : 두 Geography 데이터의 공간적 관계를 True, False로 반환. 이 함수들은 주로 조건 절에 많이 사용
    • ST_CONTAINS
    • ST_COVEREDBY
    • ST_COVERS
    • ST_DISJOINT
    • ST_DWITHIN
    • ST_EQUALS
    • ST_INTERSECTS
    • ST_INTERSECTSBOX
    • ST_TOUCHES
    • ST_WITHIN
  • Measures : 하나 이상의 Geography에 대한 측정값을 계산
    • ST_AREA
    • ST_DISTANCE
    • ST_LENGTH
    • ST_MAXDISTANCE
    • ST_PERIMETER
  • Clustering : Geography 데이터에서 클러스터링을 수행하는 함수
    • ST_CLUSTERDBSCAN

# 자주 사용하는 함수

  • ST_CONTAINS(geography_1, geography_2)

    • geography_2의 점들이 모두 geography_1 안에 있으면 TRUE, 그렇지 않으면 FALSE
  • ST_DISTANCE(geography_1, geography_2)

    • 두 GEOGRAPH 간의 최단 거리를 미터 단위로 반환


# 지리 UDF

지리 공간 분석을 전문으로 하는 CARTO (opens new window)에서 BigQuery UDF를 제공하고 있습니다.

Carto Spatial Extension Github Repo (opens new window)에서 확인할 수 있습니다.



# 지리 데이터 시각화

지리 데이터는 지도 위에서 데이터 시각화를 하면 더 쉽게 이해할 수 있습니다. 시각화 도구는 Google 데이터 스튜디오, Tableau, Kepler, BigQuery Geo Viz 등이 있습니다. 자세한 내용은 링크를 참고해주세요.