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 등이 있다.
'아키텍처' 카테고리의 다른 글
CQRS (Command Query Read Segregation) (0) | 2018.08.20 |
---|---|
Index, Document를 분리하는 방법을 이용한 대용량 데이터 저장소 설계 (0) | 2018.08.18 |
람다 아키텍처 (0) | 2018.07.22 |