728x90
반응형
SMALL

빅데이터 분석을 위해서는 다양한 소스의 데이터를 수집, 저장, 분석, 표현, 활용할 수 있는
데이터 통합 아키텍처가 요구된다.
빅데이터 분석 플랫폼에서는 기존 데이터베이스에서 처리하고 있는 정형 데이터 보다는
처리가 불가능한 SNS 데이터같은 반정형, 비정형 데이터가 더 중요한 가치를 가지고 있기
때문에 이러한 Data Type을 저장,분석할수 있는 데이터 아키텍처가 필요로 한다.
 

빅데이터 분석을 위한 데이터 통합 아키텍처의 특징

1. 분석 관점 Bigdata Life Cycle 기반 아키텍처 소스-수집-저장-분석-표현의 모든
과정을 지원해야 함
2. 데이터 관점 Data Type의 다양성 지원 정형,비정형,반정형 등 다양한 Type의 데이터를 처리할 수 있어야 함
3. 인프라 구조관점 Scale-Out 구조 MPP (Massive Parallel Process) 방식의 분산 데이터 처리 가능 구조
- 확장성


빅데이터 분석 플랫폼의 통합 아키텍처 구성도

빅데이터 분석 플랫폼에 필요한 데이터 아키텍처 



빅데이터 분석 플랫폼의  핵심 기술

구분 기술요소 기술설명
원본 데이터 저장 대용량 분산 파일 저장
로그 기반 데이터 포함
Hadoop File System
MapReduce
구조적 데이터 저장 대용량 분산 데이터 저장소 NoSQL, HBase
Cassandra , MongoDB
데이터 마이닝 빅데이터 패턴 분석 및 고객 분석을 위한
알고리즘
군집화, 분류화
기계학습
데이터 분석 알고리즘 데이터 분석을 위한 세부기술 Clique 분석
Centrality  분석

 

Clique 분석

Clique cohesion 분석이란 네트워크(network)를 구성하는 점(node)들간의 결합력(Cohesion)을
바탕으로 해서 군집 구조를 파악하는 분석기법으로. 결합력(Cohesion)은 social network를
구성하는 점(node)들간의 강한(strong) 연결관계를 나타냅니다. Clique은 결합력을 가지는
최소 3개의 점(node)으로 구성되는 그룹(group)을 나타내며 모든 점(node)이 직접적으로
연결되어 있어야만 Clique이 성립됨. 그러므로 Clique은 정의상 완벽한 연관관계와 높은 밀도를
가지게 된다.

왼쪽에는 4개의 빨간색 노드로 이루어진 Clique 하나를 볼수 있다.
오른쪽 5개의 파란색 노도로 이루어진 Clique 하나를 볼수 있다.
Clique는 이 처럼 노드들이 서로 완벽하게 연결되어 있는 것을 말한다.


Centrality 분석

Centrality 란 '중심도' 라고 번역할 수 있는데 어떤 네트워크가 구성되었을 때 이 네트워크에서
가장 중요한 노드를 찾기 위한 일종의 metric 기법이라고 할수 있다.
Centrality분석(사회연결망분석) 은 한 Node가 네트워크에서 얼마나 중심에 위치하는지에 대한
정도를 측정하는 방법이다.다시말해 Node가 특정 Measure에 의해 가질 수 있는 Maxinum값과
현재 네트워크상에서가지는 값의 비율에 대한 분석을 뜻한다. 

1) degree Centrality - 노드별로 직접 연결된 edge의 weight 만을 고려한다. 즉 해당 노드가
                             직접 가진 영향력의 크기는 얼마인가를 측정하는 것을 말함.
2) closeness Centrality - 네트워크의 모든 노드로부터 얼마나 가깝게 위치해있는지를 고려하여
                                centrality를 계산한다.
3) betweenness centrality - 네트워크의 모든 노드 쌍 간의 shortest path가 해당 노드를 지나는지를
                                     고려한 centrality이다.

[출처] 11회 정보관리기술사 기출문제풀이집 (117회 정보관리기술사 모임 - 어울림)

728x90
반응형
LIST
728x90
반응형
SMALL

