검색엔진으로 Redshift를 사용하려고 했는데 왜 이렇게 속도가 안나오는거지?


Redshift는 속도 보다는 대용량 데이터를 보관하고 찾을 수 있는 DW로 만족해야하는 것 같다. ㅠㅜ


데이터를 빠르고 여러가지 방법으로 Query해서 찾기 위해 여러가지 OSS를 찾기 시작했다.


HIVE2.0도 보이고 드레멜도 보이고 드릴, 임팔라, 타조 그리고 드루이드까지~


수많은 OSS가 있지만 우선 페이스북에서 시작한 프레스토가 현재 가장 눈에 들어온다.


드루이드도 괜찮은 것 같지만 현재 우리 시스템에서 빈번하고 중요한 부분 중에 하나인 JOIN 기능이 완벽하지 않다.


대용량 데이터에서 JOIN이란 넘기 힘든 산이지만 분석하는 분들은 그렇게 생각 안하시는 듯...ㅠㅜ


서비스를 위해서라면 최대한 성능이 날 수 있는 구조로 데이터를 정제하는 것이 최 우선이다.


하지만 안정화 되기 전까지는 분석에서 필요한 다양한 View를 확인하기 위해 최대한 정제되지 않은 체로 사용하려고 한다.



그래서 프레스토로 확인 하는 중 ㅎㅎㅎㅎ

https://prestodb.io


대용량 데이터를 위한 분산 SQL Query 엔진으로 기가바이트에서 페타 바이트에 이르기는 원본 데이터를 대화형으로 분석할 수 있도록 설계 되었다.



하이브나 카산드라와 같이 독립적인 저장소를 가지고 있고, 독립적인 저장소 외에도 다양한 소스의 데이터를 결합해서 분석 할 수 있다.



제약 사항


우선 몇 초에서 몇 분 정도 걸리는 쿼리를 검색하는 것이지 아주 빠른 분석을 위한 비싼 검색 솔루션은 아니다.


프레스토는 일반적인 SQL을 지원하는 것이지 RDB가 아니다. Online Transaction Processing 목적이 아니라는 말이다.

(솔직히 그럼에도 불가하고 속도가 나왔으면 한다.)




구조적


프레스토는 코디네이터랑 워커 그리고 디스커버리로 역활이 나누어져있고 클라이언트에서는 프레스토 CLI를 통해 검색을 할 수 있다.


Connector Plugin을 통해 다양한 소스에 대한 접근이 가능한데... 워커는 데이터를 코디네이터는 메타데이터를 커넥터 플러그인을 통해 가져온다.


Http와 JSON을 통해 통신하며 루비, 파이선, PHP, 자바, R, Node.JS 등을 지원한다.


비주얼 툴과 연동 시 ODBC/JDBC보다는 PostrgreSQL ODBC/JDBC 드라이버를 사용하는 것을 추천한다. 훨씬 빠르다고 한다.



설치 환경


프레스토를 사용하기 위해서는 리눅스나 맥OS에 설치 해야하고, 자바 8버전과 파이선 2.4버전 이상이 설치 되어 있어야 한다.


AWS에서는 EMR에서 프레스토를 지원해준다.


다른 것보다 워커의 스펙이 중요하다. 연산을 위한  CPU와 JOIN을 위한 MEMORY이 높아야 성능이 잘 나온다.

저작자 표시
신고

'IT' 카테고리의 다른 글

검색엔진 프레스토 Presto 알아보기  (0) 2016.12.27

+ Recent posts