The Boxer
Druid Query Filter 본문
728x90
반응형
- druid에서 query에 어떤 데이터가 포함되어야 하는지 명시
- SQL에서 row단위의 제약을 거는 where 절과 동일하게 볼 수 있음
- 일반적으로 dimension 에 적용되는 조건이나, metric 에도 적용될 수 있음
query filter 종류
selector
- 가장 기본적인 filter
- 특정 dimension의 지정한 값에 해당하는 데이터 추출
- extraction function 적용 가능
{
"filter": {
"type": "selector",
"dimension": "d1" ,
"value": "test"
}
}
column comparison
- 특정 dimension이 같은 조건에 해당하는 데이터 추출
- 예시에서 dimension1 = dimension2 와 같은 기능
{
"filter": {
"type": "columnComparison",
"dimensions": [ "dimension1" , "dimension2" ]
}
}
regex
- 정규표현식에 부합하는 조건으로 추출
{
"filter": {
"type": "regex",
"dimension": "dimension" ,
"pattern": ".*"
}
}
logical expression
- 기본 형식
{ "type": "and" | "or" | "not", "fields": [filter] | filter }
- filter 타입은 query filter의 어떤 종류도 적용 가능
- and, or, not
search filter
- 지정한 문자열이 특정 dimension에 부분 매칭되는 조건으로 데이터 추출
{
"filter": {
"type": "search",
"dimension": "dimension",
"query": {
"type": "contains",
"value": "foo"
}
}
}
query의 type
- Contains: 일반적인 search query
- caseSensitive: 대소문자 구분
- Insensitive Contains: 대소문자 구분 없음
in
- 특정 dimension이 지정한 리스트에 속해있는 데이터 추출
{
"type": "in",
"dimension": "dimension",
"values": ["value1", "value2", "value3"]
}
like
- wildcard 검색 방식
- 일반적인 SQL의 like 문과 동일하게 볼 수 있음
{
"type": "like",
"dimension": "dimension",
"pattern": "t%"
}
bound
- dimension을 특정값 범위 내에서 필터링
{
"type": "bound",
"dimension": "dimension",
"lower": "less than",
"upper": "greater than",
"ordering": "범위를 지정할 때 값을 정렬하는 방법"
}
interval
- 시간단위 column에 대해 범위 지정
{
"type" : "interval",
"dimension" : "__time",
"intervals" : [
"2014-10-01T00:00:00.000Z/2014-10-07T00:00:00.000Z",
]
}
extraction function
- input value를 변환시켜 filter 조건 적용
- spatial을 제외한 모든 쿼리 방식에 적용 가능
lookup 예시
{
"filter": {
"type": "selector",
"dimension": "channel",
"value": "bar",
"extractionFn": {
"type": "lookup",
"lookup": {
"type": "map",
"map": {
"foo": "bar"
}
}
}
}
}
- 위 예시에서 channel dimension에 대해 foo 에 해당하는 값을 bar 로 변환시키고 해당 값에 대해 selector filter가 적용된다.
728x90
반응형
'Storage > Druid' 카테고리의 다른 글
apache druid (0) | 2022.08.07 |
---|---|
druid 구성 요소 (0) | 2022.07.28 |
druid segment (0) | 2022.07.26 |
druid 구조 (0) | 2022.07.26 |
Druid Native Queries (0) | 2022.07.14 |
Comments