요즘 ICT쪽의 여러가지 화두 중 하나는 데이터 분석, 특히 빅데이터(Big data) 분석이라고 할수 있다.
전통적인 DBMS 를 기반으로 하는 데이터 분석은 데이터의 양이 어마어마 하게 커지고 비정형 데이터
의 중요성이 더 커지면서 한계점에 다다르게 되었다. 
그래서 요즘은  하둡(Hadoop) 이라는 분산데이터저장구조를 기반으로 해서 빅데이터를 분산 저장한 후
이 데이터를 R 이나 Python 등의 Language로 데이터의 통계 분석 및 시각화 작업을 많이 하고 있다.
그럼 R 과 파이썬(Python) 의 차이점 은 머고 장단점은 무엇일까? 어느것이 우리 회사에 맞는 Languge
인지 판단에 조금이라도 도움이 되고자 두 언어를 비교해보고자 한다.

오프소스 분석 도구 R 

R은 통계처리를 위한 공개소프트웨어 패키지로 최근 가장 주목받는 빅데이터 분석 도구이다.
R은 기존 통계 소프트웨어인 S를 바탕으로 만들어졌으며, 자바(Java), C, C++, 파이썬(Python) 등
다른 프로그램 언어와도 쉽게 연동할 수 있으며, windows, Linux, Unix, Mac OS 등 대부분의 개발환경
을 지원한다. 또한 하둡(Hadoop) 분산처리환경을 지원하는 Library 를 제공하기 때문에 구굴, 페이스북
,아마존 등도 빅데이터 분석에 R 을 활용하고 있다. 
R은 연구목적의 업무에 최적화되어 있지만 웬만한 종류의 데이터 분석에도 매우 용이하다. 왜냐면
R은 방대한 양의 Package 와 즉시 사용가능한 테스트 SET 을 제공하기 때문이다. 이 점의 R의 최대 강점
이다. 또한 전세계의 Mail List , Over Flow (네이버 지식인 처럼 묻고 답할 수 있는 커뮤니티) 와 같은
그룹의 도움을 언제든지 받을 수 있는 점 또한 강점이다. (오픈소스 이기 때문..)

파이썬(Python)

