본 내용은 빅데이터를 지탱하는 기술 (니시다 케이스케) 책을 정리한 내용입니다.
이 책을 읽는 목적
클라우드를 사용하다 보면 "용어 지옥"에 빠지곤 한다. 모든 IT인들이 사용하는 클라우드에는 오래전 부터 내려온 IT 용어들로 가득차 있다. 하나의 용어들을 몰라 공식문서에 들어가 보면 다시 모르는 용어 10개를 만나게된다. (완전 용어 지옥...)
그 용어들을 차근차근 이해하고 따라가다 보면 서로 연관되어 있기도하고, IT 발전에 따라 용어가 만들어졌음을 이해한다. 용어에도 스토리가 있다는 것이다. 그럼 이 스토리를 어디서 알 수 있을까?
빅데이터를 지탱하는 기술이라는 책은 그 중에도 데이터를 다룰 때 마주하는 용어들을 데이터 엔지니어링 발전에 따라 이해할 수 있었다. 이 책은 3개의 파트, 6개의 장으로 구성되어 있다.
제1장 '빅데이터의 기초 지식'은 빅데이터 기술의 역사적 배경, 기본적인 용어들을 정리한다.
제2장 ~ 제5장은 기술 설명으로 빅데이터의 시스템 구성을 몇 개의 요소로 나누어 설명해준다.
제6장 ' 빅데이터 분석 기반의 구축'은 응용 편으로, 대화적 세션 (즉, EDA로 부르는)으로 데이터를 이해하고 Airflow를 도입한 데이터 처리 자동화, 클라우드 서비스에서의 시스템까지 설명한다.
제1장 '빅데이터의 기초 지식'
아래는 이 책의 첫장인 Chapter 1 빅데이터의 기초 지식 일부분, 요약 부분이다.
이렇게 하나하나 설명해주던 데이터 엔지니어링을 다시 요약해주는 부분이 좋았다.
---
이 장에서는 빅데이터의 역사와 그 주변 기술을 간단히 소개하였다. 2011년까지 Hadoop과 NoSQL '데이터베이스 분산 시스템 기술이 확립되어 기존의 '데이터 웨어하우스를 보완, 대체하기 시작했다. 그리고 이것이 '빅데이터'라는 이름으로 비즈니스화되어 현재에 이르게 되었다.
'클라우드 서비스 및 'BI 도구'의 보급 또한 진행되어, 지난 몇 년 동안 빅데이터 기술은 대단히 친밀한 것이 되었다. 이것은 실제로 '여러 기술의 집합체이며, '데이터 수집'에서 '쿼리 엔진', '워크플로 관리에 이르기까지 다양한 옵션이 제공되고 있다. 사용자는 그중 에서 자신에게 필요한 기술을 선택하여야 하며, 그 하나하나를 조금씩이라도 설명하고자 하는 것이 이 책의 주된 목적이다.
빅데이터에서는 다양한 데이터가 취급되기 때문에 그것을 축적하는 스토리지를 '데이터가 흘러 들어가는 호수로 비유하여 '데이터 레이크'라고 부른다. 축적된 데이터는 분산 시스템에서 가공, 집계되고 '데이터 마트'에 기록된다. 그리고 그것을 BI 도구 등을 이용해 액세스하고, 원하는 때에 원하는 정보를 얻을 수 있도록 한다.
'파이썬' 등의 스크립트 언어를 사용하면, '데이터 프레임'을 사용해서 테이블 형식의 데이터를 처리할 수 있다. 이것은 특히 '로우 데이터를 취급할 기회가 많은 데이터 엔지니어에게 유용하다. 또한, SQL로 집계한 결과를 스크립트로 처리하고자 할 때도 유용하다.
빅데이터 분석도 결국 '이와 같은 것을 어떻게 대규모로 실행할 것인가?' 하는 문제다. 궁극적으로는 빅데이터와 스몰 데이터 모두 동일하게 분석할 수 있는 것이 이상적이다. 그러나 현실적으로는 빅데이터를 다루는 것이 아직은 스몰 데이터만큼은 쉽지 않다. 이 장에서는 먼저 예비지식으로 스몰 데이터 기술을 쉽게 설명하였다. 다음 장에서는 이것을 빅데이터로 전개해 나갈 예정이다.
---
이 챕터에서 재미있던 부분
1. 예전의 데이터 웨어하우스와 Haddop의 출현
내가 알고 있는 클라우드 기반의 데이터 웨어하우스가 아닌 기업의 온프렘 데이터 웨어하우스를 생각해본 적이 없었다. 첫 부분에서 이 상황을 설명하면서 Haddop의 출현을 설명해주는 게 재미있었다.
데이터의 증가로 하드웨어의 업그레이드가 필요하게 되면서 서버 업그레이드라는 엄청난 부담이 된다.
필요한 데이터만 웨어하우스에 저장할 수 있도록, 새벽에 분산처리 ETL 하고 배치로 웨어하우스에 업데이트 하는 방식을 취하게 되는데 많은 양의 데이터를 처리하도록 Haddop을 사용하게 된다.
2. 애드 혹 분석 및 대시보드 도구
데이터 분석은 데이터 이해로 부터 시작된다. 무턱대고 데이터 자동화부터 시작하지 않는다. 수작업으로 데이터를 집계해보고 이해할 때 일회성으로 데이터를 분석하게 된다. 이런 '일회성 데이터 분석'을 '애드 혹 분석(ad hoc analysis)라고 한다. SQL 쿼리를 하거나, 스프레드 시트에서 그래프를 만드는 것까지 모든 수작업이 애드 혹 분석이다. 일회성으로 분석하는 것이기 때문에 데이터레이크에서 데이터 마트를 만들지 않고 직접 연결하는 경우가 많다.
3. 스몰 데이터 분석, 빅데이터 분석이 아닌.
테스트를 하다보면 작은 데이터를 만들어서 사용하곤 한다. 이 데이터가 어떻게 생긴 데이터인지, 파이프라인은 잘 돌아가는지 검증을 할 때 사용한다. 이런 작은 데이터를 스몰 데이터라고 부른다. 레코드 수로는 약 수백만 ~ 수천만 건, 데이터 양으로는 수GB까지를 스몰 데이터라고 한다.
빅데이터 기술은 작은 데이터에서는 오히려 시간만 잡아먹는 방법일 수 있다. 데이터를 다룰 때에는 스몰 데이터 기술과 빅데이터 기술을 적절히 사용해야한다.
파이썬과 데이터 프레임를 사용해보고, 스프레드 시트에 반복적으로 집계하여 추이를 관측 (모디터링) 한다. 이를 월간으로 분석해 보고서로 만든 것이 '월간 보고서'가 된다. 이런 일련의 과정을 해보면서 어떤 일을 자동화하고 수작업으로 해야할 지 경계를 판별 할 수 있다.
해볼 수 있는 것들
스몰 데이터 분석의 전체 흐름을 정리해보면 좋겠다. 데이터 처리에서 자동화와 수작업의 경계를 생각해 볼 수 있을 것 같다. 업무는 항상 시간에 쫒긴다. 한마디로 모두 할 시간이 없다. 자동화는 시간이 아주 많이 드는 일이기 때문에, 자동화와 수작업의 경계를 나누는 것이 정말 중요하다.
무언가 새로운 기술을 배울 때, 제1장 '빅데이터의 기초 지식' 부분은 반복해서 보고, 이 기술이 왜 만들어 졌는지, 무엇이 가장 중요한지 반복해서 생각해 볼 수 있을 것 같다.
'내가 읽은 것들' 카테고리의 다른 글
오늘도 개발자가 안 된다고 하나요? (3) | 2022.01.23 |
---|