SQL로 하둡 쿼리를 처리하는 방법 10가지

 
SQL은 천대받기 시작한 구식 기술이다. 반면 하둡(Hadoop)은 각광받고 있는 신기술이다. 이는 일종의 상식이다.

그러나 하둡 데이터에 편리한 SQL을 배치한 다수의 프로젝트들은 하둡에 기본 탑재된 리포팅 기능을 이용하고, 하둡 데이터를 기존 데이터베이스로 내보내는 대신 하둡에 저장된 데이터에서 SQL 쿼리를 처리할 수 있는 제품이 필요하다는 점을 보여주고 있다.

독자 개발한 하둡 배포판을 공급하는 맵알(MaR)의 최신 버전(4.0.1)에는 SQL에서 하둡 쿼리를 처리할 수 있는 4개의 엔진이 탑재되어 있다. 이 4개 엔진은 아주 우수한 하둡용 SQL 쿼리 시스템이다.

그러나 이 밖에도 하둡용 SQL 기술이 많다. 여러 다양한 요구 사항과 사례에 부합하도록 개발된 기술들이다. 먼저 맵알의 SQL 엔진 4종부터 소개한다.

아파치 하이브(Apache Hive)
bd01.Hive_logo.jpg

 

첫 번째 하둡용 SQL 솔루션이다. 명령줄 클라이언트를 포함, MySQL의 행위, 신택스(syntax), 인터페이스를 에뮬레이트 한 것이 특징이다.

MySQL 형식의 쿼리를 지원하는 자바 애플리케이션에 투자한 사람들을 위한 자바 API 및 JDBC 드라이버가 들어있다. 상대적으로 간단하고, 이용도 쉽다. 그러나 느리고 읽기 전용이라는 단점이 있다. 이로 인해 단점들을 개선하기 위한 여러 이니셔티브가 추진됐다.

스팅거(Stinger)
bd02.hortonworks_logo1.png

 

독자 개발한 하둡 배포판을 공급하는 호튼웍스(Hortonworks)는 아파치 하이브(Apache Hive)를 발전시키고, 그 성능을 강화하기 위한 방편으로 스팅거 프로젝트를 출범시켰다.

이 프로젝트의 최신 '산물'인 Stinger.next는 쿼리 응답 시간을 1초 이하로 만든다는 목표를 갖고 있다. 또한 삽입, 업데이트, 삭제 등의 트랜젝션 행동을 지원할 계획이다.

이는 향후 18개월 이내에 구현이 될 전망이며, 여기에는 SQL 분석 등의 기능도 들어있다.

아파치 드릴(Apache Drill)
bd03.apache-drill-logo2.png

 

구글 드레멜(Dremel, 일명 빅쿼리(BigQuery))의 오픈소스 버전인 드릴(Drill)은 여러 다양한 데이터 스토어에서 저지연(Low Latency) 쿼리를 지원하기 위해 개발됐다.

또 높은 확장성과 하둡과 NoSQL 등의 여러 쿼리 인터페이스 지원도 특징이다. 이와 함께 단 몇 밀리세컨드(1/1000)에서 몇 분에 이르기까지 다양한 실행 속도로 쿼리를 처리할 수 있다.

맵알은 드릴이 미래 지향적인 기술이지만, 기존 기술과도 후방 호환이 된다고 주장한다. 이는 프로젝트를 추진하게 된 여러 이유 가운데 하나이기도 하다.

스파크(Spark) SQL
bd04.spark_logo.jpg

 

아파치의 스파크 프로젝트는 하둡 데이터를 실시간으로 인메모리 병렬 처리하는데 목표를 두고 있다.

기반이 되는 스파크 SQL은 데이터에 SQL 쿼리를 쓸 수 있는 것이 특징이다. 더 나은 방식은 아파치 스파크용 아파치 하이브(Apache Hive for Apache Spark)다. 하이브 기술의 주요 요소를 재사용하기 때문이다.

