snp-batch-validation/src/main/java/com/snp/batch/global/partition/PartitionConfig.java

51 lines
1.3 KiB
Java
Raw Normal View 히스토리

package com.snp.batch.global.partition;
import lombok.Getter;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 파티션 관리 대상 테이블 설정
*
* Daily 파티션: 매일 실행
* Monthly 파티션: 매월 말일에만 실행
*/
@Getter
@Component
public class PartitionConfig {
/**
* Daily 파티션 대상 테이블 (파티션 네이밍: {table}_YYYY_MM_DD)
*/
private final List<PartitionTableInfo> dailyPartitionTables = List.of(
// 추후 daily 파티션 테이블 추가
);
/**
* Monthly 파티션 대상 테이블 (파티션 네이밍: {table}_YYYY_MM)
*/
private final List<PartitionTableInfo> monthlyPartitionTables = List.of(
new PartitionTableInfo(
"snp_data",
"ais_target",
"message_timestamp",
2 // 미리 생성할 개월 수
)
);
/**
* 파티션 테이블 정보
*/
public record PartitionTableInfo(
String schema,
String tableName,
String partitionColumn,
int periodsAhead // 미리 생성할 기간 수 (daily: 일, monthly: 월)
) {
public String getFullTableName() {
return schema + "." + tableName;
}
}
}