이번 수업에서 꼭 알아가야 할 것 ?
- 빅데이터란 무엇인가 ?
- 빅데이터 (처리) 기술
- 하둡의 의미와 구성요소
빅데이터 분석 단계에는 크게 4가지가 있다. 기획, 탐색, 분석, 해석
빅데이터의 특징을 언급할 때 가트너그룹의 "3V" 에서 분석의 정확성 부분을 추가하여 흔히 4V 가 거론된다. 가트너그룹에서 빅데이터의 특성을 3V (Volume, Variety, Velocity)로 정의하였으며, 학계와 산업계의 지속적인 연구와 개념정의를 하다 보니 빅데이터에 대한 정의가 추가되고 있는 것이다. 빅데이터는 활용되는 목적에 따라 정의가 달라질 수 있으므로 우선은 빅데이터에 대하여 포괄적이고 개념적으로 이해하는 것이 필요하다.
- Volume : 대용량, 규모 (엄청난 크기의 데이터)
- 일례로 페이스북이 하둡(Hadoop) 데이터베이스에 저장하는 사진문서 용량이 30페타바이트(대략 30,000TB)에 이른다. 뉴욕 증권거래소는 매일같이 1TB에 해당하는 데이터를 쏟아낸다. 좀 더 극단적인 예를 들자면, 우리나라 전국 각지의 골목길마다 설치된 CCTV 영상 수년치 분을 데이터로 취합한다고 상상해 보자.
- Variety : 다양성 (데이터의 다양성)
- 흔히 비정형적 데이터(Unstructured Data)로 불리는 것들, 즉 계량화(수치화)가 힘든 데이터도 포함하는 것이다.
- 대표적인 예로는 SNS 상에서 오가는 무수한 잡담들, 유튜브 영상이나 음원 파일 등도 빅 데이터 분석에 사용될 수 있다.
- Velocity : 처리 및 수집 속도 (실시간으로 데이터를 수집하는 속도)
- 어마어마한 데이터가 아주 짧은 시간에 생성되고 사라지며, 아주 짧은 시간 동안만 유의미하다. 데이터를 처리하는 관점에서 보더라도, 이런 어마어마한 양의 다양한 데이터를 분석하려다 보니 과거의 느린 데이터 마이닝 속도나 분석 속도로는 어림없다. 빅 데이터가 적시에 유용한 정보를 뽑아내기 위해서는 당연히 속도가 빨라야 한다.
※ 수업중에 다루지 않은 Veracity : 정확성 또한 있다. 이건, 표본이 크므로 정확도가 높다는 특징을 말한다.
이후의 빅데이터 2.0에서는 위의 4가지 요소에 한가지를 더 추가하여 "5V" 로 표현하고 있다.
- Value : 가치
- 빅 데이터 분석을 통해 도출된 결론은 기업이나 조직의 당면한 문제를 해결할 수 있어야 하며 통찰력 있는 유용한 정보를 제공해야 한다.
※ 요약 정리
데이터 | 정형 데이터 | 수치형 데이터, 문자형 데이터, 구조적 데이터, 형태가 고정 예시) DB Table (DBMS가 관리) |
반정형 (SEMI) 데이터 | 1. 관계형 DB는 아니지만, 어느정도 구조를 갖는 데이터, 2. 데이터의 구조와 형식이 변경될 수 있는 데이터, 3. 구조정보와 데이터가 같이 있는 데이터 |
|
비정형 데이터 | 형태가 고정되어있지 않은 데이터 예시) 문자 메시지, 동영상, 음악 (정보추출단계가 필요, DBMS 사용X) |
정형 데이터 : 정량적 데이터라고도 하는 정형 데이터는 미리 정의된 구조 또는 모형을 따르는 데이터이다.
정형 데이터는 매우 체계적이기 때문에 머신 러닝 알고리즘과 인간에 의해 쉽게 처리된다. 정형 데이터는 데이터베이스와 데이터 웨어하우스에 저장된다. 정형 데이터의 예로는 메트릭, 날짜, 이름, 우편 번호 및 신용 카드 번호가 있다. 이러한 유형의 데이터는 스프레드시트 또는 SQL, MySQL 및 PostgreSQL과 같은 관계형 데이터베이스에 적합하며, 쉽게 액세스하고 해석할 수 있는 정보를 기업에 제공한다. 기업은 정형 데이터를 사용하여 고객의 이름, 구매 내역 및 지리적 위치와 같은 데이터 요소로 고객의 행동을 해석할 수 있습니다. 이를 통해 기업이 고객 행동을 분석할 수 있는 관계형 데이터베이스로 고객 관계를 관리하는 고객 관계 관리(CRM)가 가능합니다.
정형 데이터 : 구조적 데이터 (테이블 형식으로 표현할 수 있는 데이터, 관계형 데이터베이스(DB)에 저장되는 데이터)
→ SQL
※ 정형 데이터 (독립 변수, 종속 변수)
예 ) 아들 키 예측 = 아버지 + 어머니 + 할아버지 + 할머니
→ 4개의 독립 변수로 1개의 종속 변수를 예측
※ 관계형 데이터베이스(RDBMS) : 데이터 저장장소와 스키마가 분리 저장되어 테이블 생성하고 데이터를 저장
관계형 DB → DBMS (DB 관리 시스템, SQL 언어)
반정형 데이터 : 기존 방식으로 캡처되거나 형식이 지정되지 않은 데이터를 말한다. 반정형 데이터는 고정된 스키마가 없기 때문에 테이블 형식 데이터 모델이나 관계형 데이터베이스의 형식을 따르지 않는다. 그러나 데이터는 완전히 원시 또는 비정형 상태가 아니며 태그 및 조직 메타데이터와 같은 일부 구조적 요소가 내재되어 더 쉽게 분석할 수 있습니다. 반정형 데이터의 장점은 정형 데이터에 비해 확장이 더 유연하고 간단하다는 것이다. (= 스키마는 있는데 구조화되지 않은 것)
비정형 데이터 : 정의된 구조가 없이 정형화되지 않은 데이터. 대표적인 비정형 데이터에는 동영상 파일, 오디오 파일, 사진, 보고서(문서), 메일 본문 등이 있다. 비정형 데이터는 데이터 구조가 없어 비정형 데이터 자체만으로는 내용에 대한 질의 처리(query processing)를 할 수 없다. → 기존 DBMS로는 불충분하다.
(매우 중요 ★)
데이터 유형 | 정의 | 예시 | |
숫자형 (Numeric) |
연속형 (Continuous) | 나이, 키, 몸무게, 급여 등과 같이 정의된 범위 내에서 모든 값을 가지는 유형 | 신장(cm) 급여($) |
이산형 (Discrete) | 가족의 자녀 수, 집의 방 수 등과 같이 정수와 같은 특정 값만 취하는 유형 | 가족의 자녀 수 집의 방 수 |
|
범주형 (Categorical) |
명목형 (Nominal) | 순서 없이 각 요소에 대한 레이블이나 이름을 지정하는 유형 | 성별 (남성, 여성) 머리색 (금발, 갈색, 빨간색) |
순서형 (Ordinal) | 교육 수준, 직함 등과 같은 데이터 요소에 순위 또는 순서를 지정하는 유형 | 학력 (고교, 대학교, 대학원) 직위 (과장, 이사, ...) |
|
문자형 | 문자 (Character) | 사람 이름의 첫 글자 또는 단어의 특정 글자와 같이 단일 문자 또는 글자를 나타내는 유형 | 사람 이름의 첫 글자 단어의 특정 글자 |
문자열 (String) | 사람의 이름, 주소, 도시 등과 같은 일련의 문자를 나타내는 문자열 데이터 유형 | 사람의 이름, 주소, 도시 |
- 수치형 데이터 (양적 데이터) : 연속형 데이터 (실수형 데이터), 이산형 데이터 (정수형 데이터)
- → 비율척도 (몸무게, 키), 구간척도 (온도)
※ 비율척도는 ~배의 의미를 가지고 있다. 쉽게 얘기를 하자면, 키 40cm 를 두 배하면 80cm가 된다. 사칙연산에서 덧셈, 뺄셈, 곱셈, 나눗셈이 가능하고 의미를 가지고 있다. 하지만 구간척도는 온도 40도 물에 40도 물을 붓는다고 80도가 되지 않는다. 사칙연산에서 덧셈과 뺄셈이 가능하지만, 곱셈과 나눗셈이 의미를 갖지 않고 불가능하다.
- 문자형 데이터 (질적 데이터) : 명목형 데이터, 순서형 데이터 (서열형 데이터)
- → 명목척도, 서열척도
빅데이터 : 데이터의 크기가 방대하여 기존의 방법으로 획득 (수집), 저장, 관리, 분석이 불가능한 데이터
→ 비정형 데이터 → 분산시스템 (DBMS 보다 유연성있는 처리)으로 처리
※ 분산시스템의 장점 : 서버가 다운이 되어도 데이터가 남아있고, 신속처리가 가능하다.
★ 분산시스템 ?
- 여러 대의 서버가 네트워크를 통해 통신하여 공통의 계산 문제를 푸는 컴퓨터 시스템
- 한 문제를 여러 개의 작업으로 분할
- 각 서버가 작업을 분할하여 할당된 작업을 병렬로 해결하는 방식 (컴퓨터의 분업)
- → 저비용, 고성능, 신뢰성과 확장성
- 예) Cloud Computing (물리적 거리 중요X) : 고속인터넷의 발달로 인한 IT업체들의 분산시스템 대규모화
4차 산업시대 → A (AI), B (Big Data), C (Cloud Computing)
★ 클라우드 컴퓨팅 ?
- 원격지에 존재하는 거대한 분산 시스템, 임대해서 사용
- 물리적 위치가 중요하지 않음
클라우드 컴퓨팅의 확산 원인 ?
- IT 업체들의 분산시스템 대규모화
- 고속 인터넷의 발달
★ '하둡'이란 ?
- 클라우드 컴퓨팅 시대의 빅데이터 ㉮ 처리 기술
- 데이터 위주로 구성된 ㉯ 분산시스템 환경
- → 데이터 저장공간 및 계산 공간 확장이 용이하다.
- 저비용으로 빅데이터 처리가 가능하다.
- 저가의 서버로 분산 시스템 구축이 가능하다.
- 오픈 소스
- 하둡을 생각할 시, 맵리듀스 (MapReduce) 연관 [하둡은 Apply, 맵리듀스는 Combine]
- HBase, RHadoop (R이나 H로 시작하면 하둡과 관련이 있다)
※ 왜 분산시스템 환경에서 빅데이터를 처리를 하냐?
기존의 R은 크기가 작은 데이터들만 처리가 가능했다. (R의 IN-MEMORY 특징 때문)
하둡이란, 하둡 소프트웨어 라이브러리는 간단한 프로그래밍 모델을 사용하여 여러 대의 컴퓨터 클러스터에서 대규모 데이터 세트를 분산처리할 수 있게 해주는 프레임워크이다. 단일 서버에서 수천 대의 머신으로 확장할 수 있도록 설계되어 있다. 일반적으로 하둡 분산처리시스템(HDFS)과 맵리듀스(MapReduce) 프레임워크로 시작되었으나, 여러 데이터 저장, 실행 엔진, 프로그래밍 및 데이터 처리 같은 하둡 생태계 전반을 포함하는 의미로 확장, 발전되고 있다.
참고 사이트 : https://wikidocs.net/22654
[ 하둡의 구성 요소 ]
하둡은 4개의 주요 모듈로 구성된다.
- Hadoop Common
- 하둡의 다른 모듈을 지원하기 위한 공통 컴포넌트 모듈
- Hadoop HDFS
- 분산저장을 처리하기 위한 모듈
- 여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장
- Hadoop YARN
- 병렬처리를 위한 클러스터 자원관리 및 스케줄링 담당
- Hadoop Mapreduce
- 분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈
- Hadoop Ozone
- 하둡을 위한 오브젝트 저장소
- 하둡을 위한 오브젝트 저장소
빅데이터 애널리틱스 (Big Data Analytics)
1. 분석기술
- 텍스트 마이닝, 소셜 네트워크 분석 (사람과 사람 사이의 분석), 데이터 마이닝 (지도학습과 비지도학습)
2. 표현기술
- 시각화, 동적데이터 시각화 (실시간 데이터 시각화)
R을 이용한 애널리틱스
- 오픈소스 : 최신의 분석 알고리즘 무료 제공
- 빅데이터 처리 : 분산 및 비분산 처리가 모두 가능하다.
정리) 생산속도 증가↑ → 효율적인 처리기술(RDBMS) → 데이터 크기 증가↑로 기존 시스템X → 분산시스템
빅메모리와 빅애널리틱스
- R을 이용한 비분산 빅데이터 처리 (R 언어의 한계, 왜 빅메모리와 빅애널리틱스를 사용하는지 이유를 적은 것)
- 비분산 = 분산시스템이 필요한 정도로 크지 않은 빅데이터의 경우, 모든 데이터가 메모리에 들어있어야 한다.
- → 그래서, 데이터의 구조만 메모리에 저장하고 실제 데이터는 필요시 디스크에서 로드를 한다. (R의 확장)
- library (big memory), library (big analytics), temp.big = ( ) 를 부른다.
- R의 확장으로 비분산 데이터 분석이 가능해졌다.
R을 이용한 비분산 빅데이터 처리
- 분산시스템이 필요할 정도로 크지 않은 빅데이터의 경우 모든 데이터가 메모리 안에 들어가 있어야 한다.
- In-Memory : R의 한계 → R의 확장성 필요 (패키지 : big memory, big analytics)
★ 하둡 시스템? (중요, 중간고사에 출제)
- 3대 구성요소 (하둡 공통, 하둡 분산시스템, 하둡 맵리듀스)
- 하둡공통 : 다른 구성요소의 지원, 유틸리티의 모음, HDFS (하둡 분산 파일 시스템) 접근 가능, 하둡을 기동하는 스크립트
- 하둡 분산시스템 : 빅데이터를 다수의 컴퓨터에 분산 저장, 확장성과 신뢰성과 단순성의 특징을 가지고 있음, 맵리듀스를 쉽게 할 수 있는 프로그램이 있음
- 하둡 맵리듀스 (Apply ( ), Combine ( )) : HDFS에 저장된 빅데이터 병렬처리, 빅데이터 분석의 핵심 프로그래밍 모델, HDFS의 위에서 작동, 병렬처리 프로그램을 작성할 수 있는 환경
※ Mapping : 프로그래밍 영역에서 매핑은 키(key) 역할을 하는 데이터와 값(value) 역할을 하는 데이터를 짝 지어(=연결 지어) 저장하는 데이터 구조를 말한다. 키는 저장된 데이터의 구별에, 값은 그 키와 연결되어 저장된 데이터를 뜻한다. 매핑과 유사 개념으로 시퀀스가 있는데, 시퀀스는 저장된 데이터를 가리킬 때 데이터의 저장 순서를 이용하나 매핑은 저장된 데이터를 가리킬 때 키를 이용한다는 차이가 있다. 사용하는 언어에 따라 지칭하는 용어는 다르나, 일반적으로 순서가 중요한 경우에는 시퀀스 형태의 데이터를, 순서가 아닌 다른 유의미한 데이터 식별이 필요한 경우에는 매핑 형태의 데이터를 사용하는 편이다. (출처 : https://namu.wiki/w/%EB%A7%A4%ED%95%91)
▶ 수업필기 : 1대1 함수, 예를 들어 변수 28개를 모아 각각의 값을 적용하는 것을 말한다.
빅데이터 처리의 구현 간소화
- 분산 처리를 위한 작업 분할에 대한 고민 해소 → 데이터 자체와 그 처리에 집중 가능
- 구현 사례 : 대용량 스팸 메일 처리 (자연어 처리), 다중 염기 서열 (DNA) 정렬 (생물 정보), 내용 기반 음악 검색 (음악 데이터), 비디오 트랜스 코딩 (동영상 데이터) = 공통점 : 사칙연산이 되지 않음, 비정형 데이터
하둡의 역사
- 더그 커팅 : 2006년, 너치 (검색엔진, Nutch)의 개발을 주도 → 실용성 있는 검색 엔진 구현에 어려움이 있었음
- → 구글의 분산 파일 시스템에서 영감을 받아 너치 분산 파일 시스템을 제작 및 개발 → 훗날, HDFS가 된다.
- 마이크 카파렐라
[ 추가적으로 ... ]
- 더그 커팅과 하둡 : 2006년 Nutch 프로젝트 + 구글의 분산 파일 시스템 = 너치 분산파일시스템 → HDFS
- 구글의 대용량 데이터 처리 프레임 워크 → 데이터 중심의 분산 계산 환경 → 너치에 도입하니 너치의 10배 데이터 처리 (수억 페이지 상당)
- NDFS (너치 + 구글) + 맵리듀스 → 하둡 (너치에서 독립) , 야후 지원으로 급성장 (60초에 1TB)
맵리듀스
- 구글이 발표한 대용량 데이터처리 프레임워크
- 이것을 너치 프로젝트에 도입 → 데이터 중심의 분산 계산 환경을 만듦
- 너치의 10배 이상 데이터 처리가 되었고 수억 페이지 상당의 데이터 처리가 가능해졌다.
- 구글의 분산 시스템 → NDFS (너치) → HDFS + MapReduce → Hadoop (하둡, 야후가 전폭적으로 지원)
하둡을 이용한 빅데이터 분석
- 빅데이터를 이용한 통계 분석 수요 증가 → 빅데이터 저장 및 처리의 간소화에 따른 자연스런 현상
- 하둡 기반의 기계학습 라이브러리 (Mahout, 머하웃 : 코끼리를 부리는 사람)
- : 군집분석, 분류, 협업적 필터링 구현 (데이터 마이닝의 알고리즘들)
- → 작업의 유연성이 떨어짐 → 그래서 R언어를 이용한 분석이 이루어짐 (이 때문에, R이 개발됨)
하둡의 생태계
- 빅데이터 처리와 기업 운용 수준의 안정성으로 각광을 받고 있다.
- 쉬운 설치
- 향상된 성능의 코드로 프로젝트에 기여
- 선순환 구조 : 하둡의 생태계 형성
- 하둡을 사용한 회사 : 클라우데라, 호튼워크, 맵알 등 기술기업 탄생
※ 분석을 하는 최종 목표는 "예측" , Y(종속변수) = aX + b 에서의 Y를 해석하기 위해 분석을 하는 것이다!
'빅데이터 분석 > 수업 필기' 카테고리의 다른 글
빅데이터분석 필기 (6) (0) | 2024.04.21 |
---|---|
빅데이터분석 필기 (5) (0) | 2024.04.21 |
빅데이터분석 필기 (4) (0) | 2024.04.21 |
빅데이터 분석 필기 (3) (0) | 2024.04.21 |
빅데이터 분석 필기(1) (0) | 2024.03.05 |