SQL on Hadoop benchmark 관련 기사를 읽고
최근 Hadoop 관련 메이저 두 회사에서 SQL on Hadoop 관련해서 벤치마킹 자료를 잇따라 공개하였습니다.
- Cloudera: Apache Impala (incubating) vs. Amazon Redshift
- Hortonworks: APACHE HIVE VS APACHE IMPALA QUERY PERFORMANCE COMPARISON
이 벤치마킹 자료에 대해 필자도 뭔가 이야기를 하고 싶었지만 검증해 볼 환경이 없어 다른 곳에서 리뷰가 올라오기를 기다렸는데 마침 ZDNet에서 다음과 같은 기사가 나왔습니다.
기사의 첫글에서는 다음과 같이 벤더 스스로 수행하는 벤치마킹 자료에 대한 신뢰성을 지적하고 있습니다.
보통 벤치마킹은 해당 솔루션의 회사와 전혀 관여되지 않은 제 3의 회사가("neutral" third party) 수행하지 않으면 벤더 자신이 그냥 테스트해 본 정도로 생각한다.
이 기사에서 주장하는 부분은 벤치마킹 수치 자체에 대한 이야기 보다 이런 벤치마킹 자료를 보면 그 솔루션이 지양하는 시장이 어디이며, 어떤 회사 또는 제품을 경쟁 상대로 생각하는지 볼 수 있다는 것입니다.
이 기사의 저자는 Cloudera의 주장대로 SQL을 처리하는데 Impala의 성능이 좋다할지라도 "consistent SLAs, high concurrency, or support of very complex SQL syntax" 등의 이슈에 대해서는 여전히 전통적인 Database 를 선택하는 것이 현명하다고 하고 있다. 하지만 저자는 Cloudera의 Impala 벤치마킹이 단순히 AWS의 Redshift만 겨냥한 것이 아니라 AWS의 EMR을 겨냥하고 있다고 한다. 이 근거로 벤치마킹에서 주로 사용한 스토리지가 S3 라는 것이다.
아직까지 EMR 과 같은 클라우드 기반으로 데이터를 처리하는 고객은 많지 않지만 점점 클라우드 환경으로 옮겨갈 것이 예상되는데 Cloudera는 이들 고객이 EMR에 바인딩 되지 않게 하기 위해 Cloudera Director 등이나 Hadooop in Cloud 라는 주제로 꾸준히 클라우드 환경에서의 지배력을 높이려고 하는 것도 이런 의도가 깔려 있다고 저자는 말하고 있습니다.
Hortonworks의 Hive LLAP와 Impala의 벤치마킹은 4년전 Cloudera가 Impala를 발표하면서 만들어낸 새로운 시장인 SQL on Hadoop 시장을 따라 잡고 있다는 표시라고 볼 수 있다고 합니다. Caching, Cost-based query optimizer 등을 도입하고 있으며 YARN이 continuous workloads에 적합하지 않음에도 불구하고 해결 방법을 찾아서 적용하고 있다고 하네요.
기사의 마지막 문장에 대해서는 전적으로 동의합니다.
Cloudera's and Hortonworks' benchmarks are a reflection of how critical SQL is for getting enterprises to buy into Hadoop.
국내에서도 많은 기업이 SQL 때문에 Hadoop 도입하는데 있어 적극적이지 않나 생각합니다.