4.데이터 매핑

Edit

4.1geocode_krgeocode_kr

대한민국 행정구역 코드표를 조회합니다. 행정구역 명칭 필드과 함께 제공하는 코드 필드는 대시보드의 대한민국 지도 위젯의 지역과 매핑이 가능합니다.

문법

geocode_kr

4.2lookup

매핑 테이블을 조회하여 특정한 필드 값을 다른 값으로 변환합니다.

문법

lookup MAP_TABLE KEY_FIELD output MAP_FIELD_1 [as OUTPUT_FIELD_1][, MAP_FIELD_2 [as OUTPUT_FIELD_2], ...]
MAP_TABLE

필드 값 변환에 사용할 매핑 테이블을 지정합니다.

KEY_FIELD

매핑 테이블에서 키로 동작하는 필드 이름을 의미합니다.

MAPP_FIELD_1 [as OUTPUT_FIELD_1][, MAP_FIELD_2 [as OUTPUT_FIELD_2], ...]

MAPPING_FIELD는 매핑 테이블에서 키 필드 값을 기준으로 매핑할 필드 이름을 의미합니다. 키 필드를 검색한 다음, 해당 레코드에서 매핑 필드에 일치하는 값으로 변환합니다. as 절을 이용해 다음 쿼리문에서 출력으로 내보낼 필드를 지정할 수 있습니다. 생략하면 매핑 필드 이름이 그대로 사용됩니다.

로그프레소 쉘에서 logdb.loadCsvLookup 명령으로 미리 매핑 테이블을 적재하거나, geoip처럼 lookup 쿼리 명령어를 지원하는 확장 모듈을 설치하거나, memlookup 명령어를 이용해 인메모리 매핑테이블을 구성해야 매핑 테이블을 조회할 수 있습니다.

사용 예

1. geoip를 이용해 IP 주소를 위치 정보로 변환하기

geoip 매핑 테이블은 country(국가 코드), region(지역), city(도시), latitude(위도), longitude(경도) 필드를 포함합니다. 이 테이블 이용해 IP 주소 타입 혹은 문자열인 입력 필드 값을 매핑 필드의 값으로 변환할 수 있습니다.

lookup geoip src_ip output country
lookup geoip src_ip output region
lookup geoip src_ip output city
lookup geoip src_ip output latitude, longitude

4.3lookuptablelookuptable

파일 형태로 추가한 룩업 테이블의 내용을 조회합니다. 웹 콘솔에서 데이터베이스 기반으로 생성한 룩업용 매핑 테이블, geoip 매핑 테이블, memlookup 명령어를 이용한 룩업에 대한 내용은 조회가 되지 않습니다.

웹 콘솔 메뉴 (ENT, STD) 쿼리 > 룩업에서 파일 기반 룩업 테이블을 추가할 수 있습니다. SNR에서는 지원하지 않습니다.

문법

lookuptable LOOKUP_TABLE [limit=NUM] [offset=NUM] [FIELD_1[, FIELD_2, ..]]
LOOKUP_TABLE

조회할 룩업 테이블을 지정합니다.

limit=NUM

가져올 최대 레코드 개수를 입력합니다.

offset=NUM

건너뛸 레코드 개수를 입력합니다.

[FIELD_1[, FIELD_2, ..]]

조회할 필드 이름을 입력합니다. 여러 개를 지정하려면 구분자로 쉼표(,)를 사용합니다.

사용 예

1. 룩업 테이블 country_code의 모든 필드 보기

lookuptable country_code

2. 룩업테이블 country_code에서 code 필드 30건만 보기

lookuptable country_code limit=30 code

3. 룩업테이블 country_code에서 country, population 필드 내용 보기

lookuptable country_code country, population

4.4memlookupmemlookup

lookup 명령어로 호출할 수 있는 인메모리(in-memory) 매핑 테이블을 생성하고, 테이블에 생성된 모든 메타데이터를 조회합니다.

문법

(파이프로 전달받은 데이터를 이용해서) 매핑 테이블을 생성하려면

memlookup op=build name=TABLE key=KEY_FIELD FIELD_1[, FIELD_2, ...]

매핑 테이블을 삭제하려면

memlookup op=drop name=TABLE

