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일 때, 테이블을 구성할 필드 목록을 지정합니다. 구분자로 쉼표(,)를 사용합니다.

사용 예

  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