I heart logs 리뷰
책 소개
데이터 엔지니어 관련 책을 뒤져보던 중에 추천 책으로 꽤 많이 보여서 같아서 읽어보았다.
OREILLY 의 출간한 Jay Kreps의 책이며 저자는 Linkedin 의 Principal Staff Engineer 이라고 한다.
60 페이지가량의 부담이 없는 책이라 한번 읽어보았다.(하지만 영어책이라 읽는데 오래 걸린 것은 비밀)
이 책에서는 크게 3가지로 구분해 로그의 용도를 설명한다.
- 데이터 통합
- 스트림 데이터 처리
- 분산 시스템 설계
1.데이터 통합(Data Integration)
최근의 데이터는 옛날에 비해 다양해졌다. RDB에 저장된 테이블 항목뿐만 아니라 Event 데이터도 포함된다.(기계수준 이벤트 및 통계, 사용자 활동 로깅 등.)
또한 특수한 데이터 시스템(OLAP, 그래프 분석, 배치 프로세싱 등.)의 폭발적인 증가가 있었다.
많은 종류의 데이터를 많은 시스템으로 가져오려는 것이 데이터 통합 문제로 이어진다.
이 문제를 로그를 이용해 해결하고자 한다. 모든 데이터를 중앙 로그에 저장하여 실시간 구독을 하는 방법이다.
2. 실시간 스트림 처리
“log”는 “stream”의 또 다른 단어이며 log는 stream의 중심에있다. - 본문 내용
현대 회사들의 웹 사이트는 배치 데이터 수집이 필요하지 않다. 웹 사이트에서 발생하는 데이터는 활동 데이터 또는 DB 변경이며 둘 다 연속적으로 발생한다.
기존의 데이터 처리 방법은 ‘Batch processing’이었지만 이는 실시간 데이터가 부족해서 썼던 방법일 뿐,
실시간 데이터가 충분한 지금은 ‘stream processing’ 으로도 역할을 충분히 할 수 있다는 것이 저자의 생각이다.
실시간 스트림 처리에서의 로그의 필요성
- 각 데이터 세트를 Multi-subscriber로 만들어 원하는 프로세서에서 사용할 수 있다.
- 데이터 소비자가 수행한 처리의 순서 유지 기능
- 개별 프로세스에 버퍼링과 isolation을 제공한다.
3. 분산 시스템 설계
온라인 데이터 시스템 내부에서의 로그의 역할을 얘기한다.
저자는 로그를 이용해 분산시스템에서 데이터 처리를 단순화하고 싶어 한다.
각 시스템의 많은 작은 인스턴스를 몇 개의 큰 클러스터로 통합하는 것을 제시하지만 아직은 기술이 충분하지 않다고 한다.
로그는 서로 다른 데이터 시스템을 함께 연결하고 실시간 변경 사항을 처리할 수 있을 뿐만 아니라 그 자체로 흥미로운 시스템 및 애플리케이션 아키텍처가 될 수 있다고 한다.
후기
이 책은 2014년에 출간되었다. 로그가 무엇이고 어떻게 사용될 수 있는지 얘기해 주는 것 같지만 백엔드에 대한 기초 지식이 없다시피 한 상황에서 역시나 이해되지 않는 부분이 많았다.
요약본이나 후기 같은 게 또 있을까 열심히 구글링 해봤는데. 저자가 직접 올린 유튜브 영상이 있었다.
데이터 엔지니어에 대한 관심이 생겨 이것저것 찔러보고는 있지만 아직 갈 길이 먼 것 같다.
댓글남기기