geostats

geostats 명령어 문법 및 연동규격 설명서 입니다.

개요

이 명령어는 위, 경도 데이터를 포함한 두 개의 필드를 기반으로 그룹(지정 지역 클러스터)별 통계정보를 제공합니다.

타입

설명

해당하는 두 개의 필드에 포함된 위, 경도를 십진수 도(DD)로 나타내는(ex 41.40338, 2.17403) 지역들을 사용자의 기준으로 그룹짓고 이에대한 통계(count, sum, avg, min, max 등)결과를 새로운 필드로 생성하여 제공합니다. 생성된 필드는 명령어 순서에 맞게 기존 테이블의 마지막에 위치하게 됩니다.

Examples

  • 검색대상이되는 데이터가 다음과 같이 존재합니다.

UPDATE_TIME

SYS_OUT

OUT_TYPE

LAT

LON

2018-03-08 1:00

a

37.5

127.5

107

2018-03-08 1:00

b

37

126.5

145

2018-03-08 1:00

c

38.5

126

797

2018-03-08 1:00

a

38

128

456

2018-03-08 1:00

d

36.5

127

41

2018-03-08 1:00

c

37

126

179

  • LAT, LON 필드값을 이용해 클러스터링 및 COUNT집계함수 실행 결과를 테이블에 추가하는 예제 입니다.

... | geostats lat lon count by OUT_TYPE

명령어 이후 테이블 (클러스터링 및 count 필드 추가)

cluster_id

latitude

longitude

OUT_TYPE

count

0_6_5

37.75

127.75

a

2

0_6_5

37.75

127.75

c

2

0_6_6

37

126.5

b

1

0_6_6

36.5

127

d

1

  • LAT, LON 필드값을 이용해 클러스터링 및 SUM 집계함수 실행 결과를 테이블에 추가하는 예제 입니다.

... | geostats lat lon sum(SYS_OUT) by OUT_TYPE

명령어 이후 테이블 (클러스터링 및 sum 필드 추가)

cluster_id

latitude

longitude

OUT_TYPE

sum(SYS_OUT)

0_6_5

37.75

127.75

a

563

0_6_5

37.75

127.75

c

976

0_6_6

36.5

127

d

41

  • LAT, LON 필드값을 이용해 클러스터링 및 COUNT, SUM 집계함수 실행 결과를 테이블에 추가하는 예제 입니다.

... | geostats lat lon count,sum(SYS_OUT) by OUT_TYPE

명령어 이후 테이블 (클러스터링 및 count, sum 필드 추가)

cluster_id

latitude

longitude

OUT_TYPE

count

sum(SYS_OUT)

0_6_5

37.75

127.75

a

2

563

0_6_5

37.75

127.75

c

2

976

0_6_6

37

126.5

b

1

145

0_6_6

36.5

127

d

1

41

  • LAT, LON 필드값을 이용해 클러스터링 및 COUNT집계함수 실행 결과를 테이블에 추가하는 예제 입니다.( groub by 절 생략.)

... | geostats lat lon count

명령어 이후 테이블 (클러스터링 및 count 필드 추가 )

cluster_id

latitude

longitude

count

0_6_5

37

126.5

1

0_6_5

37.5

127.5

1

0_6_5

38.5

128

1

Parameters

...| geostats latitude longitude aggr_funcs(, aggr_funcs)* (aggr_by)? (cell_size)* (level)* (bounds_sqr)*

이름

설명

필수/옵션

latitude longitude

위, 경도 한 쌍을 필수로 입력해야하며 십진수 도(DD)(ex 41.40338, 2.17403) 형식을 따라야합니다. (Latitude, 위도 / Longitude, 경도)

필수

aggr_funcs

집계 함수를 나타내며, 통계 함수를 실행합니다. 아래 표와 같은 옵션이 존재합니다.

필수

aggr_by

명령어 사용시 생략 가능하며 필드를 집계 기준으로 두어 group by 역할을 합니다. by 다음 필드명이 필요하며 다수의 필드명 입력이 가능합니다.

옵션

cell_size

데이터 클러스터링을 하는 셀의 크기를 설정하며 (위,경도의)도 값을 의미합니다. 해당 옵션 생략 시 default(size = 22.5) 값이 지정됩니다.
ex) size = 15.5 (이 결과로 한 셀의 크기는 15.5로 생성됩니다.)

옵션

level

위,경도 데이터를 전달 된 Level 에 따라 각각의 위치를 기록합니다.

옵션

bounds_sqr

검색 초기결과 값 및 표시화면 제한을 위한 두 쌍의 위,경도를 지정(남서, 북동경계 좌표 순)합니다. 생략 시 전세계 화면 및 보유한 모든 결과를 보여줍니다.
ex) bounds(35.73687,125.51806, 35.73687, 128.58325)

옵션

  • aggregation function list

함수 명

역할

필수요소

예시

count

대상의 수를 구하는 함수.

괄호 및 필드명 미사용

count

sum

대상 필드의 합계를 구하는 함수.

괄호 및 필드명

sum(Out)

avg

대상 필드의 평균을 구하는 함수.

괄호 및 필드명

avg(Out)

max

대상 필드의 최고 값을 구하는 함수.

괄호 및 필드명

max(Out)

min

대상 필드의 최저 값을 구하는 함수

괄호 및 필드명

min(Out)

Parameters BNF

geostats_command : latitude longitude aggr_funcs aggr_by cell_size level bound_sqr

latitude : field

longitude : field

aggr_funcs : aggr_funcs COMMA aggr_func
            | aggr_func

aggr_func : WORD LPAREN field RPAREN
            | WORD

aggr_by : BY field

bound_sqr : BOUNDS LPAREN latlon COMMA latlon COMMA latlon COMMA latlon RPAREN

cell_size : SIZE EQUALS DOUBLE

level : LEVEL EQUALS NUMBER

field : WORD

latlon : DOUBLE

WORD : \w+
COMMA : ,
LPAREN : \(
RPAREN : \)
EQUALS : \=
SIZE : size|SIZE
LEVEL : level|LEVEL
BOUNDS : bounds|BOUNDS
NUMBER : \d+
BY : by|BY
DOUBLE : [-+]?[0-9]+(\.([0-9]+)?([eE][-+]?[0-9]+)?|[eE][-+]?[0-9]+)