로그 데이터 관리 방식
http://i-bada.blogspot.com/2015/08/blog-post_27.html
- 파일 기반 로그 데이터 관리
- DB 기반 로그 데이터 관리
- 결합형 로그 데이터 관리 (File + Database)
- 결합형 (주로 DB 기반) 으로 로그 데이터를 관리하기로 결정
- 위의 데이터 관리 방식은 웹 로그를 통해 에러 / 불편 사항 등을 접수하기 위한 목적으로 보임
- 그러나 우리의 경우 로그를 수집하여 인공지능 모델을 발전시키고자 하기 때문에 다른 목적을 가지고 있음
- 그러나 기존의 빅데이터 관리에 사용되는 로그 수집 파이프라인은 지나치게 무거움
- 우리의 서비스 규모가 '빅데이터'를 관리한다고 하기에는 아직 작음
- 지나치게 큰 시스템을 가져오는 느낌
- 따라서 기존에 존재하던 RDS 리소스를 활용해서 간단하게 처리하는 것이 좋겠다는 것에 의견을 모음
- 또한, 파일 기반 관리를 할 경우 json 파일으로 정리하여 S3에 저장하는 것을 염두에 두었었는데,
- 이러한 방식을 활용하면 너무 많은 파일을 열어보아야 함
- 한 유저의 meta 정보를 최근 30일간 해당 유저의 로그를 통해 임베딩하겠다고 가정했다면,
- 30개의 json 파일을 열어 보아야 해당 정보를 임베딩 할 수 있게 됨
- 업무에 비해 지나치게 큰 작업을 하게 되는 느낌
- 위와 같은 이유로 RDS에 새로운 Database를 열어서 로그 데이터를 관리하기로 결정
기존 사이트들의 로그 흐름
테이블 설계
https://www.notion.so/caf2e86c186d4ec1b3aaf5ee15c406fe
- 유저가 클릭한 요소
- 픽투픽에 대한 유저의 반응
- 마스터픽에 유저가 머무른 시간
Airflow DAG 생성