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

main
bjkim 1 month ago
parent 0928291c9b
commit 8970c3a809

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

@ -5,126 +5,83 @@ metadata:
namespace: etri-aisw namespace: etri-aisw
data: data:
init.sql: | init.sql: |
create table batch_job_execution_seq CREATE TABLE BATCH_JOB_INSTANCE (
( JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY,
next_not_cached_value bigint(21) not null, VERSION BIGINT,
minimum_value bigint(21) not null, JOB_NAME VARCHAR(100) NOT NULL,
maximum_value bigint(21) not null, JOB_KEY VARCHAR(32) NOT NULL,
start_value bigint(21) not null comment 'start value when sequences is created or value if RESTART is used', constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
increment bigint(21) not null comment 'increment value', ) ENGINE=InnoDB;
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_execution CREATE TABLE BATCH_JOB_EXECUTION (
( JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
JOB_EXECUTION_ID bigint not null VERSION BIGINT,
primary key, JOB_INSTANCE_ID BIGINT NOT NULL,
VERSION bigint null, CREATE_TIME DATETIME(6) NOT NULL,
JOB_INSTANCE_ID bigint not null, START_TIME DATETIME(6) DEFAULT NULL,
CREATE_TIME datetime(6) not null, END_TIME DATETIME(6) DEFAULT NULL,
START_TIME datetime(6) null, STATUS VARCHAR(10),
END_TIME datetime(6) null, EXIT_CODE VARCHAR(2500),
STATUS varchar(10) null, EXIT_MESSAGE VARCHAR(2500),
EXIT_CODE varchar(2500) null, LAST_UPDATED DATETIME(6),
EXIT_MESSAGE varchar(2500) null, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
LAST_UPDATED datetime(6) null, references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
constraint JOB_INST_EXEC_FK ) ENGINE=InnoDB;
foreign key (JOB_INSTANCE_ID) references batch_job_instance (JOB_INSTANCE_ID)
);
create table batch_job_execution_context CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
( JOB_EXECUTION_ID BIGINT NOT NULL,
JOB_EXECUTION_ID bigint not null PARAMETER_NAME VARCHAR(100) NOT NULL,
primary key, PARAMETER_TYPE VARCHAR(100) NOT NULL,
SHORT_CONTEXT varchar(2500) not null, PARAMETER_VALUE VARCHAR(2500),
SERIALIZED_CONTEXT text null, IDENTIFYING CHAR(1) NOT NULL,
constraint JOB_EXEC_CTX_FK constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
foreign key (JOB_EXECUTION_ID) references batch_job_execution (JOB_EXECUTION_ID) references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
); ) ENGINE=InnoDB;
create table batch_job_execution_params CREATE TABLE BATCH_STEP_EXECUTION (
( STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
JOB_EXECUTION_ID bigint not null, VERSION BIGINT NOT NULL,
PARAMETER_NAME varchar(100) not null, STEP_NAME VARCHAR(100) NOT NULL,
PARAMETER_TYPE varchar(100) not null, JOB_EXECUTION_ID BIGINT NOT NULL,
PARAMETER_VALUE varchar(2500) null, CREATE_TIME DATETIME(6) NOT NULL,
IDENTIFYING char not null, START_TIME DATETIME(6) DEFAULT NULL,
constraint JOB_EXEC_PARAMS_FK END_TIME DATETIME(6) DEFAULT NULL,
foreign key (JOB_EXECUTION_ID) references batch_job_execution (JOB_EXECUTION_ID) 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 CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
( STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
next_not_cached_value bigint(21) not null, SHORT_CONTEXT VARCHAR(2500) NOT NULL,
minimum_value bigint(21) not null, SERIALIZED_CONTEXT TEXT,
maximum_value bigint(21) not null, constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
start_value bigint(21) not null comment 'start value when sequences is created or value if RESTART is used', references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
increment bigint(21) not null comment 'increment value', ) ENGINE=InnoDB;
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 CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
( JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
STEP_EXECUTION_ID bigint not null SHORT_CONTEXT VARCHAR(2500) NOT NULL,
primary key, SERIALIZED_CONTEXT TEXT,
VERSION bigint not null, constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
STEP_NAME varchar(100) not null, references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
JOB_EXECUTION_ID bigint not null, ) ENGINE=InnoDB;
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_step_execution_context 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;
STEP_EXECUTION_ID bigint not null CREATE SEQUENCE BATCH_JOB_INSTANCE_SEQ START WITH 1 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1 NOCACHE NOCYCLE ENGINE=InnoDB;
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 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 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.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client; 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 @Configuration
@ConditionalOnProperty(name = "storage.provider", havingValue = "s3")
public class AwsConfig { 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; private String accessKey;
@Value("${cloud.aws.credentials.secret-key}") @Value("${cloud.aws.credentials.secret-key:minio123}")
private String secretKey; private String secretKey;
@Value("${cloud.aws.region.static}") @Value("${cloud.aws.region.static:ap-northeast-2}")
private String region; private String region;
@Value("${minio.endpoint:http://localhost:9000}")
private String minioEndpoint;
@Bean @Bean
public S3Client s3Client() { public S3Client s3Client() {
AwsBasicCredentials credentials = AwsBasicCredentials.create(accessKey, secretKey); AwsBasicCredentials credentials = AwsBasicCredentials.create(accessKey, secretKey);
return S3Client.builder() S3ClientBuilder builder = S3Client.builder()
.region(Region.of(region)) .region(Region.of(region))
.credentialsProvider(StaticCredentialsProvider.create(credentials)) .credentialsProvider(StaticCredentialsProvider.create(credentials));
.build();
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 springdoc.swagger-ui.disable-swagger-default-url=true
# Local MariaDB # Local MariaDB
spring.datasource.url=jdbc:mariadb://localhost:3306/autoflow spring.datasource.url=jdbc:mariadb://${RDS_HOSTNAME:localhost}:3306/autoflow
spring.datasource.username=cuuva spring.datasource.username=${RDS_USERNAME:cuuva}
spring.datasource.password=cuuva spring.datasource.password=${RDS_PASSWORD:cuuva}
# Local MinIO # Local MinIO
storage.provider=minio storage.provider=minio
minio.endpoint=http://localhost:9000 minio.endpoint=${MINIO_ENDPOINT:http://localhost:9000}
minio.access-key=minio minio.access-key=minio
minio.secret-key=minio123 minio.secret-key=minio123
minio.bucket=mlpipeline minio.bucket=mlpipeline

@ -1,26 +1,47 @@
-- tb_project -- tb_project
INSERT INTO `tb_project` VALUES --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'); --('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 -- tb_role
INSERT INTO `tb_role` VALUES INSERT IGNORE INTO `tb_role` VALUES
(1,'ROLE_USER'), (1,'ROLE_USER'),
(2,'ROLE_MODERATOR'), (2,'ROLE_MODERATOR'),
(3,'ROLE_ADMIN'); (3,'ROLE_ADMIN');
-- tb_user -- tb_user
INSERT INTO `tb_user` VALUES INSERT IGNORE INTO tb_user (
(5,'cuuva','cuuva@naver.com','$2a$10$UhWIoxGlxa7u9gks3m498u9tPGcGO2sh5PTeAD6319TJ9M67ZZqmO'), id,
(6,'admin','admin@naver.com','$2a$10$zukuiEA7Ce1ygOeJxZilhOi29jQnsreIswyJQ3Z.lysmKFiQhTXeS'), username,
(7,'user','user@naver.com','$2a$10$jkRSrScnLK.Qiy/AmapKmOVauP4tff.tIMnAzEd1mMoTvRCZXpU4u'); 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 -- tb_user_project_map
INSERT INTO `tb_user_project_map` VALUES INSERT IGNORE INTO `tb_user_project_map` VALUES
(1,1,6), (1,1,6),
(2,1,5); (2,1,5);
-- tb_user_project_permission -- tb_user_project_permission
INSERT INTO `tb_user_project_permission` VALUES INSERT IGNORE INTO `tb_user_project_permission` VALUES
(2,'READ'), (2,'READ'),
(1,'READ'), (1,'READ'),
(2,'CREATE'), (2,'CREATE'),
@ -31,7 +52,7 @@ INSERT INTO `tb_user_project_permission` VALUES
(1,'DELETE'); (1,'DELETE');
-- tb_user_roles -- tb_user_roles
INSERT INTO `tb_user_roles` VALUES INSERT IGNORE INTO `tb_user_roles` VALUES
(1,7), (1,7),
(2,6), (2,6),
(3,5); (3,5);

Loading…
Cancel
Save