매핑 테이블의 메타데이터를 조회하거나, 특정한 룩업 레코드를 조회하려면

memlookup [op=list] [name=TABLE]
key=KEY_FIELD FIELD_1[, FIELD_2, ...]

op=build일 때 사용하는 옵션으로, 생성할 매핑 테이블의 이름(name=TABLE), 키 필드 이름(key=KEY_FIELD), 그리고 테이블을 구성할 필드 이름(FIELD_1[, FIELD_2, ...])을 지정합니다.

op={build|drop|list}

op는 수행할 작업(operation)을 지정하는 옵션입니다(기본값: list). 값이 build일 때, 쿼리문이 완료될 때까지 입력으로 전달받은 데이터를 이용해 매핑 테이블을 생성(build)합니다. 값이 drop일 때, name 옵션으로 지정한 매핑 테이블을 삭제합니다. 값이 list일 때, name 옵션으로 지정한 매핑 테이블을 조회합니다. memlookup으로 생성되지 않은 매핑 테이블이라면, 쿼리가 실패합니다. memlookup 명령어에 아무런 옵션을 주지 않고 실행하면 op=list 옵션만 지정해 실행하는 것과 같습니다

name=TABLE

op={build|drop|list} 옵션으로 지정된 작업을 수행할 대상 테이블을 지정합니다. op=list일 때, 아무런 매핑 테이블도 지정하지 않으면 모든 매핑 테이블의 메타데이터를 보여줍니다. 이 때 보여주는 정보는 다음과 같습니다: name(룩업 이름), key(키 필드 이름), size(매핑 테이블의 레코드 개수)

사용 예

1) 쿼리를 통한 매핑 테이블 만들기

status, desc1, desc2 컬럼을 가지고 있는 CSV 파일에서 status 컬럼을 키로 하고 desc1, desc2 컬럼을 output으로 하는 http_status라는 이름을 가진 룩업 테이블을 생성합니다.

csvfile http_status.csv
| memlookup op=build name=http_status key=status desc1, desc2

2) 매핑 테이블 확인

memlookup으로 생성된 매핑 테이블 정보를 확인할 수 있습니다. 반환되는 정보는 매핑 테이블 이름과 키 컬럼, 그리고 전체 레코드 개수입니다.

memlookup

위 명령문은 다음 명령문과 결과가 동일합니다.

memlookup op=list

3) 특정한 매핑 테이블 레코드 보기

룩업의 이름을 명시하여 리스트를 조회하면 해당 룩업의 모든 정보가 나타납니다.

memlookup name=http_status

위 명령문은 다음 명령문과 결과가 동일합니다.

memlookup op=list name=http_status

4) 룩업 삭제

연산자 (op) 옵션 값으로 drop을 부여하여 지정된 매핑 테이블을 삭제합니다. 룩업의 이름을 명시하지 않은 경우 에러가 발생합니다.

memlookup op=drop name=http_status

4.5nslookup

nslookup 명령어는 ENT #2309 2019-11-27_10-43 일자 버전부터 지원합니다.

도메인 필드로 지정된 값을 읽어와 도메인 주소 질의를 수행하고 결과를 보여줍니다.

문법

nslookup ns=IP_ADDR [timeout=NUM] [cache=NUM] [DOMAIN_FIELD] output FIELD_LIST
ns=IP_ADDR

DNS 서버의 IPv4 또는 IPv6 주소를 지정합니다.

timeout=NUM

DNS 응답 대기 시간을 지정합니다. 시간 단위는 초입니다. 지정하지 않으면 5초를 적용합니다.

cache=NUM

DNS 응답 결과를 캐싱합니다. 캐시의 크기는 바이트 단위로 지정할 수 있습니다. 지정하지 않으면 기본값으로 1048576(1 MB)를 적용합니다.

output FIELD_LIST

DNS 응답에서 조회할 필드를 쉼표(,)로 구분하여 지정합니다.

설명

output FIELD_LIST로 지정할 수 있는 출력 필드는 아래와 같습니다.

사용 예

1. spamhouse 테이블 domain 필드에 기록된 도메인 주소들에 대해 정보를 조회

table spamhouse
| nslookup timeout=5 ns="1.1.1.1" domain
  output ip, status, flags, answers, authorities, additionals
Count of comments [0]