Minion 병합·롤업 작업
Minion 병합·롤업 작업 (Minion Merge Rollup Task)
Minion의 병합·롤업(Merge/Rollup) 작업으로 여러 세그먼트를 압축하는 방법을 안내해요.
출처: 문서
본문
개요 (Overview)
시간이 지나면 테이블에 작고 많은 세그먼트가 생겨 쿼리 성능과 저장 효율이 떨어질 수 있어요. Merge Rollup 작업은 여러 세그먼트를 하나로 병합(merge)하거나 롤업(rollup)해 세그먼트 수를 줄이고 효율을 높여요.
병합 유형 (Merge types)
- CONCAT (병합) — 여러 세그먼트를 단순히 이어붙여 더 큰 세그먼트로 만들어요. 중복 제거나 집계는 하지 않아요.
- ROLLUP (롤업) — 지정된 집계 함수로 메트릭을 사전 집계해 세그먼트를 압축해요. 예:
SUM,COUNT,MAX,MIN,AVG. 중복 차원을 병합해 크기를 크게 줄일 수 있어요. - DEDUP (중복 제거) — 세그먼트 안의 중복 행을 제거해요.
구성 (Configuration)
테이블 구성의 task 섹션에서 작업을 예약하고 병합 유형·집계 함수를 지정해요:
"task": {
"taskTypeConfigsMap": {
"MergeRollupTask": {
"schedule": "0 0 2 * * ?",
"mergeType": "ROLLUP",
"aggregationTypes": {
"revenue": "SUM",
"count": "SUM"
}
}
}
}
mergeType—CONCAT,ROLLUP,DEDUP.aggregationTypes— 롤업 시 메트릭 컬럼별 집계 함수.- 시간 범위(
bufferTimePeriod)를 지정해 오래된 세그먼트를 대상으로 할 수 있어요.
사용 시점 (When to use)
- 작은 세그먼트가 많아 쿼리가 느려질 때 병합으로 세그먼트 수를 줄여요.
- 오래된 데이터를 롤업해 저장 공간을 절약하고자 할 때.
모범 사례 (Best practices)
- 롤업은 정밀도를 잃을 수 있으므로 집계 함수를 신중히 선택하세요.
- 실시간 테이블의 완료된 세그먼트 압축에도 활용할 수 있어요.