빅데이터를 어떻게 처리하는 지에 대해 알아보고 단계별로 어떤 기술이 적용되는지에 대해 공부한 내용을 정리
목차
빅데이터(Big Data)
1. 빅데이터 이해
1.1. 빅데이터 정의
기존 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석할 수 있는역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 의미
웹 검색엔진 데이터 | 웹 페이지 데이터 검색어 로그와 클릭 로그 데이터 |
스마트 디바이스에서 생성되는 데이터 | 스마트폰 IoT, 교통카드, 신용카드 |
소셜 미디어의 데이터 | 카카오톡 페이스북, 트위터 |
◆ 데이터의 단위
단위 | 크기 |
1 Magabyte | 10^{6} 바이트 |
1 Gigabyte |
10^{9} 바이트 = 1 Magabyte * 10^{3}
|
1 Terabyte |
10^{12} 바이트 = 1 Gigabyte * 10^{3}
|
1 Petabyte |
10^{15} 바이트 = 1 Terabyte * 10^{3}
|
1 Exabyte |
10^{18} 바이트 = 1 Tetabyte * 10^{3}
|
1 Zettabyte |
10^{21} 바이트 = 1 Exabyte * 10^{3}
|
1 Yottabyte |
10^{24} 바이트 = 1 Zettabyte* 10^{3}
|
비정형 데이터가 폭발적으로 증가하고 있는 상황
1.2. 빅데이터의 특징
- 장기적/전략적 접근이 요구됨
- 처리 복잡도가 높음
- 처리할 데이터량이 방대함
- 비정형 데이터의 비중이 높음
- 처리/분석 유연성이 높음
- 시계열성이 존재함
- 현실성이 있음
- 동시 처리량이 낮음
- 결합성을 통한 활용 가능성이 높음
1.3. 빅데이터의 범위
정형 데이터 |
•일반적으로 관계형 데이터베이스(RDBMS)에 저장되는 스프레드시트형 데이터
•데이터 스키마와 실제 정보를 가지는 파일로 구성 |
반정형 데이터 |
•데이터 내부에 정형 데이터의 스키마에 해당되는 메타 데이터를 가짐
•일반적으로 파일 형태로 저장 |
비정형 데이터 |
•데이터 세트가 아닌 하나의 데이터가 수집 데이터로 객체화
•텍스트 데이터, 이미지, 동영상 같은 멀티미디어 데이터 •HTML은 반정형 데이터 또는 비정형 데이터로도 볼 수 있음 |
◆ 빅데이터 처리
빅데이터 프로세싱은 기관/기업 내외부 모든 데이터의 통합 처리를 의미
1.3. 빅데이터 유용성
- 규모 측면
- 표본 추출에서 전수 분석이 가능하여 정보의 왜곡이 감소함
- 다량의 데이터를 활용할 수 있는 새로운 분석 기법을 적용할 수 있음
- 다양성 측면
- 다양한 변수 사이의 새로운 관계 발견
- 고객의 형태가 여과없이 담겨 있는 비정형 데이터 확보 가능
- 속도 측면
- 사건 발생 시점과 데이터 감지 시점 간에 차이 없ㅇ니 실시간으로 처리 가능
◆ 전통적 데이터와 빅데이터와의 차이
전통적 데이터 | 빅데이터 | |
데이터 원천 |
전통적 정보 서비스 |
일상화된 정보서비스
|
목적 | 업무, 효율성 |
사회적소통, 자기표현, 사회기반서비스
|
생성 주체 |
정부, 기업 등 조직 | 개인, 시스템 등 |
데이터 유형 |
․정형 데이터 ․조직 내부 데이터 (고객정보, 거래정보둥) ․주로 비공개 데이터 |
․비정형 데이터
(비디오스트림, 이미지, 오디오, 소셜네트워크등의 사용자데이터, 센서데이터, 응용프로그램데이터등) ․조직 외부 데이터 ․일부 공개 데이터 |
전통적 데이터 | 빅데이터 | |
데이터 특징 |
․데이터증가량관리 가능 ․신뢰성 높은 핵심 데이터 |
․기하급수적양적 증가
․Garbage 데이터 비중 높음 ․문맥정보등 다양한 데이터 |
데이터 보유 |
정부, 기업 등 대부분 조직 |
․인터넷서비스기업(구글, 아마존등)
․포털(네이버, 다음등) ․이동통신회사(SKT, KTF 등) ․디바이스생산회사(애플, 삼성전자등) |
데이터 플랫폼 |
정형 데이터를 생산, 저장, 분석, 처리할 수 있는 전통적 플랫폼 ex) 분산 DBMS, multi processor, 중앙집중처리 |
비정형의 대량 데이터를 생산, 저장, 분석, 처리할
수 있는 새로운 플랫폼 ex) 대용량 비정형 데이터 분산 병렬 처리 |
1.3. 빅데이터 특징
◆ 3V
- Volume
- 기술적인 발전과 IT의 일상화가 진행되면서 해마다 디지털정보량이 기하급수적으로 폭증 → 제타바이트(ZB)로 진입
- Variety
- 로그기록, 소셜 위치 소비 현실데이터 등 데이터 종류가 증가
- 텍스트 이외의 멀티미디어 등 비정형화 데이터 유형 증가
- Velocity
- 사물정보(센서, 모니터링), 스트리밍 정보 등 실시간성 정보 증가
- 대규모 데이터 처리 및 가치있는 현재 정보(실시간) 활용을 위해 데이터 처리 및 분석 속도가 중요
Veracity : 정확성, Value : 가치
2. 빅데이터 플랫폼
빅데이터 플랫폼 요소
◆ 주요 기술
구분 | 설명 | 오픈소스 |
데이터 수집 | - 데이터 발생원으로부터 데이터 수집하는기능 | Flume, Scribe, Chukwa |
원본 데이터 저장 |
- 수집된 데이터를 저장하는 저장소 - 비 구조적 데이터 저장소로 주로 대용량 파일 저장소 |
Hadoop Filesystem,
MogileFS |
구조적 데이터 저장 |
- 원본 데이터를 실시간으로 저장, 조회, 처리를 위한 저장소 - 구조적 저장소 또는 검색 엔진기술을 활용 |
NoSQL(Cloudata,
HBase, Cassandra MongoDB) |
실시간 분석 플랫폼 |
- 데이터 수집과 동시에 분석을수행 - 복잡한 분석보다count, sum 등 단순한 aggregation 연산 수행 |
S4, Storm |
배치 분석 플랫폼 |
- 전체 또는 부분 데이터에 대해 다양한 분석 수행 - 대용량 처리를 위해 분산, 병렬 처리 필요 |
Hadoop MapReduce
(Hive, Pig) Griaph, GoldenORB |
데이터 마이닝/ 통계도구 |
- Cluster, Classification 등과 같이 데이터 마이닝을 위한 기본 알고리즘라이브러리및 도구 |
Mahout, R |
클러스터관리 및 모니터링 |
- 대부분 분산시스템으로구성되기때문에전체 클러스터에 대한 관제 및 모니터링도복잡 |
Zookeeper, HUE,
Cloumon |
데이터 Serialization |
- 이 기종 플랫폼및 다양한종류의솔루션을 사용하기 때문에 데이터 전송 및 처리에대한 표준프레임워크필요 | Thrift, Avro, ProtoBuf |
스트리밍 데이터 프로세싱 |
- 스트리밍 데이터 프로세싱기술 |
Streaming DBMS
DW Appliance |
분산처리 기술 | - 관리 기술, 분산 큐 기술 - 분산 캐시 기능 |
ZooKeeper, kafka
Memcached, Redis |
데이터 분석 알고리즘 |
- 데이터 분석을 위한 세부 기술 - Social Network Analysis |
Clique 분석
Centrality 분석 |
◆ 아키텍쳐 요구사항
Scalability |
- Scale-out 방식의 확장으로 탄력성 확보되어야함
|
Flexibility |
- 분석 규칙의 추가의 용이성이확보 되어야 함
|
Fast Search, Indexing
|
- 사용 하고자 하는데이터를 가능한 손쉽게 찾고 빠른 접근이
가능해야함 |
Rapid analysis/ Response
|
- 빅 데이터의 분석또는 처리 결과가 신속해야 함
- Real Time, Near Real Time, Batch |
Multi/parallel Processing
|
- 신속한 빅 데이터의 처리를 위해 다중 작업에 의한 동시 / 병렬처리
가능해야함 |
TCO Reduction |
- 빅 데이터의 분석과 활용에 비용 효율적이되어야 함
|
◆ 기술 구성 요소
구성요소 | 내용 | |
Front
End |
경량 script 언어 |
- GC 성능 및 UI구현 이용하고 스크립트언어로Front End 구성
- Ruby on Rails, Scala, JavaScript, python, PHP |
경량 App Server |
- 다수의 경량 Application Server를 이용하여사용자응답성의 극대화
- Apache Thrift, Apache Avro, Jetty, Tomcat, nginX |
|
Front(Page) Cache |
- 정적 리소스 및 동적 데이터에 대한 캐시 서비스로App/DB 서버부하 절감 및
응답성향상 - Varnish cache, squid cache, Apache traffic server |
|
Middle
Tier |
캐시 Pool |
- DBMS를 통해 빈번하게조회된 데이터를 메모리에캐시하여 DB부하 절감 및
응답속도 향상 - Memcached, Membase(CouchBase), Ehcache, Oracle Coherence |
분산 미들웨어 |
- 분산Application 서버와Database간의투명성과Fault-tolerant를
제공하는 분산메시지기반미들웨어 - Kestrel(twitter), Kafka(LinkedIn), Apache ActiveMQ, ZeroMQ 10 |
구성요소 | 내용 | |
Back
End |
분산 파일시스템 |
- 분산 Application 서버와 분산 Database를수평적으로 확장 가능한
네트워크기반의분산파일 - GFS(Google), Apache HDFS, GLORY-FS(ETRI), OwFS(Naver) |
분산 데이터 스토리지/ 연산처리 |
- 관계형 DB의 한계를 극복하고 초고용량데이터의 처리를위해 새롭게고안된
데이터 저장방식 - 기본적으로데이터의 분산관리를지원하며인덱스의 최적화에 집중화된DB로 데이터 쓰기가많은 업무의 실시간 데이터 처리에 최적화된 DB - HadoopMap/Reduce, HBase, MongoDB, cassandra, cloudata, MySqlCluster(InnoDB) |
|
DW & 검색엔진 |
- 확장 가능한고 성능정보 검색서비스용라이브러리엔진및 DW 엔진
- Apache Lucene, Sphinx, Apache Hive |
3. 빅데이터 수집기술
3.1. Chukwa
하둡 프로젝트의 서브프로젝트로 진행 중인 오픈소스 프로젝트로 분산된 서버의 로그를 HDFS에 저장하고 하둡 맵리듀스를 이용해 로그 분석을 수행하는 Yahoo의 프레임워크
● 특징
- 범용적인 로그 수집과 로그 관리를 위한 솔루션으로 개발됐지만 하둡 클러스터의 로그와 서버의 상태 정보를 관리하는 기능도 포함
- 하둡을 이용해 작업을 수 행시 사용자 로그를 보기 위해 여러 노드를 접속해야 하는 불편함이
있는데, 척와를 이용하면 쉽게 로그를 수집가능
구성
- 분산 환경에서 각 플랫폼의 agent에서 수집된 데이터를 HDFS에 저장
- 로그 데이터를 처리하는 작업(2가지
- 아카이빙(archiving)은 컬렉터가 저장한 로그 파일을 이용해서 시간 순서와 동일한 그룹으로 묶는 작업을 수행
- 아카이빙에서는 데이터의 중복을 제거하고 정렬작업을 수행한 후, 하둡 SequenceFile 포맷으로 저장
- 디먹스(demux)는 로그 레코드를 파싱해서 키-값 쌍으로 구성되는 ChukwaRecord를 만든 후, 하둡 파일 시스템에 파일로 다시 저장
3.2. SQOOP
빅데이터 처리 기
SQL 데이터베이스에 저장된 데이터를 하둡으로 이동시키기 위한 도구
- 기존 데이터베이스에 있는 정보로 채워진 대용량 테이블을 꺼내 하이브 또는 HBase와 같은 도구에서 제어할 수 있도록 지원
- 테이블과 데이터 스토리지 계층 사이의 매핑을 제어하는 도구로, 테이블을 HDFS, HBase 또는
하이브를 위한 구성 가능한 조합으로 변환
3.3. Flume
Cloudera에서 2010년에 공개한 오픈소스 로그 수집 프레임워크로써, 대량 로그데이터를
효율적으로 수집 및 모니터링이 가능하고 실시간 전송을 지원함
Agent + Collector 구조의 이벤트 Data 수집이 목표
◆ 특징
- 높은 안전성, 가용성을 갖춘 로그관리용 오픈소스
- 장애발생시에도 데이터를 잃지 않고, 이벤트를 전달하는 것을 계속 할 수 있는 Fail-Over
- 자바로 구현되어 있기 때문에 다양한 운영체제에 설치가 가능
◆ 구조
- chukwa와 비슷하나 마스터서버가 있어 수집 및 전송 경로와 방식을 동적으로 설
- 데이터 수집을 위한 다양한 데이터 플로우 토플로지를 구성 할 수 있고, 마스터 서버에서 통합 관리 할 수 있는 웹페이지를 제공할 뿐만 아니라, 이를 통해 설정을 쉽게 변경하거나 모니터링 가능
- 마스터 서버를 이중화 하여 가용성이 높고, 자바로 구현되어 있어 다양한 OS플랫폼에 포팅이 가능함
3.4. 로그수집기
- 로거
- 특정 웹서버의 로그 수집, 웹로그, 트랜잭션 로그, 클릭 로그, 등을 수집
- 센싱
- 각종 센서를 통해 데이터 수집
- RSS, OPEN API
- 웹 2.0 ,기반하에 RSS, API를 통한 데이터를 프로그래밍하여 수집하는 형태
- 크롤링
- 외부에 존재하는 사이트에 공개되어 있는 소셜데이터 및 자료를 수집하는 방
4. 빅데이터 저장 기술
4.1. HDFS
분산 서버 구조로 Master인 Name node가 파일의 메타(meta) 정보를 관리하고 실제 데이터는 여러 대의 Data node에 분산해서 저장하는 하둡 분산 파일 시스템
간략한 장점과 특징은 전 자료에서 이미 정리
- 구성
Name Node
|
파일 시스템의 Metadata(디렉토리 구조, Access 권한 등)을 관리하는 서버 (일종의 Master Node) |
블록에 대한 배치정보를 관리하여, 특정 파일이 어떻게 블록으로 분할되어 어느 Data Node에 보관유지되고 있는지를 관리
|
|
디렉토리 구조, 파일에 대한 각종 메타 데이타, 그리고 물리적 파일이 저장되어 있는 위치 등을 저장
|
|
Data Node
|
실제 데이터를 저장 유지하는서버
|
파일을 블록단위로 나누어 저장하며, 고정 사이즈 분할 단위는 디폴트 64MB, 일반적으로 128MB 사용
|
|
Data Node간에는데이터 복제를 통해데이터의 신뢰성 유지함
|
|
Namenodes와 주기적으로통신하여 저장하고있는 블록에 대한 정보를 Namenodes에 저장
|
|
Secondary name node
|
Name Node의 Metadata 로드가 실패시 Backup Node로써사용
|
Name Node에서Secondary Name Node로 copy가 지속적으로일어나게됨
|
|
Job Tracker |
분산 환경에서 작업을 분산시키는 스케쥴 작업 (master: Task Tracker에 작업할당)
|
Task Tracker |
Data Node에서 Map-Reduce 역할을 수행 (slave: 할당 받은 작업을 처리함)
|
4.1.1. 상세 메커니즘
◆ Data Read
◆ Data Write
4.1.2. CAP 특성 조합에 따른 DBMS 종류
특성 | 설명 | 대표 |
C + P | 모든 노드가 함께 퍼포먼스를 내야 하는 성능형 대용량분산, 성능보장형 서비스에 적합 |
구글의 BigTable, HyperTable, HBase
|
A + P | 비 동기화된 스토어 작업에 필수적 SNS 서비스에 적합 |
Dynamo, Tokyo cabinet, Apache
Cassandra, CouchDB, Oracle Coherence |
C + A | 시스템이죽더라도메시지 손실은 방지하는강한 신뢰형 (트랜잭션이 필요한 경우 필수적) |
RDBMS |
4.2. NoSQL
● NoSQL 과 RDBMS 비교
구분 | NoSQL | SQL |
저장 데이터 |
중요하지 않으나 데이터 양이 많고 급격히 늘어나는 정보 저장 |
기업의 제품판매 정보, 고객정보 등의 핵심
정보의 저장 |
환경측면 | 클라우드 컴퓨팅처럼 수천, 수만대서버의분산 환경 |
일반적인 환경이나 분산 환경 등에 사용
|
장점 | 비용적인 측면과 확장성 기준 |
무결성, 정합성, 원자성, 독립성, 일관성
|
처리방법 | 페타 바이트 수준의 대량의 데이터 처리 |
오라클 RAC 등으로 분산 처리 방법
|
특징 | 단순한 키와 값의 쌍으로만 이루어져인덱스와 데이터가 분리되어 별도로 운영됨 |
고정된 스키마를 가지며 조인 등을 통하여
데이터를 검색함 |
사용 예 | 구글의 Bigtable, 아마존의 Dynamo, 트위터의 Cassandra 등 |
오라클 RAC |
4.3. ZooKeeper
◆ 용도
- 빅 데이터 처리 기술
- 하둡의 분산 상호조정 서비스를 이용하여 일반적인 분산 응용프로그램을 구축
◆ 특징
- 다양하게 활용 가능
- 고가용성을 지원
- 느슨하게 연결된 상호 작명을 제공
• 상호 조정을 위한 라이브러리
5. 빅데이터 분석 기술
5.1. 텍스트 마이닝
대용량 Text Data에 존재하는 Data간의 관계, 패턴, 규칙 등을 찾아내거나 발견하여 기업의 경쟁력 확보를 위한 의사 결정을 돕는 유용한 정보로 변환하는 일련의 과정(Process)
◆ 수행 단계
- Text 문서 호출
- Text 전처리
- 의미정보 변환
- 의미정보 추출
- 패턴 및 경향 분석
- 정보 표현 및 평가
5.2. 오피니언 마이닝
SNS, 블로그, 카페, 게시판, 지식검색 등 인터넷에 산재한 모든 웹 문서, 댓글 등에서 소비자들의 의견을 수집 및 분석해 제품이나 서비스 등에 대한 평판(Reputation)을 추출해내는 Mining
- 평판분석 기법
- 소셜미디어 등의 긍정, 부정, 중립 선호도 판별 기술
- 특정 서비스 및 상품에 대한 시장규모 예측, 소비자 반응, 입소문 분석 등에 활용
- 정확성을 위해서는 전문가에 의한 선호도 표현/단어 자원의 축적이 필요함
◆ 적용 단계
- 문장은 '사실(Fact)'에 근거한 문장과 글쓴이의 '의견'이 들어간 문장으로 구분
- 글쓴이의 '의견'이 들어간 문장을 Postitive와 Negative 문장으로 구분
- 형용사 동사 부사에 초점
- 문장의 표현 강도를 구분
- 각각의 문장마다 자동으로 점수를 부여하여 분석결과 도출
5.3. SNA
사회 구조를 노드(node)와 이들 노드를 연결하는 링크로 구성되는 연결망(network) 으로 도시하고 이들 간의 상호작용을 계량화해 주는 분석 기법
• 네트워크에서 행위자들간의 측정한 관계를 기반으로 사회적 관계를 실증적으로 추론하는 연구
◆ 주요 방법 : Centrality 분석
- 한 점(node)이 Network에 얼마나 중심에 위치하는 지에 대한 정도를 측정하는 방법
- Degree Centrality 분석 : 직접적으로 연결된 점들과의 연결 정도를 기반
- Betweenness 분석 : 다른 점간의 매개 정도로 중심성을 판단
5.4. 머신러닝
- 인공 지능 분야에서 인간의 학습을 모델링한 것
- 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하여 자체적으로 판단할 수 있도록 훈련
마무리
빅데이터가 어떻게 처리되는지에 대한 대략적인 Flow와 각각 어떤 기술이 적용되고 어떤 특징이 있어서 활용되는지에 대해 알아봄.
후에 실제로 할 경험이 생길 경우 대략적인 Flow를 항상 기억하고 거기에 어떻게 적용하는지에 대해 파악하고 특정 기술에 대해 배울 필요성을 느낌.
'데이터 > 빅데이터' 카테고리의 다른 글
[빅데이터] 빅데이터 처리 과정에 대한 내용 정리 (0) | 2023.04.17 |
---|
댓글