나의 잡다한 노트 및 메모

Druid에서 Filter 단계 본문

데이터엔지니어/Druid

Druid에서 Filter 단계

peanutwalnut 2025. 3. 2. 22:27

 

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
    결과: city 값이 **"Seoul"**인 데이터만 유지

(2) in 필터 사용 (여러 값 중 하나 포함)

  • 여러 개의 값 중 하나와 일치하는 데이터만 필터링.
  • 예제:
    • Dimension: country
    • Value: USA, Canada, UK
    결과: country 값이 USA, Canada, UK 중 하나인 데이터만 유지

 

(3) interval 필터 사용 (날짜 범위 지정)

  • 특정 날짜 또는 시간 범위 내 데이터만 유지.
  • 예제:
    • Dimension: timestamp
    • Value: 2024-01-01T00:00:00/2024-12-31T23:59:59
    결과: 2024년 동안의 데이터만 유지

(4) regex 필터 사용 (정규식 매칭)

  • 특정 패턴을 만족하는 데이터를 필터링.
  • 예제:
    • Dimension: name
    • Value: ^A.*
    결과: name 값이 "A"로 시작하는 데이터만 유지 (예: Alice, Andrew)

(5) like 필터 사용 (부분 문자열 매칭)

  • SQL의 LIKE 연산자와 유사하게 동작.
  • 예제:
    • Dimension: email
    • Value: %@gmail.com
    결과: 이메일 주소가 @gmail.com으로 끝나는 데이터만 유지

(6) not 필터 사용 (부정 조건 적용)

  • 특정 조건을 만족하지 않는 데이터를 선택.
  • 예제:
    • Dimension: category
    • Value: Spam, Test
    결과: category 값이 "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