syslog 메시지가 timestamp, host, programname + pid 및 message의 4 개 열로 나눠 지도록 하이브 외부 테이블을 만들려고합니다. 나는 Regex serde를 사용하지 않고이 작업을 수행하고자한다. 왜냐하면 나는 임페라 (Regex Serde를 지원하지 않는 테이블)를 사용할 수 있기를 원하기 때문이다.Syslog 데이터의 하이브 테이블
문제는 4 개의 필드로 스키마를 정의하고 "\ 040"을 필드 구분 기호로 지정하면 메시지의 첫 번째 문자열로 끝납니다.
timestamp: 2014-01-01T04:00:00
host: myhost
prog: sshd[9008]:
msg: joe
가 "에서 로그인 ..."잘려됩니다 예를 들어,이 로그 라인 :로
2014-01-01T04:00:00 myhost sshd[9008]: joe logged in from 192.168.1.1 with password ....
가 매핑됩니다.
네 개의 열이있는 것을 감안할 때 Hive가 필드의 나머지 부분을 남겨 두지 말고 마지막 열에 넣는 방법이 있습니까? 욕심쟁이 옵션?
감사
임팔라에서 regexp_extract를 사용하여보기를 만듭니다. –