Development/DB(5)
-
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 -
PostgreSQL에서 CSV 파일 Import하기
가장 먼저 할일은 덤프파일로 생성해둔 Original 파일의 인코딩 확인하기 file original/file/path/dump.csv 위의 결과로 해당 파일의 인코딩이 확인된다. 그리고 PostgreSQL의 타깃 데이터베이스 인코딩을 변환 작업을 수행한다. iconv -f original_encoding -t target_encoding original/file/path/dump.csv > target/file/path/dum_converted.csv 이제 인코딩 작업이 완료되었다. PostgreSQL 내 데이터베이스 및 테이블을 생성하고 다음과 같은 예제로 csv에서 copy한다. \copy public.dummy07("A","B", ..., "C") from '/root/dump_07.csv' de..
2017.01.05