티스토리 뷰
1-1. 빅데이터의 정착
빅데이터라는 단어가 퍼질 때까지의 역사를 간단하게 되돌아본다.
분산 시스템에 의한 데이터 처리의 고속화
빅데이터의 취급이 어려운 이유는 크게 두 가지이다.
- 데이터의 분석 방법을 모른다.
- 데이터 처리에 수고와 시간이 걸린다.
빅데이터 기술의 요구 - Hadoop과 NoSQL의 대두
- 빅데이터 기술로 가장 먼저 예로 들 수 있는 것이 Hadoop과 NoSQL이다.
- 전통적인 관계형 데이터 베이스로는 취급할 수 없을만큼 대량의 데이터가 점차 쌓이게 되었다.
- 이를 처리하기 위해 기존과 다른 구조가 필요했다.
- Hadoop과 NoSQL은 각각 다른 요구를 충족하기 위해 태어났다.
Hadoop - 다수의 컴퓨터에서 대량의 데이터 처리
- 하둡은 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템이다.
- 전 세계의 웹 페이지를 모아서 검색 엔진을 만들려면 방대한 데이터를 저장해둘 스토리지와 데이터를 순차적으로 처리할 수 있는 구조가 필요하다.
- 이를 위해서는 수백 대, 수천 대 단위의 컴퓨터가 이용되어야 한다.
- 그것을 관리하는 것이 Hadoop이라는 프레임워크다.
- 하둡은 원래 구글에서 개발된 분산 처리 프레임워크인
MapReduce
를 참고하여 제작되었다.- 초기 하둡에서 맵리듀스를 동작시키려면 자바로 프로그래밍해야했다. 그렇기 때문에 누구나 간단히 사용하지 못했다.
- 그래서 SQL과 같은 쿼리 언어를 하둡에서 실행하기 위한 소프트웨어가
Hive
이다.- 하이브의 도입으로 프로그래밍 없이 데이터를 집계할 수 있게 됨으로써 많은 사람이 하둡을 이용한 분산 시스템의 혜택을 받을 수 있게 되었고, 그로 인해 점차 사용자를 확대할 수 있었다.
NoSQL
- NoSQL은 전통적인 RDB의 제약을 제거하는 것을 목표로 한 데이터베이스의 총칭이다. 다음은 대표적인 NoSQL의 종류이다.
key/value store(KVS)
- 다수의 키와 값을 관련지어 저장document store
- JSON과 같은 복잡한 데이터 구조를 저장wide-column store
- 여러 키를 사용하여 높은 확장성을 제공
- RDB보다 고속의 읽기, 쓰기가 가능하고 분산 처리에 뛰어나다는 특징을 갖추고 있다.
분산 시스템의 비즈니스 이용 개척
- 분산 시스템의 발전에 따라 하둡을 사용하는 경우가 증가했다. 다수의 데이터 분석 도구가 하둡에 대한 대응을 표명하며 대량의 데이터를 보존 및 집계하기 위해 하둡과 하이브를 사용하게 되었다.
- 전통적인 데이터 웨어하우스에서도 대량의 데이터를 처리할 수 있지만 다음과 같은 단점이 있다.
- 하드웨어와 소프트웨어가 통합된 통합 장비로 제공 됨.
- 데이터 용량을 늘리기 위해 하드웨어를 교체하는 등 확장성이 떨어짐
- 따라서 빠른 속도로 늘어나는 데이터의 처리는 하둡에 맡기고 비교적 작은 데이터, 중요한 데이터만을 데이터 웨어하우스에 넣는 식으로 사용을 구분하게 됐다.
직접 할 수 있는 데이터 분석 폭 확대
- 이와 비슷한 시기에 클라우드 서비스의 보급에 의해 빅데이터의 활용이 증가했다.
- 여러 컴퓨터에 분산 처리한다는 점이 빅데이터의 특징이다.
데이터의 디스커버리 기초 지식 - 셀프서비스용 BI 도구
- 데이터 웨어하우스에 저장된 데이터를 시각화하려는 방법으로 데이터 디스커버리가 인기를 끌게 됐다.
- 대화형으로 데이터를 시각화하여 가치 있는 정보를 찾으려고 하는 프로세스를 의미한다.
- 이는 셀프서비스용 BI 도구라고 불린다.
1-2. 빅데이터 시대의 데이터 분석 기반
빅데이터 기술이 기존의 데이터 웨어하우스와 다른 점은 다수의 분산 시스템을 조합하여 확장성이 뛰어난 데이터 처리 구조를 만든다는 점이다. 그 차이점에 대해 알아보자.
빅데이터의 기술 - 분산 시스템을 활용해서 데이터를 가공해 나가는 구조
- 데이터 파이프라인
- 차례대로 전달해 나가는 데이터로 구성된 시스템을 데이터 파이프라인이라고 한다.
- 빅데이터 파이프라인은 어디에서 데이터를 수집하여 무엇을 실현하고 싶은지에 따라 변화한다.
- 데이터 수집 - 벌크 형과 스트리밍 형의 데이터 전송
- 벌크 형
- 이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법
- 정기적으로 데이터를 수집하는 데 사용
- 스트리밍 형
- 차례로 생성되는 데이터를 끊임없이 계속해서 보내는 방법
- 벌크 형
- 스트림 처리와 배치 처리
- 스트리밍 형 방법으로 받은 데이터는 아무래도 실시간으로 처리하고 싶어진다. 이것을 스트림 처리라고 한다.
- 장기적인 데이터 분석에는 적합하지 않은 문제가 있다.
- 배치 처리
- 장기적인 데이터 분석을 위해서는 보다 대량의 데이터를 저장하고 처리하는데 적합한 분산 시스템이 좋다.
- 이에 필요한 것이 어느 정도 정리된 데이터를 효율적으로 가공하기 위한 배치 처리 구조다.
- 스트리밍 형 방법으로 받은 데이터는 아무래도 실시간으로 처리하고 싶어진다. 이것을 스트림 처리라고 한다.
- 분산 스토리지
- 수집된 데이터는 분산 스토리지(여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템)에 저장된다.
- 대표적으로 AWS S3
- NoSQL을 분산 스토리지로 사용할 수 있다.
- 확장성이 높은 제품을 선택해야 한다.
- 분산 데이터 처리
- 분산 스토리지에 저장된 데이터를 처리하는 데는 분산 데이터 처리 프레임워크가 필요하다.
- 주 역할은 분석하기 쉽도록 데이터를 가공해서 그 결과를 외부 데이터베이스에 저장하는 것이다.
- 워크플로우 관리
- 전체 데이터 파이프라인의 동작을 관리하기 위해서 워크플로우 관리 기술을 사용한다.
- 매일 정해진 시간에 배치 처리를 스케줄대로 실행하고, 오류 발생시 관리자에게 통지하는 목적으로 사용된다.
- 빅데이터 시스템에서는 크건 작건 시스템 장애가 발생하므로 오류 발생 시의 처리와 다시 처리하기 위한 기능을 만드는 것을 빼놓아서는 안된다.
데이터 웨어하우스와 데이터 마트 - 데이터 파이프라인 기본형
- 데이터 웨어하우스는
대량의 데이터를 장기 보존하는 것
에 최적화되어 있다. 정리된 데이터를 한 번에 전송하는 것은 뛰어나지만, 소량의 데이터를 자주 쓰고 읽는 데는 적합하지 않다.- 업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버는
데이터 소스
라고 부른다. - 거기에 보존된 로우 데이터를 추출하고 필요에 따라 가공한 후 데이터 웨어하우스에 저장하기까지의 흐름이
ETL 프로세스
다.
- 업무 시스템을 위한 RDB나 로그 등을 저장하는 파일 서버는
- 데이터 분석과 같은 목적에 사용하는 경우에는 데이터 웨어하우스에서 필요한 데이터만을 추출하여
데이터 마트
를 구축한다.- 데이터 마트는 BI 도구와 조합시키는 형태로 데이터를 시각화하는 데에도 사용된다.
데이터 레이크 - 데이터를 그대로 축적
- 모든 데이터를 원래의 형태로 축적해두고 나중에 그것을 필요에 따라 가공하는 구조가 필요하다.
- 빅데이터에서는 여러 곳에서 데이터가 흘러들어 오는 데이터를 축적하는 호수에 비유해 데이터이 축적 장소를 데이터 레이크라고 한다.
- 구체적으로는 분산 스토리지가 데이터 레이크로 이용된다.
- 데이터 레이크는 단순한 스토리지이며, 그것만으로는 데이터를 가공할 수 없다. 따라서 필요한 데이터는 데이터 마트에 정리해야한다.
데이터 분석 기반을 단계적으로 발전시키기
- 애드 혹 분석 및 대시보드 도구
- 애드 혹 분석(ad hoc analysis) - 일회성 데이터 분석
- 데이터 마트를 만들지 않은 채 데이터 레이크와 데이터 웨어하우스에 직접 연결하는 경우가 많다.
- 쿼리를 실행해 결과를 즉시 확인할 수 있도록 대화형 분석 도구를 사용한다.
- 대시보드 도구
- 정기적으로 그래프와 보고서를 만들고 싶을 때 사용한다.
- 일부 대시보드 도구는 데이터 마트 없이 동작하도록 설계되어 있기도 하다.
- 애드 혹 분석(ad hoc analysis) - 일회성 데이터 분석
- 데이터 마트와 워크플로우 관리
- 복잡한 데이터 분석에서는 먼저 데이터 마트를 구축한 후에 분석하거나 시각화하도록 한다. 특히 시각화에 BI 도구를 사용할 경우 데이터 마트는 거의 필수적이다.
- 데이터 마트 구축은 배치 처리로 자동화되는 경우가 많기 때문에 안정된 워크플로우 관리가 필수적이다.
데이터를 수집하는 목적 - 검색, 가공, 시각화
- 데이터의 검색
- 대량의 데이터 중에서 조건에 맞는 것을 찾고 싶은 경우
- e.g) 장애 발생 시 원인을 특정하거나 고객의 문의로 로그를 확인하는 것
- 시스템 로그 및 고객의 행동 이력 등 발생하는 모든 데이터를 취득해 놓도록 한다.
- 필요할 때 신속하게 검색할 수 있도록 하기 위해 실시간 데이터 처리나 검색 엔진을 사용하여 키워드를 찾는 기능이 필요하다.
- 대량의 데이터 중에서 조건에 맞는 것을 찾고 싶은 경우
- 데이터의 가공
- 업무 시스템의 일부로서 데이터 처리 결과를 이용하고 싶은 경우
- e.g) 추천 상ㅇ품 제안, 센서의 비정상적인 데이터 감지 등
- 이 경우 목적이 명확하기 때문에 필요한 데이터를 계획적으로 모아 데이터 파이프라인을 설계한다.
- 자동화가 필수적이기 때문에 워크플로우 관리 툴을 도입하여 시스템을 구축한다.
- 업무 시스템의 일부로서 데이터 처리 결과를 이용하고 싶은 경우
- 데이터 시각화
- 통계 분석 소프트웨어나 BI 도구 등으로 그래프를 만들고 앞으로의 상황을 예측해 의사 결정에 도움이 되도록 하는 경우
- 데이터를 시각적으로 봄으로써 알고 싶은 정보를 얻는 경우
- 시각화를 고속화하려면 데이터 마트도 필요하다.
확증적 데이터 분석과 탐색적 데이터 분석
- 확증적 데이터 분석
- 가설을 세우고 가설을 검증
- 탐색적 데이터 분석
- 데이터를 보면서 의미를 읽어냄
'Book > 빅데이터를 지탱하는 기술' 카테고리의 다른 글
Chapter 3 - 1. 빅데이터의 분산 처리 - 대규모 분산 처리 프레임워크 (0) | 2022.12.23 |
---|---|
Chapter 2. 빅데이터의 탐색 (0) | 2022.12.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Hadoop
- HDFS
- oozie
- kafka
- Algorithm
- kubernetes
- CS
- logstash
- BOJ
- Flutter
- 프로그래머스
- Espher
- DFS
- elasticsaerch
- 이코테
- CSAPP
- sqoop
- Python
- 네트워크
- 빅데이터를지탱하는기술
- Elasticsearch
- GROK
- cka
- 빅데이터
- heapq
- 백준
- DP
- OS
- 파이썬
- mahout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함