1 분 소요

책 소개

데이터 엔지니어 관련 책을 뒤져보던 중에 추천 책으로 꽤 많이 보여서 같아서 읽어보았다.
OREILLY 의 출간한 Jay Kreps의 책이며 저자는 Linkedin 의 Principal Staff Engineer 이라고 한다.
60 페이지가량의 부담이 없는 책이라 한번 읽어보았다.(하지만 영어책이라 읽는데 오래 걸린 것은 비밀)
이 책에서는 크게 3가지로 구분해 로그의 용도를 설명한다.

  1. 데이터 통합
  2. 스트림 데이터 처리
  3. 분산 시스템 설계


1.데이터 통합(Data Integration)

최근의 데이터는 옛날에 비해 다양해졌다. RDB에 저장된 테이블 항목뿐만 아니라 Event 데이터도 포함된다.(기계수준 이벤트 및 통계, 사용자 활동 로깅 등.)
또한 특수한 데이터 시스템(OLAP, 그래프 분석, 배치 프로세싱 등.)의 폭발적인 증가가 있었다.
많은 종류의 데이터를 많은 시스템으로 가져오려는 것이 데이터 통합 문제로 이어진다.

이 문제를 로그를 이용해 해결하고자 한다. 모든 데이터를 중앙 로그에 저장하여 실시간 구독을 하는 방법이다.


2. 실시간 스트림 처리

“log”는 “stream”의 또 다른 단어이며 log는 stream의 중심에있다. - 본문 내용

현대 회사들의 웹 사이트는 배치 데이터 수집이 필요하지 않다. 웹 사이트에서 발생하는 데이터는 활동 데이터 또는 DB 변경이며 둘 다 연속적으로 발생한다.
기존의 데이터 처리 방법은 ‘Batch processing’이었지만 이는 실시간 데이터가 부족해서 썼던 방법일 뿐,
실시간 데이터가 충분한 지금은 ‘stream processing’ 으로도 역할을 충분히 할 수 있다는 것이 저자의 생각이다.

실시간 스트림 처리에서의 로그의 필요성

  • 각 데이터 세트를 Multi-subscriber로 만들어 원하는 프로세서에서 사용할 수 있다.
  • 데이터 소비자가 수행한 처리의 순서 유지 기능
  • 개별 프로세스에 버퍼링과 isolation을 제공한다.


3. 분산 시스템 설계

온라인 데이터 시스템 내부에서의 로그의 역할을 얘기한다.
저자는 로그를 이용해 분산시스템에서 데이터 처리를 단순화하고 싶어 한다.
각 시스템의 많은 작은 인스턴스를 몇 개의 큰 클러스터로 통합하는 것을 제시하지만 아직은 기술이 충분하지 않다고 한다.

로그는 서로 다른 데이터 시스템을 함께 연결하고 실시간 변경 사항을 처리할 수 있을 뿐만 아니라 그 자체로 흥미로운 시스템 및 애플리케이션 아키텍처가 될 수 있다고 한다.



후기

이 책은 2014년에 출간되었다. 로그가 무엇이고 어떻게 사용될 수 있는지 얘기해 주는 것 같지만 백엔드에 대한 기초 지식이 없다시피 한 상황에서 역시나 이해되지 않는 부분이 많았다.
요약본이나 후기 같은 게 또 있을까 열심히 구글링 해봤는데. 저자가 직접 올린 유튜브 영상이 있었다.


데이터 엔지니어에 대한 관심이 생겨 이것저것 찔러보고는 있지만 아직 갈 길이 먼 것 같다.

카테고리:

업데이트:

댓글남기기