나의 잡다한 노트 및 메모
Datasources 단계 본문
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 |