'Development'에 해당되는 글 32건

Apache Druid

 

<Ingestion Methods>

Streaming 방식은 Kafka, Kinesis, Tranquility를 지원하며, Batch 방식은 Native-batch(parallel 가능)와 Hadoop을 지원한다.

 

<Data Rollup>

 

<Apache Druid Rollup 예시>

 

Data Model은 Primary Timestamp, Dimensions, Metrics로 구성되며, Rollup 시 Primary Timestamp로 구분된 Partition 내의 Dimensions 별 Metrics를 Rollup 시킨다.

 

Rollup은 Dimension 수와 각 Dimension의 Cardinality가 적을 수록 데이터 크기가 획기적으로 줄어들지만 반대로 Rollup된 데이터에 대해 개별적인 Query가 불가능해진다.

 

여기서 Dimension의 경우 Type에 따라 Rollup 시 성능 차이가 발생하는데 Numeric Type의 경우 String Type에 비해 Grouping 성능이 더 향상되지만 Numeric Type은 색인이되지 않아 Query 성능 측면의 Tradeoff가 존재한다.

 

Rollup의 경우에는 Best-effort Rollup과 Perfect Rollup이 가능한데 Streaming 방식에서는 Best-effort Rollup만 가능하다.

 

Best-effort Rollup은 Ingestion 내 유입되는 Streaming에 대해 Rollup을 수행하므로, Rollup 정책을 완벽하게 보장할 수 없다.

 

<Partitioning>

유입되는 데이터가 granularitySpec 정의에 따라 Time chunk로 분할되어 Partition이 생성되고 하나의 Partition은 여러 Segement를 포함할 수 있다.

 

출처: Apache Druid 홈페이지

 

 

'Development > DB' 카테고리의 다른 글

Apache Druid Segment  (0) 2019.12.29
Apache Druid Architecture  (0) 2019.12.29
Apache Druid 개요  (0) 2019.12.29
PostgreSQL에서 CSV 파일 Import하기  (0) 2017.01.05
블로그 이미지

나뷜나뷜

,