배치 데이터 처리 3

Apache Airflow

Airflow- Airflow는 스케쥴, workflow 모니터 플랫폼이다.- 작업의 단위는 DAG(Directed acyclic graphs)로 표현한다.- Python 언어로 DAG File를 구성하고, 그 내부에는 여러개의 Task가 존재를 한다.특징- Dynamic : Airflow는 Pipeline의 설정은 코드(Python) 언어로 작성이 되기 때문에 동적으로 작동되는 코드를 작성을 할수가 있다.- Extensible : operators, executors, ...- Elegant : 간결하고, 명확, jinja 템플릿 엔진을 이용한 템플릿 기능 등.- Scalable : 스케일 아웃이 가능하다. message queue를 이용하여 task를 worker에게 분배를 한다. (celery, d..

Jenkins을 Batch Scheduler로 활용하기

Jenkins을 Batch Scheduler로 활용하기- 서비스를 개발을 하다보면 실시간성으로 데이터를 처리 하는 기능도 필요하지만 (api-server, streamming.. etc) 정해지 시간내에 Batch 성으로 돌아가야되는 서비스 기능이 있을수도 있다. 그 예로는 이관, 검증, 이벤트 등의 경우이다.- 정해진 시간에 실행되는 잡을 cron job이라고 하는데 보통은 리눅스 명령어인 crontab을 사용을 한다. - 하지만 shell을 이용한 batch 설정은 UI가 없고 로그 등을 확인하기가 어려운것이 있다. 직접 Schduler를 개발을 하는 방법도 있지만 여기에서는 Jenkins을 Batch Scheduler로 활용하는 방법에 대해 정리해보자. Jenkins 다운 받기- https://je..

Spring batch

Spring BatchBatch Processing 란?일괄 처리라는 의미로써, 순차적으로 자료를 처리를 한다는 의미이다. 실시간 처리와 다르게 통계 및 데이터 동기화 등 시간이 오래 걸리는 작업을 위주로 구현된다.일일 통계 작업쿠폰 이벤트, App Push가 같이 실시간성이 필요 없는 작업Spring Batch란?Spring 오픈스소에서 나온 Batch Framework 중에 하나이다. 손쉽게 배치 잡(Job)을 작성을 할 수 있다.트랙잭션 관리청크(Chunk) 단위 처리병렬(parallel) 처리Spring Admin Tool활용 패턴배치가 실행 스케쥴러를 설정할때 Linux의 crontab를 활용할수 있다. Linux 커맨드을 이용하여 배치를 실행시킬때에는 로그 정보를 보기가 어렵다. 또 다른 방법..