[ADD] Spring Batch용 MariaDB 스키마 추가 및 초기화 설정 개선, Kubernetes 매니페스트 및 애플리케이션 속성 업데이트

main
bjkim 1 month ago
parent 0928291c9b
commit 8970c3a809

@ -156,7 +156,7 @@ apiVersion: v1
kind: Service
metadata:
name: mariadb-svc
namespace: etri
namespace: etri-aisw
spec:
selector:
app: mariadb
@ -170,7 +170,7 @@ apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: autoflow-server-ingress
namespace: etri
namespace: etri-aisw
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip

@ -5,126 +5,83 @@ metadata:
namespace: etri-aisw
data:
init.sql: |
create table batch_job_execution_seq
(
next_not_cached_value bigint(21) not null,
minimum_value bigint(21) not null,
maximum_value bigint(21) not null,
start_value bigint(21) not null comment 'start value when sequences is created or value if RESTART is used',
increment bigint(21) not null comment 'increment value',
cache_size bigint(21) unsigned not null,
cycle_option tinyint(1) unsigned not null comment '0 if no cycles are allowed, 1 if the sequence should begin a new cycle when maximum_value is passed',
cycle_count bigint(21) not null comment 'How many cycles have been done'
);
create table batch_job_instance
(
JOB_INSTANCE_ID bigint not null
primary key,
VERSION bigint null,
JOB_NAME varchar(100) not null,
JOB_KEY varchar(32) not null,
constraint JOB_INST_UN
unique (JOB_NAME, JOB_KEY)
);
CREATE TABLE BATCH_JOB_INSTANCE (
JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY,
VERSION BIGINT,
JOB_NAME VARCHAR(100) NOT NULL,
JOB_KEY VARCHAR(32) NOT NULL,
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
) ENGINE=InnoDB;
create table batch_job_execution
(
JOB_EXECUTION_ID bigint not null
primary key,
VERSION bigint null,
JOB_INSTANCE_ID bigint not null,
CREATE_TIME datetime(6) not null,
START_TIME datetime(6) null,
END_TIME datetime(6) null,
STATUS varchar(10) null,
EXIT_CODE varchar(2500) null,
EXIT_MESSAGE varchar(2500) null,
LAST_UPDATED datetime(6) null,
constraint JOB_INST_EXEC_FK
foreign key (JOB_INSTANCE_ID) references batch_job_instance (JOB_INSTANCE_ID)
);
CREATE TABLE BATCH_JOB_EXECUTION (
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
VERSION BIGINT,
JOB_INSTANCE_ID BIGINT NOT NULL,
CREATE_TIME DATETIME(6) NOT NULL,
START_TIME DATETIME(6) DEFAULT NULL,
END_TIME DATETIME(6) DEFAULT NULL,
STATUS VARCHAR(10),
EXIT_CODE VARCHAR(2500),
EXIT_MESSAGE VARCHAR(2500),
LAST_UPDATED DATETIME(6),
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
) ENGINE=InnoDB;
create table batch_job_execution_context
(
JOB_EXECUTION_ID bigint not null
primary key,
SHORT_CONTEXT varchar(2500) not null,
SERIALIZED_CONTEXT text null,
constraint JOB_EXEC_CTX_FK
foreign key (JOB_EXECUTION_ID) references batch_job_execution (JOB_EXECUTION_ID)
);
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
JOB_EXECUTION_ID BIGINT NOT NULL,
PARAMETER_NAME VARCHAR(100) NOT NULL,
PARAMETER_TYPE VARCHAR(100) NOT NULL,
PARAMETER_VALUE VARCHAR(2500),
IDENTIFYING CHAR(1) NOT NULL,
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ENGINE=InnoDB;
create table batch_job_execution_params
(
JOB_EXECUTION_ID bigint not null,
PARAMETER_NAME varchar(100) not null,
PARAMETER_TYPE varchar(100) not null,
PARAMETER_VALUE varchar(2500) null,
IDENTIFYING char not null,
constraint JOB_EXEC_PARAMS_FK
foreign key (JOB_EXECUTION_ID) references batch_job_execution (JOB_EXECUTION_ID)
);
CREATE TABLE BATCH_STEP_EXECUTION (
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
VERSION BIGINT NOT NULL,
STEP_NAME VARCHAR(100) NOT NULL,
JOB_EXECUTION_ID BIGINT NOT NULL,
CREATE_TIME DATETIME(6) NOT NULL,
START_TIME DATETIME(6) DEFAULT NULL,
END_TIME DATETIME(6) DEFAULT NULL,
STATUS VARCHAR(10),
COMMIT_COUNT BIGINT,
READ_COUNT BIGINT,
FILTER_COUNT BIGINT,
WRITE_COUNT BIGINT,
READ_SKIP_COUNT BIGINT,
WRITE_SKIP_COUNT BIGINT,
PROCESS_SKIP_COUNT BIGINT,
ROLLBACK_COUNT BIGINT,
EXIT_CODE VARCHAR(2500),
EXIT_MESSAGE VARCHAR(2500),
LAST_UPDATED DATETIME(6),
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ENGINE=InnoDB;
create table batch_job_seq
(
next_not_cached_value bigint(21) not null,
minimum_value bigint(21) not null,
maximum_value bigint(21) not null,
start_value bigint(21) not null comment 'start value when sequences is created or value if RESTART is used',
increment bigint(21) not null comment 'increment value',
cache_size bigint(21) unsigned not null,
cycle_option tinyint(1) unsigned not null comment '0 if no cycles are allowed, 1 if the sequence should begin a new cycle when maximum_value is passed',
cycle_count bigint(21) not null comment 'How many cycles have been done'
);
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
SERIALIZED_CONTEXT TEXT,
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
) ENGINE=InnoDB;
create table batch_step_execution
(
STEP_EXECUTION_ID bigint not null
primary key,
VERSION bigint not null,
STEP_NAME varchar(100) not null,
JOB_EXECUTION_ID bigint not null,
CREATE_TIME datetime(6) not null,
START_TIME datetime(6) null,
END_TIME datetime(6) null,
STATUS varchar(10) null,
COMMIT_COUNT bigint null,
READ_COUNT bigint null,
FILTER_COUNT bigint null,
WRITE_COUNT bigint null,
READ_SKIP_COUNT bigint null,
WRITE_SKIP_COUNT bigint null,
PROCESS_SKIP_COUNT bigint null,
ROLLBACK_COUNT bigint null,
EXIT_CODE varchar(2500) null,
EXIT_MESSAGE varchar(2500) null,
LAST_UPDATED datetime(6) null,
constraint JOB_EXEC_STEP_FK
foreign key (JOB_EXECUTION_ID) references batch_job_execution (JOB_EXECUTION_ID)
);
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
SERIALIZED_CONTEXT TEXT,
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ENGINE=InnoDB;
create table batch_step_execution_context
(
STEP_EXECUTION_ID bigint not null
primary key,
SHORT_CONTEXT varchar(2500) not null,
SERIALIZED_CONTEXT text null,
constraint STEP_EXEC_CTX_FK
foreign key (STEP_EXECUTION_ID) references batch_step_execution (STEP_EXECUTION_ID)
);
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;
CREATE SEQUENCE BATCH_JOB_INSTANCE_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;
create table batch_step_execution_seq
(
next_not_cached_value bigint(21) not null,
minimum_value bigint(21) not null,
maximum_value bigint(21) not null,
start_value bigint(21) not null comment 'start value when sequences is created or value if RESTART is used',
increment bigint(21) not null comment 'increment value',
cache_size bigint(21) unsigned not null,
cycle_option tinyint(1) unsigned not null comment '0 if no cycles are allowed, 1 if the sequence should begin a new cycle when maximum_value is passed',
cycle_count bigint(21) not null comment 'How many cycles have been done'
);
create table tb_datagroup
(

@ -0,0 +1,76 @@
CREATE TABLE BATCH_JOB_INSTANCE (
JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY,
VERSION BIGINT,
JOB_NAME VARCHAR(100) NOT NULL,
JOB_KEY VARCHAR(32) NOT NULL,
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
) ENGINE=InnoDB;
CREATE TABLE BATCH_JOB_EXECUTION (
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
VERSION BIGINT,
JOB_INSTANCE_ID BIGINT NOT NULL,
CREATE_TIME DATETIME(6) NOT NULL,
START_TIME DATETIME(6) DEFAULT NULL,
END_TIME DATETIME(6) DEFAULT NULL,
STATUS VARCHAR(10),
EXIT_CODE VARCHAR(2500),
EXIT_MESSAGE VARCHAR(2500),
LAST_UPDATED DATETIME(6),
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
) ENGINE=InnoDB;
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
JOB_EXECUTION_ID BIGINT NOT NULL,
PARAMETER_NAME VARCHAR(100) NOT NULL,
PARAMETER_TYPE VARCHAR(100) NOT NULL,
PARAMETER_VALUE VARCHAR(2500),
IDENTIFYING CHAR(1) NOT NULL,
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ENGINE=InnoDB;
CREATE TABLE BATCH_STEP_EXECUTION (
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
VERSION BIGINT NOT NULL,
STEP_NAME VARCHAR(100) NOT NULL,
JOB_EXECUTION_ID BIGINT NOT NULL,
CREATE_TIME DATETIME(6) NOT NULL,
START_TIME DATETIME(6) DEFAULT NULL,
END_TIME DATETIME(6) DEFAULT NULL,
STATUS VARCHAR(10),
COMMIT_COUNT BIGINT,
READ_COUNT BIGINT,
FILTER_COUNT BIGINT,
WRITE_COUNT BIGINT,
READ_SKIP_COUNT BIGINT,
WRITE_SKIP_COUNT BIGINT,
PROCESS_SKIP_COUNT BIGINT,
ROLLBACK_COUNT BIGINT,
EXIT_CODE VARCHAR(2500),
EXIT_MESSAGE VARCHAR(2500),
LAST_UPDATED DATETIME(6),
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ENGINE=InnoDB;
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
SERIALIZED_CONTEXT TEXT,
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
) ENGINE=InnoDB;
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
SERIALIZED_CONTEXT TEXT,
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
) ENGINE=InnoDB;
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;
CREATE SEQUENCE BATCH_JOB_INSTANCE_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;

