일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Oracle
- Design Patterns
- IntelliJ
- Spring
- db
- 맛집
- php
- it
- ReactJS
- springboot
- Spring Boot
- ubuntu
- AWS
- jsp
- Gradle
- elasticsearch
- Git
- laravel
- devops
- MySQL
- 요리
- tool
- docker
- java
- redis
- Web Server
- linux
- javascript
- jenkins
- JPA
- Today
- Total
목록Java/Spring Batch & SCDF (9)
아무거나
SCDF(=Spring Cloud Data Flow) SCDF 란 Spring Cloud Data Flow 는 Cloud Foundry 및 Kubernetes에서 스트리밍 및 일괄 데이터 처리 파이프라인을 구축하기 위한 마이크로서비스 기반 툴킷이다. 공식문서 우선 SCDF 로 검색해보면 아래 3가지의 단어를 많이 볼 수 있다. 내용은 아래와 같다. Data MicroService 데이터를 Function 단위의 비즈니스 로직이 들어 있는 Application 으로 DataPipeLine 을 구성 Orchestrator Stream 을 구성하는 Application 과 Application 간의 Channel 을 관리(Ex: Kafka topic, group, partition..) 즉, Message M..
관리 도구로서의 Jenkins 를 통한 Spring Batch 운영 Spring Batch 는 아직까지 확실한 표준 관리 도구가 없다고 한다. 그래서 보통 클라우드 서버리스, 따로 API 기반 호출, Spring Batch Admin(더 이상 개선하지 않으며 Spring Cloud Data Flow 로 전환하라고함), Spring Quartz, Jenkins, Teamcity 등의 방법을 사용한다고한다. 여기서 Spring Cloud Data Flow 가 러닝커브도 높으며 아직 국내에서 많이 사용되는 사례가 적으므로 그 전까지 보편적으로 활용되는 Jenkins 에 대해서 알아보기로 한다. 1. 장점 1-1. 관리기능 관리 도구의 대표 기능들에 대해 기본으로 지원된다. (Ex: Dashboard, 이력관리..
ItemProcessor 이전글: Spring Batch 8편 - ItemReader 작업코드: 작업코드 ItemProcessor 는 데이터를 가공하거나 필터링하는 역할을 하고 있으며 필수가 아니고 이는 Writer 부분에서도 충분히 구현이 가능 하다. 그럼에도 사용하는 것은 Reader, Writer 와는 별도의 단계로 분리되었기 때문에 비즈니스 코드가 섞이는 것을 방지 해주기 때문이다. Batch 에 비즈니스 로직을 추가할때는 가장 먼저 Processor 를 고려하는 것이 좋다. (각 계층 읽기/처리/쓰기 를 분리할 수 있는 좋은 방법) 1. ItemProcessor 란 ItemProcessor 는 Reader 에서 넘겨준 데이터 개별건을 가공/처리 해준다. 변환 Reader 에서 읽은 데이터를 원하..
ItemWriter 이전글: Spring Batch 7편 - ItemReader 작업코드: 작업코드 1. ItemWriter 란 ItemWriter 는 Spring Batch 에서 사용하는 출력 기능이며 Spring Batch 초기에는 ItemReader 와 마찬가지로 item 을 하나씩 다루었지만 Spring Batch2 와 Chunk 기반 처리의 도입으로 인하여 ItemWriter 는 item 하나를 작성하지 않고 Chunk 단위로 묶인 item list 를 다룬다. 상기 코드를 보면 ItemReader 의 read() 는 item 을 하나를 반환하지만, Writer 의 write() 는 인자로 Item List 를 받는다. 하기 이미지를 참고하자. ItemReader 를 통해 각 항목을 개별적으로 ..
ItemReader 이전글: Spring Batch 6편 - Chunk-Oriented Processing 작업코드: 작업코드 1. ItemReader 란 데이터 -> (읽기) -> ItemReader -> ItemProcessor -> ItemWriter -> (쓰기) -> 데이터 상기 프로세스와 같이 ItemReader 는 데이터를 읽어들인다. 꼭 DB의 데이터만 의미하진 않고 XML, JSON 등의 다른 형식의 데이터도 읽는다. 이외에도 Spring Batch 에서 지원하지 않는 Reader 들도 직접 만들 수 있다. Spring Batch 의 Reader 에서 읽어올 수 있는 유형은 아래와 같다. 입력 데이터에서 읽어오기 파일에서 읽어오기 DB에서 읽어오기 다른 소스에서 읽어오기 직접 커스텀한 R..
Spring Batch Job Flow 이전글: https://bkjeon1614.tistory.com/739 작업코드: 작업코드 실제 비지니스 로직을 처리하는 기능은 Step 에 구현되어 있다. 즉, Batch 로 실제 처리하고자 하는 기능과 설정을 모두 포함한다. Job 내부의 Step 들 간에 순서 또는 처리 프로세스를 제어하기 위해 여러 Step 들이 어떻게 관리해야 하는지 차근차근 알아보자. Next next() 는 순차적으로 Step 들을 연결시킬 때 사용 즉, step1 -> step2 -> ... 와 같이 하나씩 실행할 때 사용하면 좋다. 샘플코드를 작성해보자. [NextJobConfiguration.java] package com.example.job; import org.springfr..
Spring Batch Meta Table 이전글: https://bkjeon1614.tistory.com/738 작업코드: 작업코드 [Spring Batch] 2편 - Spring Batch 활용 Spring Batch 활용 이전글: https://bkjeon1614.tistory.com/737 Spring Batch 프로젝트 생성 프로젝트 환경 IntelliJ IDEA 2022. 1 Spring Boot 2.7.3 Java 11 Gradle 프로젝트 생성 프로젝트 유형 설정 프로젝트.. bkjeon1614.tistory.com 하기 이미지는 Spring Batch 를 사용하기 위해 필요한 메타 테이블이며 이것들이 각각 어떤 데이터를 저장하는지에 대해 알아보자. BATCH_JOB_INSTANCE 먼저 ..
Spring Batch 활용 이전글: https://bkjeon1614.tistory.com/737 작업코드: 작업코드 Spring Batch 프로젝트 생성 프로젝트 환경 IntelliJ IDEA 2022. 1 Spring Boot 2.7.3 Java 11 Gradle 프로젝트 생성 프로젝트 유형 설정 프로젝트 관련 설정 생성된 build.gradle 확인 [build.gradle] plugins { id 'org.springframework.boot' version '2.7.3' id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sou..
Spring Batch 란? Spring Batch 를 사용하면서 내부적으로 어떻게 동작하는지 어떤 특징이 있는지 등에 대해서 한 번 정리가 다시할 필요성을 느껴서 해당 포스팅을 작성하게 되었다. Batch? 정의 개발자가 정의한 작업을 한번에 일괄 처리하는 애플리케이션이며 즉, 데이터를 실시간으로 처리하는게 아니라, 일괄적으로 모아서 처리하는 작업을 의미한다. (Ex: 하루동안 쌓인 데이터를 배치작업을 통해 특정 시간에 한꺼번에 처리하는 경우) 예시 상품 키워드 검색 수에 대한 일/주/월 키워드 검색순위 데이터 집계 매출 데이터를 사용한 일매출 데이터 집계 (실시간 집계 쿼리로 해결하면 조회 시간이나 서버 부하가 많으므로 매일 새벽 전날에 매출 집계 데이터를 미리 생성) 내부 및 외부 시스템에서 우리에..