나의 잡다한 노트 및 메모
Druid에서 Filter 단계 본문
Druid의 "Transform data and configure schema" 단계에서 Filter 설정을 하면, 원하는 데이터만 선택적으로 가져올 수 있습니다. 즉, 필터를 적용하면 불필요한 데이터를 제거하고, 특정 조건을 만족하는 데이터만 Druid에 저장할 수 있습니다.
1. 필터 타입 설명
Druid에서 사용할 수 있는 필터 타입은 여러 가지가 있으며, 선택한 필터 타입에 따라 데이터를 어떻게 필터링할지 결정됩니다.
필터 타입설명예제
selector | 특정 값과 일치하는 데이터만 선택 | city = 'Seoul' |
in | 여러 값 중 하나와 일치하는 데이터 선택 | country IN ('USA', 'Canada', 'UK') |
interval | 특정 시간 범위 내 데이터 선택 | timestamp BETWEEN '2024-01-01' AND '2024-12-31' |
regex | 정규식을 이용하여 데이터 필터링 | name MATCHES '^A.*' (A로 시작하는 데이터) |
like | SQL LIKE 연산자처럼 특정 패턴과 일치하는 데이터 선택 | email LIKE '%@gmail.com' |
not | 특정 조건을 만족하지 않는 데이터 선택 (부정 연산) | category NOT IN ('Spam', 'Test') |
2. 필터를 적용하는 방법
(1) selector 필터 사용 (단일 값 필터링)
- 특정 차원(Dimension)의 값이 특정 값과 정확히 일치하는 경우만 가져옴.
- 예제:
- Dimension: city
- Value: Seoul
(2) in 필터 사용 (여러 값 중 하나 포함)
- 여러 개의 값 중 하나와 일치하는 데이터만 필터링.
- 예제:
- Dimension: country
- Value: USA, Canada, UK
(3) interval 필터 사용 (날짜 범위 지정)
- 특정 날짜 또는 시간 범위 내 데이터만 유지.
- 예제:
- Dimension: timestamp
- Value: 2024-01-01T00:00:00/2024-12-31T23:59:59
(4) regex 필터 사용 (정규식 매칭)
- 특정 패턴을 만족하는 데이터를 필터링.
- 예제:
- Dimension: name
- Value: ^A.*
(5) like 필터 사용 (부분 문자열 매칭)
- SQL의 LIKE 연산자와 유사하게 동작.
- 예제:
- Dimension: email
- Value: %@gmail.com
(6) not 필터 사용 (부정 조건 적용)
- 특정 조건을 만족하지 않는 데이터를 선택.
- 예제:
- Dimension: category
- Value: Spam, Test
3. 필터 설정 시 고려할 점
필터를 너무 많이 적용하면 데이터가 너무 제한될 수 있음
필터링 후 데이터가 기대한 대로 남는지 확인 (Previews 기능 활용)
시간 필터(interval)를 활용하면 Druid의 성능이 더욱 향상됨
정규식(regex) 필터는 성능 비용이 클 수 있으므로 주의해야 함
'데이터엔지니어 > Druid' 카테고리의 다른 글
Supervisors 란? (0) | 2025.03.02 |
---|---|
Datasources 단계 (0) | 2025.03.02 |
Druid에서 Tune parameters 단계 (0) | 2025.03.02 |
Druid에서 Parser의 역할 (0) | 2025.03.02 |
Druid 아키텍처 중 주요 컴포넌트의 역할 (0) | 2025.03.01 |