데이터 유형별 데이터 수집 기술의 종류
본문 바로가기
BIG DATA

데이터 유형별 데이터 수집 기술의 종류

by 보고톡톡 2022. 6. 6.
반응형

데이터의 유형별로 데이터 수집 기술과 방법, 기술을 달리 적용한다. 데이터 유형을 정형 데이터, 반정형 데이터, 비정형 데이터로 구분하는데, 각 유형별로 주로 적용되는 데이터 수집 기술과 방법은 다음과 같다.

 

데이터의 유형별 수집 기술과 방법 종류

 

정형 데이터를 수집하는 기술은 대표적으로 Sqoop과 Hiho를 예로 들 수 있다.

 

· Sqoop(스쿱)은 대용량 데이터 전송 솔루션으로 HDFS, RDBMS, DW, NoSQL 등과 같은 다양한 저장소에 대용량 데이터를 전송할 수 있다. 일반적으로 관계형 데이터와 분산 환경 시스템 간에 전송되는 정형 데이터를 수집할 경우 이를 사용한다.

· Hiho(히호) 역시 대용량 데이터 전송 솔루션으로 Hadoop(하둡)에서 데이터를 가져오기 위한 SQL을 지정할 수 있는데, 오라클과 MySQL 데이터 전송만 지원한다.

 

반정형 데이터인 로그·센서 데이터를 수집하기 위한 로그 파일 수집기에는 Apache Flume, Scribe, Chukwa가 있다. 대용량, 고속의 로그를 수집하는 시스템은 확장성, 안정성, 유연성, 실시간성의 조건을 만족해야 한다.

 

· Apache Flume(아파치 플룸)은 대용량 로그 데이터를 효율적으로 수집 가능한 솔루션이다.

· Scribe(스크라이브)는 페이스북이 개발해서 오픈소스화한 로그 수집기인데, 실시간 스트리밍 로그 수집을 위한 솔루션이다.

· Chukwa(추콰)는 분산 환경에서 생성된 데이터를 HDFS(Hadoop Distributed File System, 하둡 분산 파일 시스템)에 안정적으로 저장하는 플랫폼으로 분산 서버에서 에이전트를 실행하고 콜렉터가 에이전트로부터 데이터를 받아 HDFS에 저장한다.

· 반정형 로그 데이터의 경우 이와 같은 Log Collector(로그 컬렉터)를 이용해서 데이터를 수집하는데, 이는 조직 내부에 존재하는 트랜잭션, 클릭, 웹서버, 데이터베이스 로그 데이터 등을 수집하는 방법이다.

 

데이터의 유형별 데이터 수집 기술과 방법 알아보기 편

 

텍스트, 이미지, 동영상, 웹 소셜 데이터 수집과 같은 비정형 또는 반정형 데이터의 수집은 Crawling, Open API, FTP, RSS 등을 사용해서 수집한다.

 

· Crawling(크롤링) : 외부 데이터의 HTTP 수집 방법, SNS·뉴스·웹 문서 정보 수집 시 사용

· Open API : 웹을 운영하는 주체가 정보·데이터를 제공하기 위해 개발자와 사용자에게 공개하는 수집 기술

· FTP(File Transfer Protocol) : 인터넷 서버로부터 각종 파일 송수신

· RSS : XML 기반 콘텐츠 배급 프로토콜을 이용한 콘텐츠 수집

· Streaming : 인터넷 음성, 오디오, 비디오 데이터를 실시간 수집

· Log Aggregator : 웹서버 로그, 웹 로그, 트랜잭션 로그, DB 로그 등 각종 로그 데이터 수집(Flume, Scribe, Chukwa, ..)

 

웹 데이터 수집에 사용되는 데이터 수집 방법 종류와 특징

 

비정형 데이터 중 웹자료 수집에는 크롤링(Crawling)이나 스크래핑(Scraping)이 활용된다.

 

· Web Crawling(웹 크롤링)은 자동화 bot인 웹 크롤러가 정해진 규칙에 따라 복수의 웹페이지를 브라우징 하는 것이다.

· Web Scraping(웹 스크래핑)은 웹사이트의 원하는 부분에 위치한 정보를 컴퓨터로 자동 추출해서 수집하는 기술이다.

· 최근 웹, 소셜 데이터의 경우 이 크롤링 기법을 이용해 자동으로 데이터를 수집하는데, 웹 크롤러의 경우 웹사이트 링크 체크, HTML Code 검증, 웹사이트 자동 유지관리 및 이메일 자동수집 등의 기능을 수행한다. 

· 대표적으로 웹상에서 HTML, XML, JSON 형태로 존재하는 데이터를 수집하는 방법과 특징은 상기 이미지(표)를 참고.

 

웹페이지로부터 데이터를 수집하기 위해 Python, Ruby와 같은 스크립트 언어를 사용하기도 한다. 

 

· Python(파이썬)은 추상화가 높은 고급언어로, 객체 개념 사용, 스크립트 작성에 용이한 플랫폼이 독립적인 인터프리터 언어이다. 다른 언어나 라이브러리에 쉽게 접근할 수 있는 높은 확장성을 가진다. C 등 다른 언어에서 Python을 호출하거나 그 반대도 가능하다.

· Ruby(루비)는 동적 객체 지향 스크립트 프로그래밍 언어이다.

반응형

댓글2