나의 잡다한 노트 및 메모

Datasources 단계 본문

데이터엔지니어/Druid

Datasources 단계

peanutwalnut 2025. 3. 2. 23:17

Druid에서 "Datasources"란?

Datasources는 Druid에서 데이터를 저장하고 관리하는 논리적인 테이블 개념입니다.

Druid는 전통적인 관계형 데이터베이스(RDBMS)의 테이블과 비슷한 개념을 사용하지만, 내부적으로는 더 최적화된 저장 구조를 가집니다.
즉, Druid에서 데이터를 저장, 쿼리 및 관리하는 기본 단위Datasource입니다.

 

Datasource의 특징

SQL의 "TABLE"과 유사하지만, 더 고성능 데이터 처리를 지원
시간 기반(time-series) 데이터를 저장하고 최적화
자동으로 세그먼트(segment)로 분할하여 저장
Roll-up(롤업) 기능을 통해 데이터 압축 및 성능 향상 가능
실시간(Streaming) 또는 배치(Batch) 방식으로 데이터 추가 가능

 

 

2Datasources 탭에서 볼 수 있는 정보

Druid의 "Datasources" 탭에서는 각 Datasource에 대한 다양한 정보를 확인할 수 있습니다.

항목설명

Name (이름) Datasource의 이름
Availability (사용 가능 여부) 현재 데이터가 활성화되어 있는지 확인
Total Rows (총 행 개수) 해당 Datasource에 저장된 총 데이터 개수
Size (크기) Datasource가 차지하는 총 저장 공간
Segment Granularity (세그먼트 단위) 데이터가 어떻게 시간 단위(예: hourly, daily)로 분할되는지 표시
Roll-up 여부 데이터가 롤업(Aggregation)되어 저장되었는지 여부
Retention Rules (보존 규칙) 데이터가 얼마나 오래 저장되는지에 대한 정책
Compaction (압축 상태) 오래된 데이터가 최적화되었는지 확인

 

 

Datasource 내부 구조

Druid에서 하나의 Datasource는 내부적으로 Segment라는 작은 블록 단위로 나누어 저장됩니다.

Datasource 내부 구조 예시

Datasource: sales_data
 ├── Segment 1 (2024-01-01T00:00:00)
 ├── Segment 2 (2024-01-02T00:00:00)
 ├── Segment 3 (2024-01-03T00:00:00)
 ├── ...
 
  • Druid는 데이터를 시간 단위로 분할하여 저장 → 쿼리 성능이 향상
  • Segment는 별도의 파일로 관리되며, 필요 시 병합(Compaction) 가능
  • 데이터가 많아도 전체를 읽지 않고 필요한 Segment만 조회할 수 있음

 

Datasources 관리 (관리자 기능)

Druid의 Datasources 탭에서는 데이터 관리와 관련된 여러 가지 작업을 수행할 수 있습니다.

주요 관리 기능

기능설명

데이터 조회 SQL 또는 Druid 네이티브 쿼리를 사용하여 데이터 검색
데이터 삭제 오래된 데이터를 제거하거나 특정 기간 데이터를 삭제
Compaction (데이터 병합) 여러 개의 Segment를 하나로 병합하여 성능 최적화
Indexing (재인덱싱) 데이터 구조를 최적화하여 빠른 검색 가능
Retention Policy (보존 정책) 일정 기간이 지난 데이터를 자동으로 삭제할 수 있도록 설정

 

 

Datasources vs. RDBMS 테이블 비교

비교 항목Druid DatasourcePostgreSQL/MySQL 테이블

데이터 구조 세그먼트(Segment) 단위 저장 행(Row) 기반 저장
쿼리 성능 시계열 데이터 및 Aggregation 최적화 범용적인 CRUD 쿼리에 최적화
데이터 추가 방식 실시간 스트리밍 또는 배치 적재 SQL INSERT 문 사용
데이터 삭제 주로 보존 정책(Retention) 사용 DELETE FROM table 지원
롤업 (Roll-up) 동일한 키를 가진 데이터를 사전에 집계 가능 모든 행을 개별적으로 저장
사용 사례 로그 분석, IoT, 클릭스트림 데이터 전통적인 CRUD 기반 애플리케이션

 

'데이터엔지니어 > Druid' 카테고리의 다른 글

Supervisors 란?  (0) 2025.03.02
Druid에서 Tune parameters 단계  (0) 2025.03.02
Druid에서 Filter 단계  (0) 2025.03.02
Druid에서 Parser의 역할  (0) 2025.03.02
Druid 아키텍처 중 주요 컴포넌트의 역할  (0) 2025.03.01