아파치 타조(Apache Tajo)는 다양한 데이터 소스를 위한 하둡 기반의 데이터 웨어하우스 시스템으로, 한국 개발자들이 주도해 개발하고 있는 아파치 재단의 최상위 프로젝트입니다.
오픈소스 기반의 빅데이터 분산 처리 플랫폼인 하둡이 성장, 발전하면서 하둡 데이터를 기존 데이터베이스에 내보내는 대신, 하둡에 저장된 데이터에서 직접 SQL 질의를 처리할 수 있는 시스템이 필요했습니다.
한 마디로, 하둡 상에서 데이터 분석을 할 수 있는 SoH(SQL-on-Hadoop, 하둡용 SQL) 기술이 필요하게 된 것입니다(SoH는 SQL온하둡이라고 부르기도 합니다).
이에는 최초의 하둡용 SQL 솔루션인 아파치 하이브(Apache Hive)를 위시해, 스팅거(Stinger), 아파치 드릴(Apache Drill), 스파크(Spark), 아파치 피닉스(Apache Phoenix), 클라우데라 임팔라(Cloudera Impala), 피보탈 HD용 HAWQ, 프레스토(Presto) 등 상당히 많은 솔루션들이 여러 다양한 요구 사항과 사례에 부합하도록 개발되고 있습니다.
타조 또한 하둡을 위해 탄생한 대용량 데이터웨어하우스 시스템입니다.
2010년 고려대학교 컴퓨터학과 DB 연구실에서 리서치 프로토타입으로 시작한 타조는 2013년 3월 아파치 재단의 인큐베이션 프로젝트로 채택됐으며, 이듬해인 2014년 3월에는 최상위 프로젝트로 승격됐습니다.
타조 프로젝트에 참여하는 이들은 대부분 한국인으로, 그루터(Gruter), 인텔, 엣시(Etsy) 링크드인(LinkedIn), 나사(NASA), 클라우데라, 그리고 호튼웍스(HortonWorks) 출신의 개발자들이 참여하고 있습니다.
아파치 타조 프로젝트의 핵심 목표는 대규모 데이터를 처리하기 위한 하둡 기반의 데이터웨어하우스 시스템을 오픈소스로 구축하는 것입니다. 특히 타조는 표준 SQL을 질의 언어로 지원합니다.
타조는 하둡 분산 파일 시스템 상의 데이터를 포함한 여러 형태의 데이터에 대해 인터랙티브(interactive) 질의와 배치(batch) 질의 모두를 지원하도록 설계되어 있습니다.
빠른 질의 처리 시간을 보장하면서, 타조는 내고장성(fault-tolerance)과 실시간 로드 밸런싱(dynamic-load balancing)을 제공합니다.
좀더 높은 성능을 위해 타조는 비용기반 최적화(cost-based optimization)와 더불어 점진적 최적화(progressive optimization) 기술을 활용해 처리중인 질의를 재-최적화합니다. 이를 통해 가장 성능이 나쁜 질의 실행 계획은 사용하지 않도록 합니다.
2015년 3월 9일 발표된 타조의 새로운 버전은 자바 프로그램과 오라클과 포스트그레SQL(PostGreSQL)과 같은 서드파티 데이터베이스들과의 좀더 나은 연결성(connectivity)을 제공하기 위해 업데이트했습니다.
스파크(Spark) 또는 하이브(Hive)와 같은 다른 아파치 빅데이터 프로젝트보다 덜 알려졌지만 타조는 기업들이 상업용 데이터웨어하우스 종속에서 벗어나는데 적합할 수 있습니다.
또한 타조는 하둡 데이터 프로세싱 플랫폼에 데이터셋을 분석하기를 원하는 기업들에게 하둡의 맵리듀스(MapReduce) 프레임워크를 대신, 친밀한 상업용 비즈니스 인텔리전스 툴을 사용할 수 있게 합니다.
타조는 HDFS(Hadoop Distributed File System)에 저장된 대량의 데이터셋을 정리하기 위해 필수적인 ETL(Extract-Transform-Load process) 운영을 수행하는데, 사용자들과 외부 프로그램들은 SQL을 통해 이 데이터를 접근할 수 있다.
타조의 최신 버전은 JDBC(Java Database Connectivity) 드라이버가 새롭게 향상됐다. 타조 프로젝트는 원래부터 표준 RDBMS로 사용하기 쉽게 만들었기 때문에 가능한 것입니다.
이 드라이버는 다양한 상업용 비즈니스 인텔리전스 소프트웨어 패키지와 다른 SQL 기반의 툴에서 테스트를 진행했습니다. 또한 타조는 오라클과 포스트그레SQL 시스템 양쪽의 SQL 명령어를 내부 탑재했습니다.
타조의 새로운 기능은 웹 개발자를 위한 JSON(JavaScript Object Notation)을 완벽히 지원합니다. 이는 타조가 아마존 S3(Simple Storage Service)와 바로 작업할 수 있다는 걸 의미합니다.
타조를 사용하고 있는 곳은 대표적으로 SK텔레콤의 빅데이터분석 플랫폼, 고려대학교와 NASA 산하의 제트 추진 연구소(Jet Propulsion Laboratory), 음악 스트리밍 서비스인 멜론 등이 있습니다.
타조는 스파크, 하이브, 임팔라와 같은 다른 아파치 프로젝트보다 덜 알려졌지만 2013년부터 최초 테스트를 거쳐 실전에 투입됐습니다. SK텔레콤은 1.7TB의 데이터를 타조에서 실행해 대부분의 경우 하이브 또는 임팔라보다 빠른 속도로 질의를 해결할 수 있었습니다.
하지만 타조에게는 극복해야할 과제들이 많습니다.
활발한 아파치 프로젝트 커뮤니티라면 1,000명을 훌쩍 넘깁니다만, 현재 타조 커뮤니티의 인원은 100명을 넘지 못합니다. 오픈소스에서의 커뮤니티 참여 수는 사실 해당 솔루션의 발전과 가능성을 엿볼 수 있는 대표적 수치 가운데 하나입니다.
또한 대부분의 타조 개발자들이 한국인이라는 점에서 지리적, 언어적인 한계를 갖고 있어 기술 성숙도에 비해 세계적인 인지도가 낮다는 것도 풀어야 할 숙제입니다.
타조의 대표적인 개발업체인 그루터는 국제 빅데이터 컨퍼런스 등에 참여해 타조를 많이 홍보하고 있으며, 미국 실리콘밸리에 사무실을 두고 사용자 커뮤니티 기반을 늘이기 위해 노력하고 있습니다.