memlookup
인메모리(in-memory) 룩업 테이블을 생성, 삭제하거나, 룩업 테이블의 모든 데이터를 조회합니다.
문법
(파이프로 전달받은 데이터를 이용해서) 인메모리 룩업 테이블을 생성하려면
memlookup op=build name=TABLE key=KEY_FIELD FIELD, ...
인메모리 룩업 테이블을 삭제하려면
memlookup op=drop name=TABLE
인메모리 룩업 테이블의 메타데이터를 조회하거나, 특정한 인메모리 룩업 테이블의 전체 레코드를 조회하려면
memlookup [op=list] [name=TABLE]
필수 매개변수
op={build|drop|list}
- 수행할 작업(operation)(기본값:
list
).build
: 쿼리문이 완료될 때까지 입력으로 전달받은 데이터를 이용해 룩업 테이블을 생성(build)합니다.drop
:,name
옵션으로 지정한 룩업 테이블을 삭제합니다.list
:name
옵션으로 지정한 룩업 테이블을 조회합니다.memlookup
으로 생성되지 않은 룩업 테이블이라면, 쿼리가 실패합니다.memlookup
명령어에 아무런 옵션을 주지 않고 실행하면op=list
옵션만 지정해 실행하는 것과 같습니다
name=TABLE
op
옵션으로 지정된 작업을 수행할 대상 테이블을 지정합니다.op=list
일 때, 인메모리 룩업 테이블을 지정하지 않으면 모든 인메모리 룩업 테이블의 목록을 보여줍니다. 이 때 보여주는 정보는 다음과 같습니다: name(룩업 이름), key(키 필드 이름), size(룩업 테이블의 레코드 개수)key=KEY_FIELD
op=build
일 때 사용하는 옵션으로, 키 필드를 지정합니다.
FIELD, ...
op=build
일 때, 테이블을 구성할 필드 목록을 지정합니다. 구분자로 쉼표(,
)를 사용합니다.
사용 예
-
쿼리를 통한 매핑 테이블 만들기
status
,desc1
,desc2
컬럼을 가지고 있는 CSV 파일에서status
컬럼을 키로 하고desc1
,desc2
컬럼을 output으로 하는http_status
인메모리 룩업 테이블을 생성합니다.csvfile http_status.csv | memlookup op=build name=http_status key=status desc1, desc2
-
룩업 테이블 목록 조회
memlookup으로 생성된 룩업 테이블 정보를 확인할 수 있습니다. 반환되는 정보는 룩업 테이블 이름과 키 컬럼, 그리고 전체 레코드 개수입니다.
memlookup
위 명령문은 다음 명령문과 결과가 동일합니다.
memlookup op=list
-
특정한 룩업 테이블 전체 레코드 조회
인메모리 룩업 테이블의 이름을 지정하면 해당 테이블의 모든 레코드를 조회할 수 있습니다.
memlookup name=http_status
위 명령문은 다음 명령문과 결과가 동일합니다.
memlookup op=list name=http_status
-
인메모리 룩업 테이블 삭제
연산자 (
op
) 옵션 값으로drop
을 부여하여 지정된 룩업 테이블을 삭제합니다. 룩업의 이름을 명시하지 않은 경우 에러가 발생합니다.memlookup op=drop name=http_status