이런 점을 감안하면, 이미 스파크를 이용하고 있는 환경의 부속물 역할을 할 수 있다(이보다 앞선 프로젝트인 샤크(Shark)가 여기에 포함된다). 이 4가지 기술 외에도 6가지가 돋보인다.

아파치 피닉스(Apache Phoenix)
bd05.Apache_Phoenix_logo.jpg

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

개발자들은 이를 'HBase용 SQL 스킨(SQL skin for HBase)'라고 일컫는다.

높은 성능과 읽기/쓰기 작업을 위해, 내장된 JDBC 드라이버를 통해 SQL 같은 명령어로 HBase 쿼리를 처리하는 방법이다.

HBase를 이용하는 사람들이라면 쉽게 도입해 활용할 수 있다. 오픈소스이고, 벌크 데이터 불러오기 등 유용한 기능을 갖추고 있기 때문이다.

클라우데라 임팔라(Cloudera Impala)
bd06.890.jpg

 

임팔라는 기존 하이브 사용자가 그 장점을 최대한 활용할 수 있도록 하이브를 확대한, 드레멜/아파치 드릴의 또 다른 구현체라고 표현할 수 있다.

HDFS나 HBase에 저장된 데이터를 대상으로 쿼리를 처리할 수 있다. SQL 신택스는 아파치 하이브와 동일하다. 그러나 임팔라가 드릴과 다른 점은 소스를 가린다는 것이다. 즉 하둡만 쿼리 처리할 수 있다.

피보탈 HD용 HAWQ
bd07.logo-pivotal-whiteonteal-rgb.jpg

 

피보탈 역시 독자적인 하둡 배포판인 피보탈 HD(Pivotal HD)를 공급하고 있다.

HAWQ는 HDFS에서 SQL 쿼리를 처리하는 피보탈의 고유 기술이다. 즉 피보탈이 병렬 SQL 처리를 지원하고, SQL 표준과의 호환성이 높지만, 기본적으로 피보탈 전용 제품이다.

프레스토(Presto)
bd08.facebook_logo2-100035690-large.jpg

 

페이스북의 엔지니어들이 개발해 내부에서 이용하고 있는 기술이다. 이 오픈소스 쿼리 엔진은 소스를 가리지 않는다는 점에서 아파치 드릴을 연상시킨다.

ANSI SQL 명령어를 이용해 하이브와 카산드라(Cassandra)에서 쿼리를 처리할 수 있다. 개발자들은 이용하는 서비스 공급자 인터페이스에 연동되는 커넥터를 개발해 시스템을 확장시킬 수 있다. 일부 데이터 삽입 기능을 지원하지만, 아주 기초적이다. 업데이트를 처리할 수 없다. 삽입만 가능하다.

오라클 빅데이터 SQL
bd09.understanding-big-data-open-source_article_full.jpg

 

사실 오라클이 하둡용 SQL 쿼리 엔진을 출시하는 것은 시간 문제였다.

드릴과 마찬가지로 하둡과 다른 NoSQL 스토어에서의 쿼리를 지원한다. 그러나 드릴과 달리 오라클 제품에서만 가능하다. 또 오라클 데이터베이스 12c 버전 이상에서만 통합이 가능하기 때문에 시장화에 큰 제약이 있다.

IBM BigSQL
bd10.IBM_BigSQL.jpg

 

역시 시간 문제였다. IBM은 2013년 초에 BigSQL과 관련된 첫 기술 프리뷰를 발표했다.

그렇지만 슬프게도 IBM의 특정 백엔드 제품과만 연동이 된다. IBM의 하둡인 인포스피어 빅인사이트(InfoSphere BigInsights)다. 프런트엔드에는 표준 JDBC/ODBC 클라이언트가 포함될 수 있다.

처리할 수 있는 쿼리는 IBM DB2, 테라데이타(Teradata), 퓨어데이터 시스템 포 애널리틱스(PureData Systems for Analytics) 인스턴스의 데이터들이다. editor@itworld.co.kr
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED