본문 바로가기

EDU

14차시. 빅데이터 수집 기술 기획하기

차시목표
1. 빅데이터 분석에 필요한 데이터에 대한 수집 경로 및 데이터 유형을 파악한다
2. 데이터 수집 경로 및 데이터 유형을 고려하여 데이터 수집 방법을 선택할 수 있다.
3. 일괄 처리 및 실시간 데이터 처리 요건에 따라 수집 처리 방식을 선택할 수 있다.
4. 수집한 데이터에 대한 유효성을 검사할 수 있는 검증 방안을 선택할 수 있다.
주요내용
1. 데이터 수집 기술 학습하기
2. 데이터 포맷 학습하기
3. 시스템 유형의 정의 학습하기
4. 수집 대상 데이터 유형의 식별

 

■ 빅데이터 수집 기술 기획하기

 

1. 데이터 수집 기술

- 수집하고자 하는 데이터의 위치, 데이터의 유형, 접근 경로 등을 고려하여 적정한 데이터 수집 기술을 적용합니다. 

 

● 크롤링(Crawling) 

- 웹(WWW) URL에 존재하는 HTML 문서에 접근하여 해당 내용을 추출합니다. 

문서에 포함된 하이퍼링크(hyperlink)를 통해 재귀적으로 다른 문서에 접근하여 콘텐츠 수집을 반복하는 기술입니다. 

● EAI

- 기업에서 운영하는 이기종 간의 애플리케이션은 네트워크 프로토콜, DB, 운영 체제와 같은 소프트웨어가 있습니다.

이들 소프트 웨어와 관계없이 프로세스 차원에서 통합하는 솔루션, 전사 시스템, 서버 시스템, 컴포넌트 모듈 등의 다양한 소스 기반이 통합 지원됩니다. 

● ESB(Enterprise Service Bus)

- 버스(분산 구조) 형태의 느슨한 결합을 이용한 서비스 중심의 시스템 연계 방식이며, EAI에 표준 인터페이스와 SOA 사상을 접목한 형태입니다. 

서비스 중심의 프로세스를 통합하며, Web 서비스, XML 등의 표준기술을 채용하여 이기종 시스템에 대한 표준 통합 환경을 제공합니다. 

멀티 프로토콜을 지원하며 재사용이 가능한 컴포넌트를 조립하는 방식으로 구현합니.

● CEP(Complex Event Processing)

- 복합 이벤트 프로세싱은 실시간으로 생성되는 다수의 원천 데이터로부터 발생한 이벤트를 대상으로 의미 있는 데이터를 실시간으로 추출하고 처리하는 기술입니다. 

● FTP(File Transfer Protocol)

파일 전송 프로토콜(FTP)은 TCP/IP 프로토콜 기반의 서비스이며, 서버와 클라이언트 간의 파일을 전송하기 위한 프로토콜입니다. 

 

2. 데이터 포맷

- 수집 대상 데이터의 유형은 크게 정형, 비정형, 반정형 데이터로 구분할 수 있습니다. 

 

● 정형 데이터(Structured Data) 

- 관계형 DBMS의 테이블이나 엑셀(XLS) 파일과 같이 사전에 정의된 고정 칼럼에 저장되는 데이터나 행과 열에 의해 데이터의 속성과 값이 정의된 데이터를 의미합니다. 

데이터의 값뿐만 아니라 데이터의 속성을 정의한 스키마(Schema) 정보도 별도로 정의되어 있는 것이 일반적입니다. 

 

① RDBMS 테이블
- 관계형 데이터베이스의 테이블은 행(ROW)과 열(COLUMN)로 구성된 대표적인 정형 데이터입니다. 추출 및 가공이 쉬우며, 표준을 따르고 있는 DBMS의 경우에는 조인이나 합병 등의 데이터 병합을 통한 결과를 출력할 수 있습니다. 

 

● 비정형 데이터(Unstructured Data)

- 데이터의 구조가 정의되지 않은 상태로 존재하는 데이터를 의미합니다. 자연어데이터, 동영상이나 이미지와 같은 멀티미디어 데이터 등이 비정형 데이터에 해당합니다. 인터넷 웹에 존재하는 데이터의 경우에는 HTML 마크업 정보나 일부 속성 정보를 통해 반정형 데이터로 간주할 수도 있습니다. 

 

● 반정형 데이터(Semi-structured Data)

- RDBMS의 테이블이나 엑셀 파일처럼 데이터의 구조가 명확하게 구분되어 있지는 않지만, 데이터의 내부에 데이터의 속성을 기술 기술한 메타데이터를 가지고 있습니다. 

데이터의 구조와 값이 함께 저장되어 있는 경우가 일반적입니다.

웹 환경에서 데이터 교환에 사용되는 XML이나 JSON 파일이 대표적인 반정형 데이터입니다. 

① XML(Extensible Markup Language) 

- XML은 W3C 표준의 다목적 마크업 언어입니다. 

SGML의 일종으로 데이터를 기술하는 데 사용할 수 있습니다. 

XML은 이기종 시스템 간의 데이터를 손쉽게 교환하기 위해 고안되었습니다. 

또 데이터의 구조와 값을 함께 기술합니다. 

XML을 기반으로 한 데이터 표준은 RDF, RSS, 아톰(Atom), XHTML, SVG 등이 있습니다. 

 

② 제이슨(JSON: JavaScript Object Notation) 

- 제이슨은 키-값(Key–Value)으로 이루어진 데이터 오브젝트를 교환하기 위한 개방형 표준 포맷이다. 

- 브라우저 비동기 통신(AJAX)에 주로 사용되며, XML을 대체하는 주요 데이터 포맷이다. 

- 데이터의 유형에 큰 제한이 없으며, 경량의 통신에 적합하다.

 

3. 시스템 유형의 정의

● 빅데이터 분석을 위한 수집 대상 시스템 및 데이터 유형의 정의 먼저, 수집 대상 시스템을 식별합니다.

수집하고자 하는 대상 데이터의 위치에 따라 내부 또는 외부의 데이터로 나눌 수 있습니다.

내부 데이터는 주로 조직내부 시스템이나 DBMS, 로그(Log) 파일 등에서 수집할 수 있습니다. 

EAI 등 내부 연계 시스템을 사용하는 것이 일반적입니다. 

외부 시스템에서 데이터를 수집하고자 하는 경우에는 웹 크롤러, 오픈 API 서비스, FTP 등을 사용할 수 있습니다. 

 

① 내부 데이터 수집 방안의 정의
● DBMS 데이터 수집 방안의 정의
- 내부에 위치한 데이터베이스 서버로부터 데이터를 수집하는 경우에는 데이터 베이스 링크를 이용하여 DBMS 간의 직접 연결을 통해 데이터를 수집하거나, 테이블 정보를 보냅니다. 

이를 통해 파일을 생성하고 해당 파일로부터 데이터를 수집하는 방법을 이용할 수 있습니다. 

● 스쿱(Sqoop) 적용의 검토
- 스쿱은 ‘SQL to Hadoop’의 약자이며, 관계형 데이터베이스(RDBMS)의 데이터를 하둡으로 전송할 수 있도록 설계된 오픈소스 소프트웨어입니다. 

CLI(Command Line Interface)를 통해 오라클이나 마리아 데이터베이스 (MariaDB)와 같은 RDBMS의 데이터를 HDFS로 쉽게 옮길 수 있습니다. 

또 반대로 HDFS의 데이터를 RDBMS로 전송하는 것도 가능합니다. 

하이브(Hive), 피그(Pig), H 베이스(HBase)에서 바로 데이터 확인이 가능하며, 특정 조건의 데이터만을 별도로 추출할 수도 있습니다. 

 

② 외부 데이터 수집 방안의 수립
● 웹 콘텐츠 정보 수집 방안의 검토
- SNS, 홈페이지, 뉴스 사이트 등의 인터넷 웹 콘텐츠를 수집하기 위해서는 다음 두 가지 수집 방식을 사용할 수 있습니다. 

• 직접 수집 방안을 고려하기: 사용자의 다양한 요구에 대한 신속한 대응이 가능하며 웹(Web) 데이터의 수집과 관련 업무에 대한 부담을 최소화하는 장점이 있습니다. 

다만, 구축과 운영을 위한 비용이 상대적으로 높게 소요되며 운영을 위한 업무 및 인력이 별도로 구성되어야 한다는 부담이 있습니다. 

고성능 인프라를 구성하지 못하는 경우에는 데이터의 품질과 수집 속도가 저하될 수 있습니다. 

• 위탁 수집 방안을 고려하기: 구축과 운영을 위한 소요 비용이 상대적으로 낮으며, 전문 기업의 고성능 인프라를 활용한다면 수집 데이터의 품질 확보 및 신속한 수집이 가능합니다. 

전문 기업의 역량에 따라 수집 데이터의 품질이 좌우되므로 업체의 선정을 신중하게 검토해야 합니다. 

데이터 수집 업무에서 해당 기업에 지나치게 의존적인 형태가 되는 것을 주의해야 합니다. 

 

● 오픈 API를 통한 정보 수집 방안의 검토

- HTTP 프로토콜을 기반으로 URL 형태로 데이터의 요청 및 응답을 통해 데이터를 교환하는 방식을 의미합니다. 

일반적으로 웹 서비스에서는 REST, SOAP 방식으로 제공하고 있으므로 수집하고자 하는 시스템의 제공 방식을 확인할 필요가 있습니다. 

• REST 또는 SOAP의 적용 방안을 고려합니다. 

각각 SOAP(Simple Object Access Protocol), REST(Representational State Transfer)를 의미하며, OPEN-API 서비스를 이용하기 위한 규약입니다.

• XML-RPC(Remote Procedure Call) 적용 방안을 검토합니다. 

XML-RPC는 분산 컴퓨터 환경에서 이기종의 컴퓨터 자원을 사용하는 기술입니다. 

