IDSET 함수
IDSET 함수
Apache Pinot의 IDSET 집계 함수는 컬럼의 고유 값 집합을 나타내는 직렬화된 IdSet을 반환해요. IdSet은 INT 컬럼은 RoaringBitmap, LONG 컬럼은 Roaring64NavigableMap, 그 외 타입은 BloomFilter로 구현돼요. 직렬화된 IdSet은 IN_ID_SET 필터와 함께 쓰면 효율적인 사전 계산 필터링에 유용해요.
출처: 문서
본문
IDSET 함수는 컬럼의 고유 값 집합을 나타내는 직렬화된 IdSet을 반환하는 집계 함수예요. IdSet은 INT 컬럼은 RoaringBitmap, LONG 컬럼은 Roaring64NavigableMap, 그 외 타입은 BloomFilter로 구현돼요. 직렬화된 IdSet은 IN_ID_SET 필터와 함께 쓰면 효율적인 사전 계산 필터링에 유용해요.
선택 파라미터로 IdSet 타입과 속성을 구성할 수 있어요.
시그니처
IDSET(colName)
IDSET(colName, 'parameters')
지원 파라미터 (세미콜론으로 구분):
| Parameter | Description | Default |
|---|---|---|
sizeThresholdInBytes |
Maximum size before switching to BloomFilter | 8MB |
expectedInsertions |
Expected number of insertions for BloomFilter | 5000000 |
fpp |
False positive probability for BloomFilter | 0.03 |
사용 예시
아래 예시는 Batch Quick Start를 기반으로 해요.
select IDSET(playerID) AS value
from baseballStats
WHERE yearID = 2000
select IDSET(playerID, 'sizeThresholdInBytes=1048576;expectedInsertions=5000000;fpp=0.03') AS value
from baseballStats
결과 IdSet은 이후 쿼리에서 사용할 수 있어요:
select playerName
from baseballStats
WHERE IN_ID_SET(playerID, '<base64-encoded-idset>') = 1