캐시된 전역 조회
캐시된 전역 조회 (Cached global lookups)
druid-lookups-cached-global 확장은 조회를 클러스터의 모든 서버에 캐시·전파하는 기능을 제공해요. 이 확장으로 조회를 구성하고 관리하는 방법을 설명할게요.
출처: 문서
본문
druid-lookups-cached-global을 사용하려면 확장용 druid-lookups-cached-global을 로드하세요. 이 확장은 조회를 Coordinator로 관리하고 관련 서버(Historical, Broker 등)에 배포·캐시하도록 해요.
조회 구성 (Configuring lookups)
캐시된 전역 조회는 Coordinator의 /druid/coordinator/v1/lookups HTTP 엔드포인트로 구성·관리돼요. 조회는 Collection(모음)으로 조직되고, 각 조회는 tier로 그룹화될 수 있어요. 조회 배포는 모든 서버가 같은 조회 뷰를 유지하도록 보장해요.
조회를 추가하거나 갱신하는 기본 절차:
POST /druid/coordinator/v1/lookups로 새 조회를 등록하고,POST /druid/coordinator/v1/lookups/{tier}로 조회를 컬렉션에 연결하며,- 변경 사항은 Coordinator가 주기적으로(기본적으로 몇 초마다) 조회에 참여하는 서버에 전파해요.
Lookup 구성 예시
다음은 조회를 등록하는 예시 JSON이에요:
{
"type": "map",
"map": {
"key1": "value1",
"key2": "value2"
},
"isOneToOne": false
}
조회의 일반적 속성들:
| 속성 | 설명 | 기본값 |
| type | 조회 타입. map, uri, jdbc, poly 등. | (필수) |
| isOneToOne | 조회가 일대일 매핑인지 여부. true면 일대일 최적화를 사용. | false |
| injective | 일대일 매핑인지 (추천). | false |
| namespace | 조회 네임스페이스. | (필수) |
조회 타입별 속성
Map lookup (map)
구성 안에 인라인으로 정의된 정적 매핑이에요:
{
"type": "map",
"map": { "key": "value" },
"isOneToOne": false
}
URI lookup (uri)
외부 URI(파일 또는 HTTP(S))에서 매핑을 로드하고 주기적으로 갱신해요. 지원 형식: json, csv, tsv, properties.
주요 속성:
| 속성 | 설명 | 기본값 |
| uri | 매핑이 있는 URI | (필수) |
| uriPrefix | URI 접두사 (갱신용 폴링) | (필수) |
| fileRegex | 폴링할 파일 정규식 | .*\.json |
| namespaceParseSpec | 파싱 스펙 (csv, tsv, json, properties) | (필수) |
| pollPeriod | 다시 로드 주기 | 구성에 따름 |
JDBC lookup (jdbc)
JDBC로 데이터베이스 테이블에서 매핑을 로드해요. keyColumn, valueColumn, table, jdbcUrl, jdbcUser, jdbcPassword 속성으로 데이터 소스를 지정하고, pollPeriod 주기로 갱신해요.
폴리노미얼·레인지 조회 (poly, bounded_poly)
숫자 범위를 값에 매핑하는 고급 조회예요. polynomial은 선형 보간, boundedPolynomial은 0과 1 사이 함수 동작을 제어해요.
조회 사용 (Using lookups)
조회는 쿼리에서 LookupDimensionSpec 또는 Druid SQL의 LOOKUP 함수로 사용돼요. 조회가 적용되면 쿼리 시간에 키가 매핑된 값으로 변환돼요.
Coordinator 구성
Coordinator의 조회 관련 기본 속성:
| 속성 | 설명 | 기본값 | | druid.lookup.enableLookupSyncOnStartup | 시작 시 조회 동기화 활성화 | true | | druid.lookup.lookupStartRetries | 조회 시작 재시도 횟수 | 4 | | druid.lookup.lookupUpdateRetries | 조회 갱신 재시도 횟수 | 4 | | druid.lookup.initialLookupTimeout | 초기 조회 타임아웃 (ms) | 5000 | | druid.lookup.lookupAddRetries | 조회 추가 재시도 횟수 | 4 |
CoordinatorDynamicConfig를 통해 조회 동기화를 켜고 끌 수도 있어요.
더 알아보기 (Learn more)
- Lookups (조회) — 쿼리타임 조회 개념을 살펴보세요.
- Kafka extraction namespace — Kafka 기반 조회 확장을 알아보세요.
- DimensionSpec — 차원 스펙에서 조회를 적용하는 방법을 알아보세요.