HPL/SQL을 왜 쓸까?

HPL/SQL을 왜 쓸까? (Why HPL/SQL)

HPL/SQL은 Hadoop에서 비즈니스 로직을 절차적 SQL로 구현할 수 있게 해주는 언어예요. ETL, 보고, 분석 같은 복잡한 규칙을 변수·조건·반복문으로 표현해요.

출처: 문서

본문

Hadoop이 데이터 웨어하우징에서 차지하는 역할은 엄청납니다. 하지만 포괄적인 ETL, 보고, 분석, 데이터 마이닝 프로세스를 구현하려면 MapReduce, Spark, Tez 같은 분산 처리 엔진만으로는 부족하고, 복잡한 비즈니스 규칙을 표현할 방법도 필요합니다.

1. 비즈니스 로직 드라이버와 고급 오류 처리

HPL/SQL은 변수, 표현식, 제어 흐름 문, 반복을 사용해 비즈니스 로직을 구현할 수 있게 해줍니다. HPL/SQL은 예외와 조건 핸들러를 이용한 오류 처리를 지원합니다. 분산 프로세스를 관리·제어하면서도 시스템의 병목이 되지 않는 프로그램을 개발할 수 있습니다.

2. SQL-on-Hadoop을 더 동적으로 만들기

HPL/SQL의 핵심 기능 중 하나는 SQL을 훨씬 더 동적으로 만들 수 있다는 점입니다. 고급 표현식, 다양한 내장 함수, 조건을 사용해 사용자 설정, 이전 쿼리 결과, 파일이나 비-Hadoop 데이터 소스의 데이터 등을 기반으로 SQL을 즉석(on the fly)에서 생성할 수 있습니다.

3. 기존 절차형 SQL 기술 활용

전통적으로 DBMS는 고급 데이터 조작 시나리오와 워크플로를 구현하는 데 널리 쓰이는 절차형 SQL 언어를 제공합니다. 이 방식은 단순하고 데이터베이스 개발자와 데이터 분석가에게 익숙합니다.

Python, Java 또는 Linux 셸 스크립트와 비교했을 때, HPL/SQL은 더 넓은 범위의 BI 분석가와 개발자들이 Hadoop을 사용할 수 있게 해줍니다.

4. 가독성과 유지보수성

HPL/SQL은 특히 Bash 스크립트, Java, Python, Scala 프로그램과 비교했을 때 훨씬 더 간결하고 읽기 쉽고 유지보수하기 쉽습니다.

5. 통합과 폴리글롯 영속성(Polyglot Persistence)

Hadoop은 RDBMS 제품으로 구축된 기존 데이터 웨어하우스를 확장합니다. 즉 Hadoop, RDBMS, NoSQL 등을 포함한 여러 시스템을 통합해야 합니다.

HPL/SQL은 하나의 스크립트에서 여러 시스템을 다룰 수 있게 해줍니다. 그래서 작업 유형에 따라 각 시스템의 장점을 취하고 쉽게 통합할 수 있습니다.

6. 호환성과 마이그레이션

HPL/SQL은 널리 쓰이는 절차형 언어들의 문법을 최대한 많이 지원하려고 합니다. 새로운 절차형 언어를 처음부터 배울 필요가 없습니다. 이는 새 코드 개발뿐 아니라 기존 코드베이스의 Hadoop 마이그레이션도 촉진합니다.

7. Hadoop 빠른 시작

HPL/SQL은 Hadoop 작업을 시작하는 가장 빠른 방법을 제공합니다. 나중에 Spark, Tez, Storm, Flink 및 기타 프레임워크를 사용해 고급 데이터 처리 워크플로를 재설계하고 구현할 수 있지만, 지금은 현재의 기술과 기존 코드를 그대로 사용해 Hadoop에서 비즈니스 로직을 실행할 수 있습니다.

더 알아보기 (Learn more)

HPL/SQL의 전반적인 문법과 기능은 HPL/SQL 사용자 가이드 문서에서 자세히 다뤄요. HPL/SQL이 왜 필요한지 이해했다면 이제 실제 사용 방법을 익혀보세요.