1991년 프로그래머인 귀도 반 로섬 이 발표한 고급 프로그램밍 언어로 플랫폼 독립적이며, 인터프리터식
객체지향적, 동적 타이핑(dynamic typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디
<Monty Python's Flying Circus> 에서 따온 것이다. 파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하
는 개방형, 공동체 기반 개발 모델을 가지고 있다. C언어로 구현된 C파이썬이 사실상의 표준이다.
파이썬은 주로 데이터 분석 결과를 다른 웹 애플리케이션에 접목하거나 통계적인 코드를 데이터베이스에
포한시켜야 할 때 사용한다. 필요한 패키지나 라이브러리를 불러오고 조합하여 분석 목적에 맞는 작업을
수행할 수 있다. 또한 직관적인 프로그래밍 언어로 초보자도 쉽게 배울 수 있다는 강점이 있다.
물론 R의 비해 초기 발전단계이자만 최근 몇년 상이 각광을 받으며 많이 발전하고 있다. 

R의 장점

장점 설명
1. 데이터 시각화 시각화된 데이터는 Raw 데이터 보다 훨씬 효과적으로 그 의도를 전달할
수 있으며, R을 처음 만든 목적 자체가 '데이터 분석. 통계학 그리고 시각화
를 하기 위해 좋은 방버을 만들어 보자' 라는 데에서 출발했다.
그 만큼 R은 강력한 데이터 시각화 기능을 가지고 있다.
2. 생테계 R은 정말 풍부하고 다양한 Package와 활발한 Community를 가지고 있다는 것이 큰 강점이다. 말 그래도 'R의 생태계' 를 이루고 있다고 할수 있다.
R함수와 데이터들의 모음인 패키지(Package) , 이를 통해 언제나 쉽게
최근의 테크닉과 기능에 접근이 가능하다.  자료 찾느라고 구글링을 밤새
할필요가 없다.
3. 데이터 사이언스의 통용어 R은 원래 통계학자들에 의해 통계학을 위해 개발되었기 때문에 통계적인
개념이 잘 녹여 있기 때문에 R을 습득하면 데이터 사이언스를 시작하기

 
R의 단점

단점 설명
1. 느린 속도 R은 통계학자들이 좀 더 쉽게 연구하려고 만든 언어이기 때문에
아무래도 컴퓨터를 효율적으로 활용하는 방법은 그리 깊게 고민하지
않았다. 그래서 R은 읽기 어려운 코드 때문에 좀 느릴 수 있다.
하지만 요즘 그런 단점을 상쇄해줄 수 있는 pqR, renjin, FastR, Riposte
등의 패키지가 개발되어 있다.
2. 어렵다 R은 아무래도 고급언어보다는 기계어적인 언어에 가깝다고 볼수 있기
때문에 배우기가 좀 어렵다. 풍부한 패키지 사용에 익숙해지려면 상당한
시간이 걸릴 수 있다.. 어쩔수 없이 꾸준한 학습이 필요한 언어이다


파이썬의 장점

장점 설명
1.lPython Notebook

보통 Languge 들은 통합개발환경(IDE)를 갖고 있다. 예를 들어 Visual Studio 라던가 eclipse 등이 있다. 
파이썬의 IDE가 바로 lPython Notebook 이다 이 환경은 파이썬을 가지고 있는 데이터 작업을 훨씬 쉽게 만들어 준다. 따로 부가적인 설치도 필요없이 동료들과 메모와 작업을 공유할수 있으며 이를 통해 코드, 결과물, 메모파일들을 정리하는데 필요한 비용을 획기적으로 줄여줄 수 있다.
파이썬의 Libaray 중 하나인 lPython은 대화형 방식으로 Python 의 
웹기반 Notebook을 지원하고 있다. 현재는 (Julia + Python + R)을 
합쳐서 Jupyter Notebook 으로 발전했다.
2. 특정 주제나 용도에 국한되지
  않은 배우기 쉬운 언어
파이썬은 특정 분야를 위한 언어가 아니라 비교적 쉽고, 직관적인
UI를 가지고 있다. 따라서 데이터 사이언스 말고도 다양한 분아에
적용이 가능하다.
3. 다양한 용도의 언어 파이썬은 다양한 백그라운드의 사람들이 모두 사용할수 있는 언어이다 . 이해하기 쉬운 언어이기 때문에 통계 백 그라운드를 가진 사람들도 배울수 있다. 


파이썬의 단점

단점 설명
1. 시각화 기능이 아쉽다. R의 최대 장점이었던 시각화 기능이 파이썬에서는 가장 큰 단점이기도 한다. 시각화는 데이터 분석의 효율성을 높이는 데 중요한 요소이지만 파이썬은 R에 비해 시각화 기능이 떨어져 있다. 
2. 파이썬은 도전자이다. 데이터 분석 툴에 있어서 R이 파이썬보다 선구자적인 위치에 있다.
파이썬은 후발주자라고 할수 있다. 그래서 R의 수백개 Package 에 
비해 파이썬은 아직은 많이 부족하다고 할수 있다. 파이썬이 최근 각광을 받고 있지만은 R의 방대한 Package 를 포기하고 파이썬으로 갈아탈지는 아직은 미지수이다. 
728x90
반응형
LIST

'디지털서비스' 카테고리의 다른 글

LBS (Location Based Service) 측위 기술  (0) 2019.10.16
디지털 트윈 (Digital Twin)  (0) 2019.10.10
머클트리(Merkle Tree)  (0) 2019.09.19
Data Lake - 데이터 단일 저장소  (0) 2019.09.09
망중립성 (Network Neutrality)  (0) 2019.09.08
728x90
반응형
SMALL

▶ Data Lake의 탄생 배경 - DW의 한계

거의 모든 기업은 정보시스템을 구축해서 사용하고 있으며 이 정보시스템을 통해 많은
데이터가 생성되고,저장되고,가공되고,분석되고,보고되어 지고 있다. 
이 단계중에서 데이터를 분석하는 부분의 기업의 의사결정에 중요한 기준자료가 되기
때문에 많은 기업들이 이 데이터를 분석하기 위한 솔루션 구축에 많은 투자를 하고 있고
대표적으로 DW (Data Warehouse) 를 많이 사용하고 있다.
DW는 기업의 정보시스템(기간계,지원계,채널계..)으로 부터 생성된 데이터 중 분석가치가
있는 데이터를 주제별로 분류해서 ETL을 통해서 수집하고 이 데이터를 정형화해서
데이터 마트(Data Mart)에 쌓아 놓은 후 각종 분석 View Tool (OLAP,SQL)을 이용해서
정형화되고 시각화된 데이터를 (Dashboard 같은) 의사결정자에게 제공을 하고 있다.
하지만 DW를 사용해보신 분은 느끼시겠지만 DW를 사용하기 위해서는 다양한 데이터를 
그대로 사용하지 못하고 데이터 마트(Data Mart) 라는 규격화된 그릇에 담을 수 있도록
데이터를 가공,편집하는 정형화 작업이 선행되어야 한다. 이 작업이 만만치 않은 작업이다.
또한 먼가 새로운 항목을 추가하는 등 모델을 변경하는 것은 상당한 어려운 작업이 된다.
그리고 제일 DW의 약점이라고 하면 바로 비정형 데이터를 처리할 수 없다는 것이다.
요즘 정보의 형태는 과거 정형적인 데이터에서 비정형 데이터 즉 SNS, 블로그 포스팅, 제품리뷰
,스트리밍, 디바이스 로그 등 과 같은 형태의 데이터가 더 가치를 가진 정보로 각광받고 있는 시대로 변하고
있다.  DW에서는 이러한 비정형 데이터를 처리하는 데 한계가 있다.

이러한 DW의 정보분석의 한계를 극복하고자 나온 것이 바로 "Data Lake" 이다.

 Data Lake의 정의 - 잔잔한 호수

Data Lake는 다양한 원천 데이터를 통합된 단일 형식으로 만들어서 저장하는(Schema-on-write)
DW와는 다르게 원천 데이터를 그대로 원래 형식으로 저장을 하고 나중에 읽을 때 (Schema-on-read)
쉽게 분석할 수 있도록 하는 대규모 저장소의 개념이다 . 
이 Data Lake 개념을 처음 제안한 사람은 데이비드 바틀렛 이라는 GE 직원이었는데 그는 평소
생물학에 관심이 있어 호수(Lake) 를 보면 잔잔해 보이지만 수면 밑으로는 여러 다양한 생물들과
그들의 상호작용으로 생태계가 유지된다는 측면에서 Data Lake 라는 용어를 사용했다고 한다.
낚시에 비유해 보면 DW는 규격화 되어 있는 양식장에서 양식 광어를 낚는 방식이고, Data Lake
호수에서 바로 물고기를 낚는 거라고 할 수 있다.

 Data Lake의 처리방식

Data Lake 에서는 비정형데이터 , 즉 SNS나 로그 같은 데이터를 독립적으로 나누고 다시 취합하는
기법을 사용하는데 보통 이때 사용하는 기술로  하둡(Hadoop) 과 같은 맵리듀스(Map Reduce)  방식의
분산처리기법이다.  독립적으로 나눈 데이터를 하둡분산파일시스템(HDFS)을 통해 분산 서버에
저장하고 , 맵리듀스를 통해 각각의 분산서버에서 병렬처리한다.

 Data Lake 의 구성도

<출처 : 181회 정보관리기술사 모임 : 두드림>

구성요소 세부설명 요소기술
Data Source (생성) 정형/비정형/반정형 Raw  Data  
Ingestion Layer (수집) Raw Data를 웹서버,파일서버,IoT 이용한
스토리지 수집
Database, WebServer,FTP
IoT, Storage
Caching Layer (저장) 수집된 데이터를 저장 SQL, NoSQL, Elastic Search
Processing Layer (처리) 알고리즘 수행, 요구사항 전처리  HDFS
Insight Layer (통찰,활용) 시스템 모니터링, BI, 평가 Data Discovery, Data Dashboard

                                  <출처 : 181회 정보관리기술사 동기화 : 두드림 >

▶ Data Lake  의 장점

1) 데이터의 구조화여부에 상관없이 활용할 수 있다. 
2) 원시 Raw Data를 저장할 수 있으며 이 데이터는 작업자의 이해와 Insight Improves (통찰력) 에 의해
    재정의 될 수 있다.
3) 물리적으로 분산되어 저장되어 있는 대용량의 Raw Data 를 분석할 수 있다.
4) 유지보수 비용이 적게 든다

▶ Data Lake 와 DW 의 비교

구분 DW (Data Warehouse) Date Lake
스키마 Schema-on-write
저장시에 규격에 맞게 저장하는 방식
Schema-on-read
저장은 Raw Data 를 그대로 저장하고
읽을 때 분석하는 방식
접근방법 표준화된 SQL이나 BI 를 통해 접근 SQL, 개발된 프로그램, 빅데이터 분석 Tool 등을 통해서 접근
데이터 Cleansed Raw and refined 
데이터 복잡성 복잡한 통합 (Complex Integration) 복잡한 처리 (Complex Processing)
비용 높다 낮다
데이터 유형 정형, 구조적 데이터  정형, 비정형, 반정형

 

728x90
반응형
LIST

+ Recent posts