Sangwon
10/20/2026, 7:42 AMRocky
10/20/2026, 7:42 AMenable_tablet_internal_parallel 파라미터가 `TRUE`인 경우, StarRocks는 태블릿 하나를 여러 스레드에서 병렬로 처리할 수 있습니다. 이 경우 태블릿당 약 10GB 정도로 크게 설정해도 성능 저하가 적으며 관리가 용이해집니다.
* 주의사항: 태블릿 크기가 너무 작으면(예: 수십 MB 미만) 메타데이터 관리 오버헤드가 커지고, 너무 크면 데이터 복구(Restoration)나 밸런싱 작업 시간이 길어질 수 있습니다.
2. 버킷 수(태블릿 수) 설정 방법
테이블 생성 시 DISTRIBUTED BY HASH(...) BUCKETS <수> 구문을 통해 설정합니다.
* 자동 버킷 설정 (Automatic Bucketing, v2.5.7 이후): 사용자가 개수를 지정하지 않아도 StarRocks가 클러스터 리소스와 데이터 양을 고려하여 최적의 개수를 자동으로 계산합니다.
* BE 노드 수(X)에 따른 기본 계산 예시:
* X <= 12: 2X
* X <= 24: 1.5X
* X > 36: min(X, 48)
* 수동 설정: 데이터 양을 예측할 수 있다면 (예상 데이터 크기 / 권장 태블릿 크기) 공식으로 계산하여 입력합니다.
3. 태블릿 개수 확인 방법
현재 클러스터나 테이블의 태블릿 상태를 확인하려면 다음 SQL 명령어를 사용합니다.
* 전체 데이터베이스별 통계 확인:
sql
SHOW PROC '/statistic';
(각 DB의 TabletNum 항목에서 총 태블릿 개수 확인 가능)
* 특정 테이블의 파티션별 버킷(태블릿) 수 확인:
sql
SHOW PROC '/dbs/<db_id>/<table_id>/partitions';
-- 또는 최신 버전(v3.1.9+)에서는 정보 스키마 활용
SELECT DB_NAME, TABLE_NAME, PARTITION_NAME, BUCKETS
FROM information_schema.partitions_meta;
* 개별 태블릿 상세 정보 확인:
sql
SHOW TABLETS FROM <table_name>;
4. 태블릿 개수와 성능 관계
* 조회 성능: 태블릿이 너무 적으면 쿼리의 병렬 처리 능력이 제한될 수 있고, 너무 많으면 개별 태블릿 조회 오버헤드가 발생합니다.
* 쓰기 성능: 데이터 로드 시 태블릿마다 쓰기 스레드가 필요하므로, 태블릿 수가 너무 많으면 로드 시 부하가 커질 수 있습니다.
* BE당 제한: BE 노드당 태블릿 개수에 대한 엄격한 제한은 없으나, 일반적으로 노드당 수만 개에서 수십만 개 수준으로 유지하는 것이 관리 효율 측면에서 좋습니다.
더 구체적으로 특정 테이블의 태블릿 설계에 대해 궁금한 점이 있으시면 알려주세요!
References
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_PROC.md
• knowledge/admin_and_operation/shared_data_compaction.mdSangwon
10/20/2026, 7:43 AMRocky
10/20/2026, 7:43 AMenable_tablet_internal_parallel=true) 기능 덕분에, 태블릿 하나를 크게(약 10GB) 잡아도 쿼리 성능이 잘 나옵니다. 너무 잘게 쪼개는 것보다 적절히 크게 가져가는 것이 메타데이터 관리 측면에서 유리합니다.
* 최소 크기: 최소 *100MB 이상*은 유지하는 것이 좋습니다. 수십 MB 단위의 너무 작은 태블릿이 많아지면 FE(Frontend)의 메모리 사용량이 급증하고 스케줄링 오버헤드가 발생합니다.
2. 자동 버킷 설정 (권장)
직접 개수를 계산하기 어렵다면 StarRocks v2.5.7부터 도입된 자동 버킷(Automatic Bucketing) 기능을 사용하는 것이 가장 좋습니다. BUCKETS 수치를 생략하면 시스템이 BE 노드 수와 데이터 양을 고려해 최적의 개수를 할당합니다.
* 초기 테이블 생성 시 계산 공식 (BE 노드 수 = X):
* X <= 12: 2X 개
* X <= 24: 1.5X 개
* X > 36: min(X, 48) 개
* 이후 데이터가 늘어나면 이전 파티션의 데이터 양을 참고하여 새 파티션의 버킷 수를 자동으로 조절합니다.
3. 클러스터 전체 태블릿 개수와 FE 메모리
클러스터 전체의 태블릿 개수가 많아질수록 FE의 메모리 설정(JVM Heap)을 늘려야 합니다.
* 100만 개 미만: FE 메모리 최소 16GB
* 100만 ~ 200만 개: FE 메모리 32GB
* 200만 ~ 500만 개: FE 메모리 64GB
* 일반적으로 BE 노드당 수만 개 정도까지는 안정적으로 운영 가능하나, 수십만 개가 넘어가면 관리가 복잡해질 수 있습니다.
4. 설정 팁 요약
* 데이터가 적은 테이블: BE 노드 수와 동일하게 설정하거나 자동 설정을 맡기세요.
* 데이터가 아주 많은 테이블: `(파티션당 예상 데이터 용량 / 10GB)`로 계산하여 버킷 수를 설정하세요.
* 조인(Join) 최적화: Colocate Join을 사용해야 하는 경우, 조인할 테이블들의 버킷 개수를 반드시 동일하게 맞춰야 합니다.
결론적으로: 특별한 이유가 없다면 *자동 버킷 설정*을 사용하시고, 특정 파티션에 데이터가 너무 몰려 태블릿 크기가 10GB를 훨씬 초과하는 경우에만 수동으로 버킷 수를 늘려주는 방식을 추천합니다.
References
• table_design/data_distribution/Data_distribution.md
• faq/Others.md
• best_practices/bucketing.md
References
• best_practices/bucketing.md
• knowledge/usage/best-practice.md
• best_practices/query_tuning/schema_tuning.md
• table_design/data_distribution/Data_distribution.mdSangwon
10/20/2026, 7:46 AMRocky
10/20/2026, 7:46 AMsql
-- 특정 테이블의 모든 태블릿 목록 조회
SHOW TABLET FROM <table_name>;
-- 특정 파티션의 태블릿만 조회
SHOW TABLET FROM <table_name> PARTITION (<partition_name>);
2. 전체 DB별 태블릿 총합 확인 (가장 빠름)
클러스터 전체의 메타데이터 통계를 요약해서 보여줍니다. TabletNum 컬럼에서 각 데이터베이스별 총 태블릿 개수를 확인할 수 있습니다.
sql
SHOW PROC '/statistic';
3. BE(Worker) 노드별 태블릿 개수 확인
각 BE 노드에 분산되어 있는 태블릿의 개수를 확인하고 싶을 때 사용합니다.
sql
-- 시스템 스키마를 이용한 BE별 태블릿 수 집계
SELECT BE_ID, COUNT(*)
FROM information_schema.be_tablets
GROUP BY BE_ID;
참고: 복제본(Replica)이 3개라면 하나의 태블릿 ID가 서로 다른 BE에 3번 카운트됩니다.
4. 파티션별 버킷(태블릿) 설정 개수 확인
테이블 설계 시 설정한 버킷 수를 확인하고 싶을 때 유용합니다.
sql
-- v3.1 이상 권장
SELECT
TABLE_NAME,
PARTITION_NAME,
BUCKETS
FROM information_schema.partitions_meta
WHERE TABLE_NAME = '테이블명';
-- 또는
SHOW PARTITIONS FROM <table_name>;
5. 상세 태블릿 정보 조회
특정 태블릿 ID에 대해 어느 DB/테이블에 속해 있는지 확인하고 싶을 때 사용합니다.
sql
SHOW TABLET <tablet_id>;
팁: 클러스터 전체의 태블릿 개수가 너무 많아지면(수백만 개 이상) FE의 메모리 부하가 커질 수 있으므로, SHOW PROC '/statistic'; 명령어로 주기적으로 전체 개수를 모니터링하는 것이 좋습니다.
References
• sql-reference/sql-statements/table_bucket_part_index/SHOW_TABLET.md
• sql-reference/information_schema/be_tablets.md
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_PROC.md
References
• sql-reference/information_schema/be_tablets.md
• sql-reference/sql-statements/table_bucket_part_index/SHOW_TABLET.md
• administration/management/monitoring/metrics.md