더북(TheBook)

5.3 SQL 명령

 

이 절에서는 스파크 SQL 프로그램을 작성할 수 있는 또 다른 인터페이스인 SQL 명령을 알아본다. 5.1절에서 살펴본 DataFrame DSL 기능을 SQL 명령에서도 동일하게 사용할 수 있다. 관계형 데이터베이스나 하이브 같은 분산 데이터베이스 작업에 익숙한 사용자들은 DataFrame DSL보다 SQL을 작성하는 편이 더 쉽고 자연스러울 것이다.

스파크 SQL은 사용자가 작성한 SQL 명령을 DataFrame 연산으로 변환한다. 스파크의 SQL 명령은 오직 SQL 인터페이스에만 익숙한 수많은 SQL 사용자에게 스파크 SQL과 DataFrame을 활용할 수 있는 기회를 제공한다. SQL 사용자들은 스파크의 쓰리프트 서버로 연결된 표준 JDBC 또는 ODBC 프로토콜로 자신이 사용하던 일반 SQL 애플리케이션에서도 스파크에 접속할 수 있다(이 부분은 5.3.3절에서도 짧게 언급한다). 이 절에서는 DataFrame을 참조해 SQL 쿼리를 작성하고 실행하는 방법과 쓰리프트 서버로 스파크 클러스터에 연결하는 방법을 살펴본다.

스파크가 지원하는 SQL 언어는 스파크 전용 SQL과 하이브 쿼리 언어(Hive Query Language, HQL)다. 스파크 커뮤니티는 더 풍부한 기능을 제공하는 HQL을 권장한다(스파크 버전 1.5 기준). 하이브 기능을 사용하려면 하이브를 지원하는 스파크 배포판이 필요하다(스파크 공식 사이트에서 내려받은 스파크 아카이브가 이에 해당한다). 하이브 지원 기능은 더욱 강력한 SQL 파서를 지원할 뿐만 아니라, 기존 하이브 테이블과 여러 커뮤니티에서 개발한 하이브 UDF를 그대로 사용할 수 있다는 이점을 제공한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.