CSV Parsing
제한사항,
최대 9999999 Row까지 Parsing이 가능하며 메모리 사용량의 제한이 있어 700만 라인 이하로 처리하는게 효율적이다.
※ CSV에 Column명을 지정해서 Query하는 방법
logparser "select top 1000 host,session into top1000.csv from all_ip_category.csv order by session desc" -i:csv -headerRow OFF -iHeaderFile header.txt -o:csv
※ Header.txt
Column명 지정은 ,를 구분자로 텍스트로 저장하면 된다.
host,category,UserIP,Session
※ IP Class 단위로 뽑기
- A Class
logparser "select EXTRACT_PREFIX(host,3,'.') from host.txt" -i:csv
- B Class
logparser "select EXTRACT_PREFIX(host,2,'.') from host.txt" -i:csv
- C Class
logparser "select EXTRACT_PREFIX(host,1,'.') from host.txt" -i:csv
※ 기타
- 파일명 추출
EXTRACT_FILENAME('C:\MyLogs\Latest\extend1.log') → extend1.log
- 파라메터 변수의 값 추출
EXTRACT_VALUE( 'FirstKey=FirstVal&SecondKey=SecondVal&ThirdKey=ThirdVal', 'SecondKey' ) → SecondVal
- URLESCAPE
URLESCAPE( url <STRING> [ , codepage <INTEGER> ] )
Converts a string to the URL-encoded form suitable for transmission as an HTTP query string.
- URLUNESCAPE
URLUNESCAPE( url <STRING> [ , codepage <INTEGER> ] )
Converts a URL-encoded string into its plain, unencoded form.
URLUNESCAPE 예시) URL 디코딩할때 사용
logparser "select urlunescape(urlunescape(urlunescape(domain))) as domain into naver2.csv from naver.csv" -i:csv -o:csv
- integer 형으로 변환 : to_int()
- String 협으로 변환 : to_string()
ex) to_string(to_timestamp(name), 'yyyy-MM-dd hh:mm:ss.ll')
- Hex 값 변환 : to_hex(), hex_to_print('hex value')