• 공공데이터 포털의 활용 방안을 검토합니다. 

공공기관에서 제공하는 개방·공유 공공데이터는 공공데이터 포털(www.data.go.kr)에서 오픈 API를 이용하여수집할 수 있습니다. 카테고리별 데이터를 제공하고 있으므로 공공 영역의 데이터가 필요한 경우에 활용 할 수 있습니다

 

4. 수집 대상 데이터 유형의 식별

- 데이터 수집 대상의 시스템이 식별되었으면 수집하고자 하는 데이터의 유형을 확인해야 합니다.

엑셀(XLS) 파일과 같은 정형 데이터, 멀티미디어 콘텐츠와 같은 비정형 데이터, XML이나 제이슨(JSON) 형태의 반정형 데이터 등 데이터 유형에 따라 데이터 수집 방식이 달라질 수 있습니다. 

 

가. 정형 데이터 수집 방안의 검토
① JDBC(Java Database Connectivity)를 이용한 DBMS 데이터의 수집 방안을 검토합니다.

자바(JAVA)에서 데이터베이스에 접속 할 수 있도록 구현된 인터페이스입니다. 

JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 표준화된 방법을 제공합니다. 

② 아파치(Apache) POI를 이용한 XLS 파일 데이터의 수집 방안을 검토합니다.

아파치 소프트웨어 재단에서 제공하는 라이브러리로서 마이크로소프트 오피스 파일 포맷을 자바에서 핸들링할 수 있도록 기능을 제공합니다. 

워드, 엑셀, 파워포인트와 파일을 지원하며, 오픈 XML 파일 포맷 표준 파일도 제어가 가능합니다. 

 

● 비정형 데이터 수집 방안의 정의
- 동영상, 이미지, 음원 파일 등의 멀티미디어 콘텐츠는 대표적인 비정형 데이터 입니다.

비정형 데이터를 수집할 때에는 FTP, 웹 크롤러 등의 도구를 이용하여 바이너리 파일 형태로 수집할 수 있습니다. 

문서 파일이나 웹 페이지 콘텐츠의 경우에는 파일 형태가 아니라 내용만을 따로 수집하는 경우도 있습니다. 

일반적으로 수집이 가능한 비정형 데이터는 다음과 같이 구분할 수 있습니다. 

 

● 반정형 데이터 수집 방안의 고려
- 반정형 데이터의 경우에는 정형 데이터처럼 데이터의 구조와 형식이 엄격하게 정의되어 있지 않습니다.

하지만 문서 자체에 데이터의 구조를 정의하고 있으므로 데이터의 구조를 파악한 뒤에 데이터 구조의 규칙에 따라 데이터를 수집 합니다.

반정형 데이터의 대표적인 유형인 XML의 경우에는 데이터의 구조를 정의하는 데에 DTD와 XML 스키마(XSD)를 사용합니다. 

① DTD(Document Type Definition)를 이용한 데이터 구조의 정의 방안을고려합니다.

DTD는 SGML 문법을 준수하며, 네임 스페이스를 지원하지 않습니다. 

② XSD(XML Schema Definition)를 이용한 데이터 구조의 정의 방안을 고려합니다. 

DTD와 달리 XML 문법을 준수하며, 네임 스페이스, 다양한 데이터 속성(bool, 숫자, 실수, 시간, 날짜 등), 자식 요소(child element)에 대한 구조의 정의를 지원합니다.

 

데이터 수집 대상의 시스템이 식별되었으면 수집하고자 하는 데이터의 유형을 확인해야 한다. O
[해설]
데이터 수집 대상의 시스템이 식별되었으면 수집하고자 하는 데이터의 유형을 확인해야 합니다.
엑셀(XLS) 파일과 같은 정형 데이터, 멀티미디어 콘텐츠와 같은 비정형 데이터, XML이나 제이슨(JSON) 형태의 반정형 데이터 등 데이터 유형에 따라 데이터 수집 방식이 달라질 수 있습니다.
관계형 데이터베이스의 테이블은 행(ROW)과 열(COLUMN)로 구성된 대표적인 비정형 데이터이다. X
[해설]
관계형 데이터베이스의 테이블은 행(ROW)과 열(COLUMN)로 구성된 대표적인 정형 데이터입니다.
추출 및 가공이 쉬우며, 표준을 따르고 있는 DBMS의 경우에는 조인이나 합병 등의 데이터 병합을 통한 결과를 출력할 수 있습니다.
XML은 W3C 표준의 다목적 마크업 언어이다. O
[해설]
XML은 W3C 표준의 다목적 마크업 언어입니다. SGML의 일종으로 데이터를 기술하는 데 사용할 수 있습니다. XML은 이기종 시스템 간의 데이터를 손쉽게 교환하기 위해 고안되었습니다.
또 데이터의 구조와 값을 함께 기술합니다.
XML을 기반으로 한 데이터 표준은 RDF, RSS, 아톰(Atom), XHTML, SVG 등이 있습니다.