yeollow / return-home-safely

Apache License 2.0
1 stars 0 forks source link

Batch Application #12

Open yeollow opened 3 years ago

yeollow commented 3 years ago

Spring Batch Application

CCTV / Police등에 대한 공공데이터 .csv파일에 대해 빅데이터 배치 프로세스를 진행한다.

yeollow commented 3 years ago

kafka의 producer와 consumer를 spring-kafka client로 작성하고, consumer에서 읽어들인 데이터파일을 spring-hadoop을 이용하여 HDFS에 저장하는 방식도 고민

yeollow commented 3 years ago

Workflow

상기 workflow는 개발 환경(local, dev, prod)에 따라 다르게 구성


Batch Application


위의 Batch Application의 kafkaItemWriter로 topic에 데이터를 전송하지 못하는 경우, batch application에서는 ItemWriter를 통해 MySQL에 데이터를 저장하고, JPA를 통해 DB있는 데이터를 모두 읽어 broker의 topic에 데이터를 전송하는 아래와 같은 kafka Producer Application을 고안하도록 한다.

Kafka Producer Application

  • producer에서 send()를 통해 topic에 따라 BatchApplication에서 JPA를 통해 받아들여오는 데이터를 broker의 topic으로 전송
    • producer client는 공식문서 참조
      • core module에 읽을 data정보와 관련된 dto를 정의 후 repository에서 entitymanager를 통해 모든 데이터를 읽어 List 로 반환 -> String.format을 통해 Dto정보를 정의 후 List의 크기만큼 모든 정보를 iteration하여 kafka topic에 send().


fluentd 연동


Spark Application