Apache Druid(아파치 드루이드) = 타임시리즈 데이터베이스 + 데이터웨어하우스 + 검색 시스템
![]() |
출처: https://druid.apache.org/ |
오픈소스 아파치 드루이드(Apache Druid)는 타임시리즈 데이베이스, 데이터웨어하우스, 검색 시스템의 성격을 다 가지고 있는 오픈소스 데이터 저장소입니다. 성능이 좋아 실시간 분석을 가능하게 합니다.
요즘 빠른 고성능 DB 들이 다 그렇듯이 column(칼럼,열)을 중심으로 데이터를 저장합니다. 칼럼을 압축하고 인코딩하게 됩니다. 카프카, 클라우드 스토리지, 하둡과의 연동도 잘 됩니다. nested 데이터도 잘 처리합니다. 많은 데이터를 ingest 하기 위해서 수평적 확장성(horizontal scalability)도 뛰어납니다.요즘 빅데이터를 실시간으로 처리할 수 있는 데이터베이스, 데이터웨어하우스들은 이런 점을 다 가지고 있습니다. 그래서 아파치 드루이드와 비슷한 솔루션, DB, 데이터웨어하우스, 데이터 스토어가 많긴합니다.
![]() |
출처: https://druid.apache.org/ |
배치나 스트리밍 데이터를 수집하고 드루이드에 저장 후 쿼리를 날리고, 모니터링하고, 분석을 하고 다른 앱에서 가져다 쓰는 것이 일반적입니다.
![]() |
출처: https://druid.apache.org/ |
드루이드는 JSON-over-HTTP 나 SQL 을 사용하여 쿼리할 수 있습니다.
curl -X POST '<queryable_host>:<port>/druid/v2/?pretty' -H 'Content-Type:application/json' -H 'Accept:application/json' -d @<query_json_file>
위가 드루이드 native 쿼리 언어인 JSON over HTTP 쿼리의 예입니다.
![]() |
출처: https://druid.apache.org/ |
빅데이터를 처리하고 저장하는 다른 데이터베이스들과 마찬가지로 드루이드도 분산(distributed) 시스템이라 서버 하나가 날라가도 안전합니다. 만약 드루이드 클러스터 전체가 날라가도 자동 데이터 백업 기능으로 살릴 수 있습니다. 드루이드는 자동으로 인덱스된 데이터를 HDFS와 같은 파일시스템에 백업을 합니다. 드루이드는 롤링 업데이트도 지원하는데, 클러스터에 다운타임이나 장애없이 업데이트를 합니다. 그래서 사용자는 업데이트 중이라도 서비스들을 이용할 수 있습니다.
이렇게 오픈소스 실시간 분산 처리 데이터베이스+데이터웨어하우스+검색시스템인 드루이드에 대해 가볍게 알아보았습니다.
혹시 나중에 시간이 나면 드루이드 세그먼트(segment)로 바꾸는 인덱싱 기법도 다루어 보겠습니다.
- The End -
Comments
Post a Comment