@ -7,29 +7,41 @@ import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.S3ClientBuilder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import java.net.URI;
@Configuration
@ConditionalOnProperty(name = "storage.provider", havingValue = "s3")
public class AwsConfig {
@Value("${cloud.aws.credentials.access-key}")
@Value("${storage.provider:s3}")
private String storageProvider;
@Value("${cloud.aws.credentials.access-key:minio}")
private String accessKey;
@Value("${cloud.aws.credentials.secret-key}")
@Value("${cloud.aws.credentials.secret-key:minio123}")
private String secretKey;
@Value("${cloud.aws.region.static}")
@Value("${cloud.aws.region.static:ap-northeast-2}")
private String region;
@Value("${minio.endpoint:http://localhost:9000}")
private String minioEndpoint;
@Bean
public S3Client s3Client() {
AwsBasicCredentials credentials = AwsBasicCredentials.create(accessKey, secretKey);
return S3Client.builder()
S3ClientBuilder builder = S3Client.builder()
.region(Region.of(region))
.credentialsProvider(StaticCredentialsProvider.create(credentials))
.build();
.credentialsProvider(StaticCredentialsProvider.create(credentials));
if ("minio".equalsIgnoreCase(storageProvider)) {
builder.endpointOverride(URI.create(minioEndpoint))
.forcePathStyle(true);
}
return builder.build();
}
}

