HPL/SQL 시작하기
HPL/SQL 시작하기
HPL/SQL을 바로 사용해 보기 위한 빠른 안내예요. JDBC 연결 문자열에 mode=hplsql만 붙이면 Beeline 같은 클라이언트에서 HPL/SQL 문법을 곧바로 쓸 수 있습니다.
출처: 문서
본문
HPL/SQL 사용을 시작하기 위한 빠른 가이드입니다.
HiveServer에 JDBC 연결을 만들 수 있는 호스트나 서드파티 도구라면 어디서든 HPL/SQL을 활성화해서 사용할 수 있습니다. Beeline은 HPL/SQL용 인기 클라이언트인데, 다른 서드파티 도구는 구문 오류에 대한 일부 오류 메시지를 보여 주지 않기 때문입니다.
Beeline 연결 문자열에서 HPL/SQL 활성화하기
HiveServer에 연결할 클라이언트를 설정한 뒤, 클라이언트를 HiveServer에 연결하는 JDBC URL에 mode=hplsql 을 추가하면 됩니다.
beeline -u "jdbc:hive2://<HiveServer host>:10000/default;mode=hplsql"
이 모드로 클라이언트가 HiveServer에 연결하면 HPL/SQL이 활성화되고, 그렇지 않으면 비활성화됩니다.
Hive 프롬프트에서 HPL/SQL을 실행할 수 있습니다. 슬래시(/)를 사용하면 Beeline을 다중 라인 모드로 전환해서 여러 줄을 입력한 뒤 한 번에 평가할 수 있습니다.
0: jdbc:hive2://localhost> CREATE PROCEDURE greet(name STRING)
. . . . . . . . . . . . . . . . . . . . . . .> BEGIN
. . . . . . . . . . . . . . . . . . . . . . .> PRINT 'Welcome to ' || name;
. . . . . . . . . . . . . . . . . . . . . . .> END;
. . . . . . . . . . . . . . . . . . . . . . .> /
No rows affected (0.084 seconds)
0: jdbc:hive2://localhost> greet('Apache Hive HPLSQL');/
INFO : Welcome to Apache Hive HPLSQL
No rows affected (0.01 seconds)
0: jdbc:hive2://localhost>
기존의 Beeline 옵션인 -e, -f 도 사용할 수 있습니다. 아래는 hplsql 모드에서 사용할 수 있는 옵션 목록입니다.
파라미터:
| 파라미터 | 설명 |
|---|---|
| -e ‘query’ | 실행할 SQL 문장 |
| -f file | file 에서 SQL 문장 실행 |
| -main procname | 엔트리 포인트 (프로시저 또는 함수 이름) |
| -d var=value | 변수 정의 |
| –define var=value | 변수 정의 |
| -hiveconf var=value | 변수 정의 |
| -hivevar var=value | 변수 정의 |
참고 사항:
- -e 와 -f 는 함께 지정할 수 없습니다
- -main 옵션을 지정하지 않으면 HPL/SQL은 스크립트의 처음부터 모든 문장을 실행합니다
- 현재 -d, –define, -hivevar, -hiveconf 는 동일하게 입력 변수를 정의하는 데 사용됩니다
예제 1:
스크립트에서 HPL/SQL 문장을 실행:
beeline -u "jdbc:hive2://<HiveServer host>:10000/default;mode=hplsql" -f script.hplsql
예제 2:
명령줄에서 HPL/SQL 문장을 실행:
beeline -u "jdbc:hive2://<HiveServer host>:10000/default;mode=hplsql" -e "NVL(MAX_PARTITION_DATE(db.sales, local_dt, code='A'), CURRENT_DATE)"
예제 3:
변수 사용:
beeline -u "jdbc:hive2://<HiveServer host>:10000/default;mode=hplsql" -e "PRINT a || ', ' || b" -d a=Hello -d b=world
결과:
Hello, world
더 알아보기 (Learn more)
- HPL/SQL 주요 기능 — HPL/SQL이 제공하는 문법 요소를 한눈에 볼 수 있어요.