Monday
Impala 비대화형(Non-interactive) 모드 - Impala-shell 본문
임팔라에에서 비대화형 모드로 쿼리를 사용하고 싶을 때 Imapala-shell 모드를 사용하실 수 있습니다.
사용법은 impala-shell -q "명령어" 입니다.
$ impala-shell -q 'SELECT * FROM FUN.GAMES'
또한, 직접 쿼리를 치지 않아도 파일을 통해서 쿼리를 수행할 수 있습니다.
예를 들어 다음과 같은 쿼리들은 commands.sql로 저장해놓았다고 가정하겠습니다.
파일이름 : commands.sql
USE fun;
SELECT * FROM games;
SELECT name, list_price, 0.8*list_price AS discounted_price FROM games;
그 후 파일에 있는 sql문을 읽어와 실행할 때에는 다음과 같이 수행하시면 됩니다.
$ impala-shell -f commands.sql
or
$ impala-shell --quite -f commands.sql #출력 세부사항 생략
또한, 질의 결과를 파일로 저장할 수도 있습니다. --delimited 옵션을 사용하여 출력 포맷을 정하실 수 있습니다. 기본값은 tab이며 --delimited --output_delimiter=','과 같이 --output_delimiter 옵션을 사용하여 구분자를 변경하실 수 있습니다. 또한, impala-shell은 Hive와는 반대로 기본적으로 컬럼 속성들을 출력하지 않습니다.(ex 학생 테이블에서 '이름', '학번'과 같은 속성)
$ impala-shell --delimited --output_delimiter=',' -q 'SELECT * FROM FUN.GAMES' -o games.csv
## csv 형식으로 출력, 컬럼 속성 생략
or
$ impala-shell --delimited --output_delimiter=',' --print_header-q 'SELECT * FROM FUN.GAMES'
-o games.csv # csv형식 출력, 컬럼 속성 출력