전체 글(56)
-
Nova Maldives
안녕하세요! 오늘은 여행 후기를 처음으로 올려봅니다!! ㅎㅎ 바로 신혼여행으로 다녀온 몰디브가 소개드릴 여행지인데요, 아마 여행 계획이 있으셔서 몇 번 알아보신 분들은 몰디브에 얼마나 많은 리조트(섬)들이 있는지 아실 꺼에요;; 그 중에서도 제가 신혼여행으로 다녀온 리조트는 새로 리모델링되어 신축되었던 노바 리조트(Nova Maldives)를 소개합니다. (아무런 협찬도 아니고 그냥 깨끗하고 좋았던 기억에 공유드리는 글임을 먼저 안내드립니다.) 저는 지난 10월 중순에 몰디브를 다녀왔고요 그때즈음 다행이도 코로나가 많이 줄어들어서 큰 걱정없이 다녀온 기억입니다 :) (휴우...) 인천 국제 공항(한국 기준 새벽)에서 출발!! 카타르 도하(도하 기준 이른아침) 공항 도착,, 오릭스 호텔(Oryx Airpo..
2023.01.08 -
Apache Druid Ingestion
Streaming 방식은 Kafka, Kinesis, Tranquility를 지원하며, Batch 방식은 Native-batch(parallel 가능)와 Hadoop을 지원한다. Data Model은 Primary Timestamp, Dimensions, Metrics로 구성되며, Rollup 시 Primary Timestamp로 구분된 Partition 내의 Dimensions 별 Metrics를 Rollup 시킨다. Rollup은 Dimension 수와 각 Dimension의 Cardinality가 적을 수록 데이터 크기가 획기적으로 줄어들지만 반대로 Rollup된 데이터에 대해 개별적인 Query가 불가능해진다. 여기서 Dimension의 경우 Type에 따라 Rollup 시 성능 차이가 발생하는데..
2019.12.31 -
Apache Druid Segment
Segment는 위 그림과 같이 Druid에서 시간에 따라 파티셔닝된 데이터 단위이며, 데이터 구조는 아래와 같이 Timestamp/Dimensions/Metrics로 구성된다. Segment 생성 시 시간 단위는 granularitySpec/partitionSpec 설정에 따라 결정되며, Reference에 따르면 300 MB ~ 700 MB / 5 million Rows가 추천하는 초기 설정값이라고 한다. 이 외에도 Segment는 shardSpec에 따라 샤딩될 수 있는데 전체 샤드를 포함하여 block이라 하며, Linear shard spec을 제외하면 전체 샤드가 생성되어야 Query 시 처리될 수 있다. Segment는 ID로써 DataSource_Interval_Version_Partiti..
2019.12.29 -
Apache Druid Architecture
Druid는 Coordinator, Overlord, Broker, Router, Historical, MiddleManager로 프로세스가 구성되며, Master, Query, Data로 서버가 구성된다. Master: Manages Data Availability and Ingestion Coordinator: manage data availability Overlord: control the assignment of data ingestion workloads Query: Handles Queries from External Clients Broker: handle queries from external clients Router(Optional): route requests to Brokers, ..
2019.12.29 -
Apache Druid 개요
Apache Druid는 아파치 인큐베이팅 프로젝트 중 하나로 홈페이지 내 설명에 따르면 대용량 데이터셋에 대한 신속한 분석이 가능한 데이터베이스라고 한다. A real-time analytics database designed for fast slice-and-dice analytics ("OLAP" queries) on large data sets - Clickstream analytics (web and mobile analytics) - Network telemetry analytics (network performance monitoring) - Server metrics storage - Supply chain analytics (manufacturing metrics) - Applicatio..
2019.12.29 -
간단하게 Spark ML Model 로딩하기 (Decision Tree)
Spark ML을 사용하여 간단하게 ML을 비즈니스 로직에서 활용하고 싶을 때가 있다. 그리고 그 비즈니스 로직에서 ML을 여러 개 사용하고 싶을 때도 물론 있다. 하지만 문제는 이때부터 발생한다. Spark ML에는 다양한 ML 기능이 RDD 혹은 DataFrame을 이용할 수 있도록 구현되어 있는데, 이 모델을 저장하고 로딩할 때 기본 라이브러리를 이용하면 각 모델마다 지연시간이 발생한다. load 함수를 호출할 때마다 Spark Task로써 SVMModel, DecisionTreeModel, GradientBoostedTreesModel 등의 모델 로딩이 수행된다. 하지만 이 로딩 과정이라는게 위 언급한 모델에서는 별 것 없다. 결과는 단순히 의사 결정 나무일 뿐이고, GBT 같은 경우는 이 트리가..
2019.08.11