빅데이터를 어떻게 처리하는 지에 대해 알아보고 단계별로 어떤 기술이 적용되는지에 대해 공부한 내용을 정리
목차
빅데이터(Big Data)
1. 단계별 적용 기술
1.1. 빅데이터 처리 단계
-
- 데이터 소스
- 내부 데이터
- 외부 데이터
- 수집
- 로그를 수집
- 데이터 통합
- Open API
- 웹로봇
- RSS
- 저장
- 배치처리
- 검색
- 실시간 & 배
- 분석
- 알고리즘
- 스크립트엔진
- 분산병렬처리
- 표현
- 시각화
- 데이터 소스
처리 과정 | 설명 |
수집 |
조직 내외부의 분산된 여러 데이터 소스로부터 수동,자동으로데이터 수집기술
고려사항으로수집 가능성, 난이도및 비용, 보안, 정확성 등 검토 |
저장 |
컬럼 기반의 데이터 키, 밸류 기반의함수 형태로데이터 저장
|
처리 |
많은 양의 데이터 저장, 수집, 관리, 유통, 분석을 위한 처리 기술
|
분석 |
데이터의 효율적분석을통해 비즈니스 의사결정에반영하기위한 기술
|
시각화 | 선형 구조 형식 표현에서그림, 도표, 웹툰 등 다양한 형태로 데이터 표현및 visualization |
처리 과정 | 요소기술 |
수집 |
ETL, 크롤링 엔진, 로그수집기센싱, RSS, Open API 등
|
공유 |
멀티 테넌트 데이터 공유, 시멘틱, 협업 필터링, Replication
|
저장 |
병렬 DBMS, 하둡, Hbase, NoSQL, 클라우드등
|
처리 |
분산 병렬처리, MapReduce, In-Memory/In-Database
|
분석 |
통계 분석, Data/Text Mining, 예측분석, 최적화, 평판 분석, 소셜 네트워크분석 등
|
1.2. 수집 기술
◆ 데이터 소스
위치
|
내부 |
외부 | |
미디어
|
텍스트 |
오디오 | |
비디오 | |
이미지 | |
Mixed | |
상태
|
아날로그 |
디지털 |
◆ 데이터 수집을 위한 변환 및 통합
ETL (Extraction, Transformation, Load) |
∙ 메인프레임, ERP, CRM, Flat file, Excel 파일 등으로부터 데이터를 추출하여 목표하는 저장소의 데이터 형태로 변형한 후 목표 저장소(DW)에 저장
|
비정형 → 정형 |
∙ 비정형 데이터는 비구조적 데이터 저장소에 저장하거나 어느 정도 구조적인 형태로 변형하여 저장
ex) Scribe, Flume, chuckwa 등 오픈 소스 솔루션 |
레거시 데이터와 비정형 데이터간의 통합 |
∙ 데이터를 분석하기 위해서는 수집된 정형의 레거시 데이터와 비정형 데이터간의 통합이 필요
∙ Sqoop : RDBMS와 HDFS간의 데이터를 연결해 주는 기능으로 SQL 데이터를 Haoop으로 로드하는 도구 |
◆ 수집 방법과 솔루션
로그 수집기 |
조직 내부에 존재하는 웹 서버의 로그 수집, 웹 로드, 트랜잭션 로그, 클릭 로그, DB 로그데이터 등을 수집
|
크룰링 |
주로 웹 로봇을 이용하여 조직 외부에 존재하는 소셜 데이터 및 인터넷에 공개되어 있는 자료 수집
|
센서 |
각종 센서를 통해 데이터를 수집
|
RSS Reader |
데이터의 생산,공유, 참여환경인 웹2.0을 구현하는 기술
|
스쿱 (Sqoop) |
대용량 데이터 전송 솔루션으로 하둡 기반 시스템과 통합지원하며 맵리듀스에 사용될 프로그램 코드를 생성
|
플럼 (Flume) |
분산 환경에서 대량의 로그 데이터를 효과적으로 수집해 다른 곳으로 전송하는 서비스로 실시간 로그분석이 가능
|
척와(Chukwa) |
분산 서버로부터 로그 데이터를 수집하여하둡 클러스터의 로그나 서버의 상태정보를 관리해 하둡 파일 시스템에 저장하며 실시간 분석이 가능
|
스플렁크(Splunk) |
업무현장이나 클라우드상에 존재하는 페타비트급의기록 데이터와 실시간 기계 데이터를 모니터링하고분석
|
스크라이브 (Scribe) |
facebook이 개발해 공개한 로그 수집기술로 대량의 서버에서 실시간으로 오는 로그 데이터를 집약해 하둡 분산 시스템에 로그를 저장
|
카프카 (kafka) |
로그데이터를 수집 할 뿐만 아니라 메시징 시스템을 통해 전송데이터를 압축하고 메시지를 일괄적으로 전송
|
1.3. 저장 기술
- 빅데이터 저장을 위한 저장장치의 기술 요구
- 저비용
- 고확장
- 고가용
- 고성능
◆ 다양한 저장 접근 방식
접근방식 | 설명 | 제품 |
분산 파일 시스템 | 컴퓨터 네트워크를 통해 공유하는 여러 호스트 컴퓨터의 파일에접근할수 있게 하는 파일 시스템 |
GFS(Google File System),
HDFS(HadoopDistributed File System) |
NoSQL | 데이터 모델을 단순화해서 분산의 기본 개념을쉽게 정의하고, ACID 요건을 완화하거나 제약하는 형태의 새로운 저장 시스템을 통칭 |
Cloudata, HBase, Cassandra
|
병렬 DBMS | 다수의마이크로프로세서를 사용하여여러 디스크에 대한 질의, 갱신, 입출력등의 데이터베이스처리를 동시에수행하는 데이터베이스시스템 |
VoltDB, SAP HANA, Vertica,
Greenplum, Netezza |
네트워크구성 저장 시스템 |
서로 다른 종류의데이터 저장장치를 하나의 데이터 서버에연결하여 총괄적으로데이터를저장, 관리 |
SAN(Storage AreaNetwork),
NAS(Network Attached Storage) |
클라우드파일 저장 시스템 |
클라우드 컴퓨팅 환경에서 가상화 기술을활용한 분산 파일 시스템 |
Amazon S3, OpenStack Swift
|
1.4. 처리 기술
빅데이터 일괄 처리 기술 |
빅데이터를 여러 서버로분산하여 각 서버에서 나누어 처리하고, 이를 다시 모아서 결과를 정리하는 분산 병렬 기술 방식
구글 맵리듀스, 하둡맵리듀스 마이크로소프트드라이애드(Dryad) 등이 있음 |
빅데이터 실시간 처리 기술 |
스트림 처리 기술로 강화된 스트림컴퓨팅을 지원하는 IBM의 InfoSphere
Streams(인포스피어 스트림즈), 분산 환경에서 스트리밍데이터를 분석할 수 있게 해주는 트위터의Storm (스톰) |
빅데이터 처리 프로그래밍지원기술 |
분산 데이터를 처리하는프로그래밍언어인 구글의 소잴(Sawzall)과병렬 처리를
하는 고성능 데이터-플로우언어와 실행 프레임워크인하둡 Pig |
1.5. 분석 기술
Text Mining |
자연어처리기술 기반 정보추출, 가공 / Text Data에서 의미 있는 정보 추출
다른 정보와의 연계성 파악 / Text가 가진 카테고리 분류 문서 분류, 문서 군집, 문서 요약, 정보 추출 |
Opinion Mining |
평판분석 기법
소셜미디어등의 긍정, 부정, 중립 선호도판별 기술 특정 서비스 및 상품에 대한 시장규모 예측, 소비자 반응, 입소문분석 등에 활용 정확성을 위해서는전문가에 의한 선호도 표현/단어자원의 축적이 필요함 |
Social N/W Analytics |
Social N/W 연결구조, 연결강도를 바탕으로 사용자의 명성 및 영향력 측정
Social N/W 상에서 입소문의 중심이나Hub 역할을 하는 사용자를 찾는데 주로 활용 |
Cluster Analysis |
비슷한 특성을 가진 개체를 합쳐가면서 최종적으로유사 특성의 Group 발굴
|
- 비즈니스 분석
- 현재의 현상과 결과적인 관점을 제시하는데 초점을 두는 것으로 데이터의 생성부터 페기까지 전사적인 범위에서 기업의 미래를 예측할 수 있어야 함
- 통계 예측 최적화 등을 통하여 단순히 OLAP 툴을 사용하는 데와는 확연히 다른 분석 결과를 제공
- 고급 분석
- 고급 분석은 대용량의 데이터로부터 숨겨진 패턴을 발견하고 상황을 예측
- 비즈니스 혹은 그 밖의 상황을 예측하고 효율적인 의사결정을 지원하기 위해 구조화 및 비구조화된 복잡한 형태의 데이터에서 요인들 간의 상관관계와 의미 있는 데이터의 패턴을 식별하고 예측하기 위한 모든 기법과 기술들을 포괄
- 빅데이터를 활용하는 기업들은 쿼리와 리포팅 그리고 데이터 마이닝에서부터 예측 분석까지 다양한 분석 기술을 활용
1.6. 시각화 기술
- 정확한 의사결정을 위해서 주어진 데이터의 특성과 의미를 파악하기 위한 기술
- 데이터 속에 있으나, 데이터로부터 보이지 않는 새로운 패턴이나 관계를 발견하도록 도와주는 기술
- Trend Mindmap
- 마인드 맵 형태로 기술 트렌드의 현황을 표시
- Newsmap
- 끊잆없이 변화하는 뉴스의 모습을 반영
- 데이터 블록의 크기는 실시간 뉴스의 인기에 의해 정의
- CrazEgg
- 방문자의 행위를 파악
- 붉은 색은 더 자주 클릭하고 더 인기있는 섹션을 표현
- Info Graphics
- 복잡하고 어려운 전문지식 또는 데이터를 보다 쉽고 명화갛게 이해할 수 있도록 그래픽과 텍스트가 균형을 이루게 조합하여 시각화한 정보의 표현
- 복잡한 정보를 단순화하고 창의적인 접근방식으로 제시하여 빠르게 지식을 전달
◆ 시각화 기술을 위한 도구
태블로 (Tableau) |
- 스탠포드 대학 교수인 팻 하나한(Pat Hanrahan)의 R&D 프로젝트에서탄생
- 비주얼쿼리 언어인 VizQLTM를 사용함 - 이 언어는 사용자가 데이터베이스와 상호작용하면서 그래픽/시각적인 결과를 얻을 수 있는 선언 |
구글 오픈 차트 |
- 구글에서 open API를 통해서 제공하는 데이터 시각화 도구
- 웹사이트에 대한 데이터 시각화를 지원하여, 간단한 파이 차트에서부터복잡한 계층 트리 지도까지 다양한 형태의 그래픽 기능을 지원해줌 |
FlickrAPI |
- Flickr에서제공하는 open API를 이용하여 사용자가 원하는 사진과 관련한 data 시각화 기능을 구현할 수 있음
|
IBM Many eyes |
- 회사의판매 데이터에서 풋볼시합 결과, 구조화 되어 있지 않은 이메일 정보에 이르기까지 방대한 양의 데이터를 시각화함으로써알지 못했던 패턴을 발견할 수 있도록 해주는 데이터 시각화 기술
|
R |
- 빅 데이터 시대의 통계 분석도구를 넘어 기업의 분석 플랫폼으로써 역할 수행
- 구글 Visualization Chart API로 R에서 구글과 통신하여 데이터 고급 분석 가능 - 그 외에 Spotfire, Qlik View등의 상업용 데이터 시각화 프로그램과 연동을 지원 |
2. 빅데이터 인프라 기술
2.1. 하둡
2.1.1. 하둡의 정의
- 대량의 자료를 처리할 수 있는 대규모 컴퓨터 클러스터에서 분산 애플리케이션을 지원하는 오픈 자바 소프트웨어 프레임워크
- 하둡 = 하둡파일시스템(Hadoop File system, HDFS, 분산저장) + 맵리듀스(MapReduce, 분산처리)
- 구글 파일 시스템(GFS)을 벤치마킹하여 하둡 분산 파일시스템과 맵리듀스를 구현
- 하나의 작업을 여러 조각으로 분할하고, 각각의 조각을 분리된 서버에서 처리한 뒤, 다시 통합하여 최종 결과물을 제작하는 과정을 지원하는 도구의 모음
- 기존의 RDBMS 방식으로 처리하기 어려운 데이터를 일정한 크기의 N개로 분할, 여러 컴퓨터에서 병렬로 처리,
그 결과를 취합하여 사용자에게 제공하는 기술
2.1.2. 하둡의 특징
- 오픈소스
- 아파치 오픈소스 프로젝트로 무료 이용
- 운영은 사용자 책임
- 데이터가 있는 곳으로 프로그램을 이동
- 데이터 크기 >> 프로그램 크기
- 데이터가 존재하는 곳에서 프로그램 수행
- 스케일 아웃(Scale out)
- 서버의 수를 증가시켜 성능을 향상시키는 방식
- 증가된 서버들을 한 개의 시스템으로 인식시키기 위한 개념과 소프트웨어 필요
※ 스케일 업(Scale up)
- CPU, 메모리, 하드디스크 등의 서버 자원을 추가하여 처리 능력 향상
- 고가의 비용
2.1.3. 빅데이터에 하둡을 적용하는 이유
- 애플리케이션/트랜잭션 로그 정보는 매우 크다.
- 대용량 파일을 저장할 수 있는 분산 파일 시스템이 필요하다
- I/O 집중적이면서 CPU도 많이 사용한다.
- 클러스터 구성을 통해 멀티 노드로 부하를 분산 처리하여야 한다.
- 데이터베이스 특히 RDBMS는 하드웨어 추가 시 성능향상이 선형적이지 않다.
- 장비를 증가시킬 수록 성능이 선형적으로 향상되어야 한다.
- 데이터베이스는 소프트웨어와 하드웨어가 비싸다.
- 소프트웨어인 하둡과 리눅스는 무료이며, 하드웨어는 Intel 기반의 표준 플랫폼으로 저렴하게
구성 가능하다
- 소프트웨어인 하둡과 리눅스는 무료이며, 하드웨어는 Intel 기반의 표준 플랫폼으로 저렴하게
2.1.4. 하둡 시스템 구성도 및 데이터 흐름도
- 인터넷을 통해서 데이터를 수집
- HDFS , Mapreduce를 통해 데이터를 저장 및 처리
- RDBMS, NoSQL, 검색엔진등으로 데이터를 분석
- 시각화
2.1.5. 하둡 에코시스템의 기본 구성
하둡 분산 파일 시스템(HDFS)와 맵 리듀스로 구성
- HDFS
- 파일을 기본 64~128 MB 단위로 나누어서 분산 저장
- 네임노드와 데이터노드로 분리 구성
- 맵리듀스
- 대용량 데이터를 빠르고 안전하게 병렬처리 할 수 있도록 상용 하드웨어를 이용한 분산 프로그래밍 모델
하둡 클러스터 구성
구분 | 마스터 | 슬레이브 |
HDFS | 네임노드 (Name Node) |
데이터노드 (Data Node) |
맵리듀 스 |
잡 트래커 (Job Tracker) |
태스크 트래커 (Task Tracker) |
◆ 일반 분산 시스템과의 차이점
- 접근성
- 윈도우 PC같은 컴퓨터 집합으로 구성된 클러스터에서 실행 가능
- 마이크로소프트의 Azure와 같은 클라우드 컴퓨팅 서비스에서 실행 가능
- 견고성
- 범용 윈도우 pc의 장애 상황에서도 동작 가능하도록 설계
- 확장 가능성
- 대용량 데이터 처리를 위해 단순히 컴퓨터를 추가함으로써 선형적 성능 확장 가능
- 용이성
- 하둡 에코시스템을 활용하여 빠르고 간편하게 병렬 처리 기능 구현 가
2.2. 하둡 파일 시스템
- 정의
- 분산 서버 구조로 Master인 name node가 메타(meta) 정보를 관리하고 실제 데이터는 여러 대의 data node에 분산해서 저장하는 하둡 분산 파일 시스템
- 장점
- Scale-out에 의한 서버 확장의 부담 감소
- 특징
- 구성 요소 장애 대응
- 배치 작업에 적합
- 수 테라 바이트까지 처리 가능
- 동작 흐름
- 파일 처리 및 배치 업무를 빠르게 수행하기 위한 제안된 병렬 처리 모델
- 구글의 GFS(Google File System) 기반으로 만들어진 오픈소스
- 한 개의 네임노드와 다수의 데이터노드로 구분
- 네임노드에는 데이터 노드에 저장하는 화일명, 데이터 노드에서의 위치 정보 등을 메타데이터 형태로 전체 메모리에서 관리
- 파일은 64MB 정도의 블록으로 분할되어 값싼 디스크를 장착한 최소 3개의 데이터노드에 분산 저장되어 장애에 대비
2.3. 맵리듀스
- 정의
- 분산 파일 시스템 상에서 빅 데이터의 분산 처리를 담당
- 기능적 또는 선언적 언어가 아니라 Key, Value 기반의 프로그램
- 진행 단계
- 맵과 리듀스의 두 단계로 구성
- 맵과 리듀스 모두 입력으 로 주어지는 데이터나 출력으로 내보내는 데이터가 모두 키와 밸류로 구성
기본 동작 예
맵리듀스 특징
- 분산 컴퓨팅에 적합한 함수형 프로그래밍
- 배치형 데이터 처리 시스템
- 어플리케이션 로직의 주요 관심사를 파악, 많은 요소를 사전 반영
맵리듀스 기능
- 자동화된 병렬처리 및 분산처리
- 내고장성과 결함허용
- 상태 모니터링 툴 제공
- 구글의 GFS 기반으로 만들어진 오픈소스
사용 분야 구분
- 적합 분야
- 대량의 텍스트를 전환하는 병렬도가 높은 단순 작업
- 로그 분석
- 데이터 마이닝 분야 중 클러스터링 또는 데이터 분류
- 비적합 분야
- 실시간 데이터 스트림 처리
- 반복 실행이 많은 작업
- 네트워크 대역폭을 많이 필요로 하는 업무
2.4. NoSQL
정의
- Not-only SQL 또는 NO SQL을 의미
- 전통적인 관계형 DBMS와는 달리 설계된 관계형 데이터 베이스를 의미
- 기존 관계형 DBMS로서 빅 데이터 처리 시 발생하는 수평확장과 성능 한계를 극복하기 위해 인터넷 기업들이 고안해 낸 새로운 개념의 DBMS
특징
- 확장성과 성능한계를 해결하기 위하여 기존의 관계형 DBMS의 SQL 질의 방식과 관계형 데이터 모델을 포기
- 데이터 접근에 API(Application Program Interface) 또는 자체 질의어를 사용
- 응용프로그램 관계형 DBMS의 제약과 트랜잭션 처리 기능을 위임
- NoSQL은 CAP 이론 중 일관성을 포기하는 대신 가용성과 분산 처리를 중시
2.4.1. CAP 이론
정의
- NoSQL은 분산형 구조를 가지고 있는 분산시스템의 특성을 반영하기 위하여 CAP 이론을 기반으로 함
- 2002년 버클리대학의 Eric Brewer 교수가 가설을 제시
- 분산컴퓨터는 CAP 이론의 3 가지 항목 중 최대 두 가지 만을 지원하며, 잔여 한가지는 지원할 수 없음
의미
- 일관성(Consistency), 가용성(Availability), 분할 허용성(Partition Tolerance) 등 3가지 항목 모두를 지원하는 분산 컴퓨터 시스템은 없다
- 일관성(Consistency) : 다중 클라이언트에서 같은 시간에 조화하는 데이터는 항상 동일한
데이터임을 보증(관계형 DBMS의 기본적인 기능) - 가용성(Availability) : 모든 클라이언트의 읽기와 쓰기 요청에 대하여 항상 응답 가능하여야
함을 보증 - 분할 허용성(Partition Tolerance) : 지역적으로 분할된 네트워크 환경에서 동작하는 시스템에서, 두 지역 간의 네트워크 단절 또는 데이터 유실되더라도 각 지역 내의 시스템은 정장적으로 동작해야 함을 보증
2.5. 하둡 에코시스템 2.0
- 얀(Yet Another Resource Negotiator, YARN)이라고 하는 자원관리 프레임워크가 추가됨
- MapReduce를 포함하는 데이터 프로세싱 기능을 YARN의 어플리케이션 또는 프로세스로 전환시켜 다수의 데이터 처리가 가능
- 하둡에서 운영되는 자원 관리 운영체제라고 볼 수 있음
2.6. R 프로그램
- 통계 데이터 수정과 분석에 사용되는 스크립트 언어
- 빅데이터 시각화 기술
- 하둡에는 포홤되지 않음
2.6.1. R의 특징
- 계학자들의 표준 언어인 S를 기반으로 한 사실상 표준 플랫폼
- 객체지향 언어로서 다양한 기능을 개발할 수 있으며, 분석을 자동화하거나 기존 언어의 특징을 확장해 새로운 함수를 생성할 수 있음
- 데이터 세트를 저장해 데이터를 매번 다시 로딩할 필요가 없으며 명령어 히스토리 저장
- 오픈 소스 소프트웨어로 수 많은 함수를 공유함
마무리
빅데이터를 다루기 위해 어떤 식으로 데이터가 처리가 되는 지에 대한 그 과정과 여러 핵심 기술에 대해 정리해 봄.
'데이터 > 빅데이터' 카테고리의 다른 글
[빅데이터] 빅데이터와 플랫폼에 대한 개괄적인 이해 (0) | 2023.04.18 |
---|
댓글