<@U0A71G31CDV> Starrocks Internal Catalog 에 만든 Tab...
# questions-and-troubleshooting
s
@Rocky Starrocks Internal Catalog 에 만든 Table에 파티션의 Limit이 있어?? limit이 있으면 얼마이며, 꽉 찼을떄 정책이 어떻게 되는지 알려줘
r
StarRocks Internal Catalog에 생성된 테이블의 파티션 개수에는 제한이 있으며, 주요 설정값과 정책은 다음과 같습니다. 1. 주요 파티션 제한 수치 가장 직접적인 제한은 FE(Front-End) 설정 파라미터인 *`max_partition_number_per_table`*에 의해 결정됩니다. * 테이블당 최대 파티션 수 (
max_partition_number_per_table
):
* 기본값: 100,000개 (v3.3.2 버전부터 도입) * 의미: 하나의 테이블 내에 존재할 수 있는 전체 파티션의 총합입니다. * 한 번에 생성 가능한 최대 파티션 수 (
max_partitions_in_one_batch
):
* 기본값: 4,096개 * 의미:
ALTER TABLE
등을 통해 한 번의 작업으로 대량의 파티션을 생성할 때의 제한입니다. * 자동 파티션 생성 제한 (
auto_partition_max_creation_number_per_load
):
* 기본값: 4,096개 * 의미: Automatic Partitioning 기능을 사용할 때, 데이터 로딩 한 번에 자동으로 생성될 수 있는 파티션의 최대치입니다. 2. 한도 도달 시 정책 (Behavior) 파티션 제한 수치에 도달하면 다음과 같은 현상이 발생합니다. * DDL 에러: 파티션을 수동으로 추가하거나
ALTER
문을 수행할 때 제한을 초과하면 "too many partitions" 관련 에러가 발생하며 작업이 실패합니다. * 데이터 로딩 실패:
auto_partition
기능을 사용 중일 때 새로운 파티션 생성이 필요한 데이터가 들어왔으나 제한을 넘어서게 되면, 해당 로드 작업(Load Job)은 실패 처리됩니다. * 동적 파티션(Dynamic Partition) 생성 실패: 동적 파티션 설정(
start
,
end
오프셋)에 따라 생성될 파티션 수가 `max_dynamic_partition_num`(기본값 500)을 초과하면 파티션 생성 스케줄러가 에러를 발생시킵니다. 3. 관리 권장 사항 (Policy) 파티션이 무분별하게 많아지면 메타데이터 관리 부하가 커지고 쿼리 성능이 저하될 수 있습니다. 이를 방지하기 위해 다음 기능을 활용하는 것이 권장됩니다. * Partition TTL (Retention Policy): *
partition_live_number
설정을 통해 최신 N개의 파티션만 유지하고 오래된 파티션은 자동으로 삭제하도록 설정할 수 있습니다. * v3.5.0 이상에서는 `partition_retention_condition`을 사용하여 더 정교한 삭제 조건을 지정할 수 있습니다. * 적정 크기 유지: 일반적으로 파티션 하나당 데이터 크기가 너무 작지 않게(수 GB 이상 권장) 설계하여 파티션 개수 자체를 최적화하는 것이 좋습니다. 설정값 확인은
ADMIN SHOW CONFIG;
명령어를 통해 가능하며, 필요한 경우 `ADMIN SET FRONTEND CONFIG ("이름" = "값");`으로 변경할 수 있으나, 메타데이터 부하를 고려하여 신중히 조정해야 합니다. Referencesadministration/management/FE_configuration.md
s
@Rocky partiton_live_number의 기본값은 얼마야?
r
`partition_live_number`는 StarRocks의 Expression Partitioning (v3.1+) 또는 *Materialized View*에서 파티션의 유지 기간(TTL)을 관리하기 위해 사용하는 테이블 속성(Property)입니다. 이 설정의 기본값과 동작 방식은 다음과 같습니다. 1. 기본값: "설정되지 않음 (제한 없음)" * `partition_live_number`는 필수 설정 항목이 아니며(Required: NO), 별도로 지정하지 않을 경우 기본값이 존재하지 않습니다. * 즉, 이 속성을 명시적으로 설정하지 않으면 파티션 자동 삭제 기능이 활성화되지 않으며, 모든 파티션은 수동으로 삭제하기 전까지 영구적으로 보존됩니다. 2. 사용 시 주의사항 * 활성화 방법: 테이블 생성 시 또는
ALTER TABLE
명령을 통해
PROPERTIES
내에 값을 지정해야 작동합니다.
Copy code
sql
    -- 예시: 최근 30개의 파티션만 유지
    PROPERTIES (
        "partition_live_number" = "30"
    )
* 삭제 기준: 현재 시간을 기준으로 파티션 키의 시간 값을 계산하여, 최신순으로 지정된 개수만큼만 남기고 과거 파티션은 자동으로 삭제합니다. * 체크 주기: FE(Front-End)의
dynamic_partition_check_interval_seconds
설정값(기본 600초, 즉 10분)마다 파티션 상태를 체크하여 삭제 작업을 수행합니다. 3. 유사한 설정 (Dynamic Partitioning) 만약 Expression Partitioning이 아닌 기존의 Dynamic Partitioning 방식을 사용 중이라면, 유사한 역할을 하는 속성은 다음과 같습니다. *
dynamic_partition.history_partition_num
: 과거 파티션을 몇 개 보존할지 결정합니다. 이 역시 기본값은 *0*으로, 명시적으로 설정하지 않으면 과거 파티션을 자동으로 삭제하지 않습니다. 결론적으로, `partition_live_number`는 사용자가 직접 지정해야만 동작하며, 지정하지 않았을 때 자동으로 적용되는 기본 수치는 없습니다. Referencestable_design/data_distribution/expression_partitioning.mdadministration/management/FE_configuration.md Referencesadministration/management/FE_configuration.md