@ -5,13 +5,13 @@ springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.disable-swagger-default-url=true
# Local MariaDB
spring.datasource.url=jdbc:mariadb://localhost:3306/autoflow
spring.datasource.username=cuuva
spring.datasource.password=cuuva
spring.datasource.url=jdbc:mariadb://${RDS_HOSTNAME:localhost}:3306/autoflow
spring.datasource.username=${RDS_USERNAME:cuuva}
spring.datasource.password=${RDS_PASSWORD:cuuva}
# Local MinIO
storage.provider=minio
minio.endpoint=http://localhost:9000
minio.endpoint=${MINIO_ENDPOINT:http://localhost:9000}
minio.access-key=minio
minio.secret-key=minio123
minio.bucket=mlpipeline

@ -1,26 +1,47 @@
-- tb_project
INSERT INTO `tb_project` VALUES
('2025-09-22','2025-09-22',1,'2025-09-22 14:28:51.507010','2025-09-22 14:28:51.507010','N','cuuva,admin','cuuva,admin','PRJ1758518911644','배터리 학습입니다.','AI 배터리 학습','cuuva,admin','cuuva,admin');
--INSERT INTO `tb_project` VALUES
--('2025-09-22','2025-09-22',1,'2025-09-22 14:28:51.507010','2025-09-22 14:28:51.507010','N','cuuva,admin','cuuva,admin','PRJ1758518911644','배터리 학습입니다.','AI 배터리 학습','cuuva,admin','cuuva,admin');
-- tb_role
INSERT INTO `tb_role` VALUES
INSERT IGNORE INTO `tb_role` VALUES
(1,'ROLE_USER'),
(2,'ROLE_MODERATOR'),
(3,'ROLE_ADMIN');
-- tb_user
INSERT INTO `tb_user` VALUES
(5,'cuuva','cuuva@naver.com','$2a$10$UhWIoxGlxa7u9gks3m498u9tPGcGO2sh5PTeAD6319TJ9M67ZZqmO'),
(6,'admin','admin@naver.com','$2a$10$zukuiEA7Ce1ygOeJxZilhOi29jQnsreIswyJQ3Z.lysmKFiQhTXeS'),
(7,'user','user@naver.com','$2a$10$jkRSrScnLK.Qiy/AmapKmOVauP4tff.tIMnAzEd1mMoTvRCZXpU4u');
INSERT IGNORE INTO tb_user (
id,
username,
email,
password
) VALUES
(
5,
'cuuva',
'cuuva@naver.com',
'$2a$10$UhWIoxGlxa7u9gks3m498u9tPGcGO2sh5PTeAD6319TJ9M67ZZqmO'
),
(
6,
'admin',
'admin@naver.com',
'$2a$10$zukuiEA7Ce1ygOeJxZilhOi29jQnsreIswyJQ3Z.lysmKFiQhTXeS'
),
(
7,
'user',
'user@naver.com',
'$2a$10$jkRSrScnLK.Qiy/AmapKmOVauP4tff.tIMnAzEd1mMoTvRCZXpU4u'
);
-- tb_user_project_map
INSERT INTO `tb_user_project_map` VALUES
INSERT IGNORE INTO `tb_user_project_map` VALUES
(1,1,6),
(2,1,5);
-- tb_user_project_permission
INSERT INTO `tb_user_project_permission` VALUES
INSERT IGNORE INTO `tb_user_project_permission` VALUES
(2,'READ'),
(1,'READ'),
(2,'CREATE'),
@ -31,7 +52,7 @@ INSERT INTO `tb_user_project_permission` VALUES
(1,'DELETE');
-- tb_user_roles
INSERT INTO `tb_user_roles` VALUES
INSERT IGNORE INTO `tb_user_roles` VALUES
(1,7),
(2,6),
(3,5);

Loading…
Cancel
Save