아키텍처

Log 성격을 가진 데이터의 수집 / 분석 아키텍처

BUST 2018. 7. 27. 22:35

Log 성격을 가진 데이터의 수집 / 분석 아키텍처


  • 서비스를 개발을 하다보면 Log 성의 데이터가 필요할수가 있다.
    • 예를 들면, 사용자의 click 정보, push 전송 정보 결과, 이메일 전송 결과
  • 실시간 성격이 가진 로그가 있을수도 있다.
    • 예를 들면, 중복 방지를 위해 userId와 push 전송 결과에 대한 데이터 처리
    • 이 경우에는 KEY (userId)을 통해 빠른 시간에 데이터를 가지고 올수가 있어야 된다.
  • 통계 성격이 가진 로그가 있을 수 있다.
    • 예를 들면, 하루에 전송된 Push Message의 양
  • 로그 저장소
    • Log File -> Log Stash -> S3
      • File로 로그를 저장을한다.
      • Log Stash 등을 이용하여 S3/HDFS 저장소로 저장이 된다.
      • 저장 기간이 상대적으로 많이 길다.
      • 압축을 하거나 orc 등의 라이브러리를 활용한다.
    • Log DB
      • Database를 이용하여 로그를 저장을 한다.
      • 특정 key 값을 이용해서 실시간으로 로그 데이터가 필요한 경우에는 MySQL 등을 활용하여 저장을 한다.
      • 저장 기간이 상대적으로 많이 짧다. 주기적인 배치를 통해 데이터를 지우는 것이 효율적이다.
  • 데이터의 처리
    • Hive
      • S3의 데이터를 조회를 할수 있다.
      • Batch Service는 Hive를 통해 데이터를 통계, 분석을 할수 있다.
    • 다른 예로는 Presto, AWS Athena, Spark, Spark SQL 등이 있다.