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 dailyPartitionTables = List.of( // 추후 daily 파티션 테이블 추가 ); /** * Monthly 파티션 대상 테이블 (파티션 네이밍: {table}_YYYY_MM) */ private final List 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; } } }