단순한 소통 미디어였던 소셜미디어가 최근에는 트위터페이스북을 중심으로 활성화되면서 각 개개인의 목소리가 모여서 커다란 목소리를 내는 발언대로 바뀌었고사회 전반적으로 화제의 중심에 서 있습니다소셜미디어 기반 데이터는 기존의 트랜잭션(transaction) 데이터보다 훨씬 방대하고 다양한 구조를 가지고 있지만각 사회 구성원들 사이에서 직접적인 상호 소통을 통해 생성공유교환되고 있기 때문에 현재 시점의 사회 동향 및 사회 구성원의 행동 패턴을 표현하고 있다고 인식되고 있습니다.

 

기업들의 소셜미디어 활용

기업들도 마케팅 도구로 소셜 미디어를 적극 활용하고 있습니다신문이나 TV등을 통한 전통적인 마케팅과 비교해 효과를 빨리 볼 수 있다는 점과 비용 대비 효과가 크다는 점에서 소셜 미디어 마케팅을 선호하고 있습니다.

 

또한 기업에 반하는 불리한 이슈가 터졌을 때를 사전에 감지할 목적으로 소셜미디어 분석을 활용하고 있습니다이를 위해서 특정 키워드를 등록해 놓고 실시간으로 파악하고 있습니다기업들이 이 부분에 대해서 민감한 것은 기업에 반하는 부정적인 단어를 빨리 파악하여 문제를 사전에 해결하기 위해서입니다.

 

소셜분석은 소비자가 어떤 걸 좋아하고 무엇을 선호하는지 추적하고 분석해서 행위를 구조화하는게 가능합니다이 구조화된 행위에 의미를 부여하고 선호도를 조사하는게 소셜분석의 중요성입니다과거에는 웹상에서 분석을 하려면 페이지 뷰가 얼마나 발생했고이용자가 얼마나 오래 있었는지 등을 조사했습니다현재는 소셜미디어의 확대로 소비자들의 사소한 행위들이 분석 가능한 데이터로 변환이 되었습니다.

 

 

호불호(긍정/부정파악

소셜미디어에서 빠질수 없는 부분이 호불호(긍정/부정조사입니다이전의 기업들은 결과와 이슈를 빨리 파악하기 위해서 키워드 기반 분석을 중요시하였습니다지금은 제품에 대한 고객 반응이 어떤지에 대한 자세한 사항들을 알고 싶어합니다시점을 기준으로 제품에 대한 선호도가 어떻게 변하는지 실시간으로 파악하길 원합니다.

 

키워드 기반 시맨틱에 대해서 말을 하자면 아주 잘하는데” 라는 문장을 보면 긍정의 의미라고 판단할 수 있지만 다른 사람을 비꼬는 말일 수도 있습니다이런 중립적 의미를 문장 구조에서 정확하게 파악해야 합니다.

 

자연어를 처리하는 규칙을 보면 우선 형태소를 먼저 분석한 뒤 주부부사부술어부를 통해 문장 전체에 대한 의미를 파악합니다이전에는 주부부사부술어부를 나눈 뒤에 이 구조에서 긍정적인 단어와 부정적인 단어가 몇 개 등장하는지를 통한 단순한 분석을 했습니다정확한 분석이 될 수 없는 이유입니다현재는 정교하게 구축된 사전들을 통해서 정확하게 문장의 의미를 파악해 내고 있습니다.

 

 

소셜분석의 영역

소셜분석은 소셜 필터링(Social Filtering), 소셜네트워크 분석(Social Network Analysis), 정서분석(Sentiment Analysis) 기법과 같이 전문적인 분석 테크닉 다수를 포괄하는 상위 용어입니다.

 

소셜 네트워크 분석툴은 사회구조와 상호의존성뿐만 아니라 개인그룹기관의 작업 패턴을 검토할 때 유용합니다소셜네트워크 분석에는 다양한 출처에서 데이터를 취합하고관계를 분석하고그 관계의 영향효능을 평가하는 것이 포함됩니다.

 

 

소셜미디어의 구분

소셜미디어는 다음과 같이 구분될 수 있습니다.

 

① 소셜 네크워킹(Social Networking)

마이스페이스(MySpace), 페이스북(Facebook), 링크드인(LinkedIn) 과 프렌드스터(Friendster)와 같은 사교용 프로파일 관리 제품을 비롯해사람 찾기와 전문가 찾기에 인간관계를 이해하고 활용하는 데 알고리즘을 적용하는 소셜네트워킹 분석(SNA, Social Networking Analysis) 기술을 말합니다.

 

② 소셜 협업(Social Cooperation)

위키(Wikis), 블로그인스턴트 메시징협업 사무실크라우드소싱(Crowdsourcing)과 같은 기술들이 있습니다.

 

③ 소셜 퍼블리싱(Social Publishing)

커뮤니티가 개인 콘텐츠를 취합해 유투브(YouTube)와 플리커(Flickr)와 같은 유용하고 커뮤니티가 사용 가능한 콘텐츠 저장소를 만들 수 있도록 지원하는 기술을 말합니다.

 

④ 소셜 피드백(Social Feedback)

   유투브플리커디그(Digg), 딜리셔스(Del.icio.us), 아마존(Amazon)에서 보는 것처럼 특정 아이템에 대해 커뮤니티로부터 피드백과 의견을 얻어내는 것을 의미합니다

'빅데이터 > 빅데이터 처리' 카테고리의 다른 글

빅 쿼리(Big query)  (0) 2017.08.03
맵-리듀스(Map-Reduce)  (0) 2017.08.03
텍스트마이닝(Text Mining)  (0) 2017.08.03
데이터마이닝(Data Mining)  (0) 2017.08.03
인-메모리(In-Memory)  (0) 2017.08.03


텍스트마이닝(Text Mining)이란 자연어로 구성된 비정형 텍스트 데이터에서 패턴 또는 관계를 추출하여 가치와 의미 있는 정보를 찾아내는 마이닝 기법으로사람들이 말하는 언어를 이해할 수 있는 자연어처리(Natural Language Processing) 기술에 기반 한 기술입니다소셜 미디어에서 생산하는 데이터는 트위터나 Facebook의 포스팅된 글과 같이 비정형데이터이기 때문에 데이터 분석에 텍스트 마이닝을 활용할 수 있습니다.

 

텍스트 마이닝 기술로 사용자의 글을 분석하여 특정 상품이나 서비스에 대한 선호도 및 여론의 방향을 파악할 수 있습니다문장 형태의 비정형 데이터를 정형화하는 데이터 전처리 기술에 대한 노하우가 필요하며선호도를 파악할 수 있도록 호감(positive)과 비호감(negative)을 인지하는 단어에 대한 노하우가 필요합니다.

 

 

텍스트마이닝 기술체계

텍스트마이닝 기술체계는 자연어처리정보추출시각화데이터베이스 그리고 기계학습의 분야를 포함하고 있습니다텍스트마이닝 기법 중에 일반적인 방법은 특성벡터(feature vector)인데 특성추출(feature extraction) 과정을 통해 텍스트에 대한 특성백터를 생성하게 됩니다따라서텍스트 분석의 기반이 되는 것이 바로 특성추출에 의한 특성벡터이며 이의 통계수치는 각 분석기법들의 근거가 되는 것입니다.

 

특성추출(Feature Extraction)

특성추출은 텍스트에서 중요한 용어를 인식하여 추출해 내는 것으로 추출된 용어들은 일반적으로 단어의 원형(word)으로 변형되어 특성벡터를 구성하게 됩니다이러한 특성벡터는 문서를 분류하거나 요약하는데 기초정보로 사용되며특성의 중요성을 나타내는 가중치 함수와 지지도 함수의 계산은 단어가 발생한 위치와 발생한 횟수에 기반합니다가령한 문서 내에서 여러 번 나타나는 단어의 중요도는 높다고 가정하지만여러 문서에서 걸쳐서 발생도가 높다면 이 단어의 중요도는 낮다고 간주합니다.

 

따라서 가중치 부여함수의 계산에는 단어가 발생한 문서 개수의 역함수(reverse)값이 사용됩니다이에 기반한 기법은 텍스트에서 정보나 지식을 발견하고 추출하는데 사용되며 그 방법에 따라 크게 문서의 군집(clustering)분류(classification)요약의 세가지로 분류됩니다분류의 수행에 앞서 군집화를 먼저 수행시켜 전체 문서집합의 개요를 획득하고 분류를 위한 판단 기준을 얻어냅니다.

 

 

① Topic tracking 기법

토픽 트랙킹은 사용자 프로필을 기반으로 사용자의 관심 분야의 문서가 어떤 종류일지를 예측하는 시스템입니다사용자의 프로필은 사용자가 직접 키워드 단어 또는 카테고리를 지정하거나 지금까지 읽어온 문서의 내역에 기반을 두어서 작성할 수 있습니다예를 들어 이 시스템을 통해서 회사는 경쟁 업체의 동향을 손쉽게 관찰할 수 있을 것이고의료업계에서는 최신 연구결과와 신약정보를 놓치지 않고 제공받을 수 있습니다.

  

② Question Answering 기법

질의 응답 시스템이라고도 하는데 사용자가 자연 언어로 질문을 던지면 시스템이 질문에 대답을 제공해주는 시스템입니다.

 

 Duo mining 기법

Duo-mining은 데이터마이닝과 텍스트마이닝을 함께 적용하려는 시도입니다예를 들어 CRM을 수행하려는 통신회사에서는 단순히 고객의 월간 통화량만을 데이터마이닝 기법으로 분석하여 CRM을 위한 고객군을 추출할 수도 있지만고객이 서비스센터에 요청한 내역을 텍스트마이닝 기법으로 분석하여 얻어진 정보를 함께 활용한다면 월간 사용량은 많으면서 현재 통신회사의 서비스에 불만을 가진 고객들을 불만 유형별로 관리할 수 있습니다.

 

 오피니언 마이닝(Opinion Mining) 기법

오피니언마이닝은 사람들이 특정 제품 및 서비스를 좋아하거나 싫어하는 이유를 분석합니다또한 어떤 사안에 대해서 여론이나 대중의 관심이 실시간으로 어떻게 변하는지를 확인합니다.

 

 

일반적 검색 방법

현재의 검색 방법은 질의어와 메타 데이터 간에 일치하는 단어를 찾아서 결과를 보여 줍니다하지만 사용자의 의도가 반영이 안되어 있어서 전혀 다른 결과를 내 놓을 가능성이 있습니다사용자의 의도가 무엇인지 파악하여 질의를 처리하는 것이 중요합니다이러한 이유로 주어진 조건과 상황에 따라 그에 맞는 추천을 오피니언의 흐름에 반영하여 제시하는 것이 중요합니다.

 

오피니언마이닝 처리절차

(1) 긍정 및 부정을 표현하는 단어 정보를 추출합니다기존에 구축된 사전등의 리소스를 이용하거나 수작업을 통해서 해당 도메인의 고빈도 긍정/부정을 표현하는 단어들을 확인할 수 있습니다

 

(2) 세부 평가요소와 그것이 가리키는 오피니언의 연결관계를 포함한 문장을 인식합니다구축된 어휘 정보를 사용하여 세부 평가요소와 긍정/부정 표현을 찾습니다또한 긍정적인 오피니언인지 부정적인 오피니언인지 문장 단위로 분류하기 위해서 규칙기반 방법과 통계기반 방법을 동시에 사용할 수 있습니다

 

(3) 긍정/부정 표현의 수 및 유용한 문장들을 추출하여 리뷰 요약을 생성합니다각 세부 평가요소에 대한 긍정 표현과 부정 표현의 차를 통하여 사용자들의 선호도를 제시할 수 있습니다.



최근 인터넷이 활성화되면서 데이터베이스 기반이 아닌 무작위 형태의 새로운 데이터가 생성되는 경우가 많아지는 추세입니다특히전자상거래 관련 대부분의 웹사이트에는 사용자들로부터 정형화되지 않았지만 상당히 잠재적 가치를 지니고 있는 텍스트 데이터들이 엄청난 규모로 생성되고 있습니다최근기업에서 유용하고 잠재적인 정보를 발견하기 위해 많이 사용하는 데이터마이닝 기술은 정형화된 형태의 데이터를 주대상으로 하고 있습니다.

 

그러나 대규모의 텍스트 데이터들은 구조적인 형태로 재구성하여 분석하기가 쉽지 않고대부분이 자연어로 쓰여진 문장 형태이기 때문에 함축된 정보를 추출하기가 쉽지 않습니다이러한 비 구조적인 텍스트 문서로부터 정보를 찾아 지식을 발견하는 것이 텍스트마이닝입니다그러나텍스트마이닝은 정형화된 데이터를 위한 일반 데이터마이닝에 비하여 정보 추출 능력이나 정확성 등 많이 떨어지는 경향이 있습니다.

 

데이터마이닝이 구조적인 데이터를 대상으로 유용하고 잠재적인 패턴을 끌어내는 것이라고 한다면텍스트마이닝은 자연어로 구성된 비구조적인 텍스트 안에서 패턴 또는 관계를 추출하여 지식을 발견하는 것으로 주로 텍스트의 자동 분류작업이나 새로운 지식을 생성하는 작업에 활용되고 있습니다.

 

오늘날 사용하는 대다수의 정보는 확실히 구조가 잡히지 않은 텍스트의 형태로 존재하기 때문에 자연어로 된 텍스트 문서의 자동화되고 지능적인 분석은 매우 중요합니다데이터 마이닝은 많은 기업들에서 데이터간의 관계패턴을 탐색하고 모형화하여 기업의 의사결정에 적용하기 위해 적용되며일반적인 데이터베이스와 같은 구조화된 자료에 초점이 맞춰져 있습니다따라서 데이터 마이닝 작업을 위해서는 적용될 데이터가 정확하고 표준화되어야 하며구조화가 잘 되어진 후에야 비로서 적용할 수 있을 것입니다.

 

 

데이터마이닝(Data Mining)

데이터마이닝은 데이터베이스의 데이터처럼 정형화된 데이터를 대상으로 처리하기 때문에 텍스트마이닝에 비하여 특성간의 연관성 파악이나 규칙생성 등 매우 다양하고 강력한 알고리즘들이 많이 개발되고 있습니다특히 분류작업의 경우 특성 벡터에 의존하는 텍스트 마이닝에 비하여 결정트리신경망연관규칙등 다양한 알고리즘이 지원될 수 있습니다.

 

 

데이터마이닝의 중요 사항

데이터마이닝의 가장 중요한 사항은 데이터를 수집하고 가공하는 이유가 무엇인지 이를 통해서 원하는 결과를 얻기 위하여 어떤 기법을 써야하는지에 대한 이해와 선택입니다데이터 분석은 지하에 묻힌 광물을 찾아낸다는 뜻을 가진 마이닝(mining)이란 용어로 부르게 된 것은 데이터에서 정보를 추출하는 과정이 탄광에서 석탄을 캐거나 대륙붕에서 원유를 채굴하는 작업처럼 숨겨진 가치를 찾아낸다는 특징을 가졌기 때문입니다.

 

데이터의 형태와 범위가 다양해지고 그 크기가 방대해지는 빅데이터의 출현으로 데이터 마이닝의 중요성은 한층 부각되고 있습니다특히 웹에서 엄청나게 빠른 속도로 생성되는 웹 페이지(web page) 콘텐츠와 웹 로그(web log), 소셜네트워크서비스의 텍스트 정보와 영상과 같은 비정형 데이터(unstructured data)를 분석하기 위한 다양한 방법론이 등장해 데이터 마이닝의 포괄 범위는 확장되고 있습니다.

 

 

통계학과 데이터마이닝은 비슷하다

데이터에서 정보를 찾아낸다는 관점에서 보면 데이터마이닝은 통계학과 매우 비슷합니다데이터를 탐색하고 분석하는 이론을 개발하는 학문 분야가 통계학이기 때문입니다데이터 마이닝에서 주로 사용하고 있는 방법론인 로지스틱 회귀분석(logistic regression), 주성분 분석(principal analysis), 판별 분석(discriminant analysis), 군집 분석(clustering analysis) 등은 통계학에서 사용되고 있는 분석 방법론입니다.

 

 

통계학과 데이터마이닝의 차이

통계학과 데이터마이닝의 차이를 살펴보면 통계학은 비교적 크지 않는 실험데이터를 대상으로 하는데 반해 데이터 마이닝은 비 계획적으로 축적된 대용량의 데이터를 대상으로 합니다통계학이 추정(estimation)과 검정(testing)이라는 이론을 중시하는 특징을 가졌다면 데이터마이닝은 이해하기 쉬운 예측모형의 도출에 주목합니다즉 데이터마이닝은 기업활동 과정에서 자연스럽게 축적된 대량의 데이터를 분석해 기업 경영에 필요한 가치 있는 정보를 추출하기 위해 사용됩니다이러한 이유로 데이터 마이닝을 규모속도그리고 단순성의 통계학(statistics at scale, speed, and simplicity)”이라 부릅니다.

 

 

데이터마이닝과 KDD(Knowledge Discovery in Database)

데이터 마이닝과 관련된 용어로 KDD가 있습니다. KDD는 데이터로부터 유용한 지식을 찾아내는 과정을 분석에 필요한 데이터를 추출(Extraction) 해서사전처리(Preprocessing)와 변환과정(Transformation)을 거쳐 분석(Data Mining)하고 결과를 해석하는 과정이라 말할 수 있습니다데이터마이닝은 데이터 분석 과정의 핵심요소이며분석을 위한 데이터를 만드는 전 처리 과정이나 결과를 해석 평가하는 것은 넓은 의미로는 데이터 분석에 해당됩니다이런 관점에서 데이터 마이닝은 KDD의 구성요소라기보다는 KDD의 전 과정을 포괄하는 개념입니다.

 

[ KDD 구성도]

 

 

데이터마이닝 분석 과정

데이터마이닝은 기업 경영 활동 과정에서 발생하는 데이터를 분석하기 위한 목적으로 개발되었기 때문에 다양한 산업 분야에 공통적으로 적용되는 표준화 처리 과정이 제시되었습니다데이터 마이닝 표준 처리 과정(CRISP-DM, Cross Industry Standard Process for Data Mining)은 비즈니스 이해(Business Understanding), 데이터 이해(Data Understanding), 데이터 준비(Data Preparation), 모형(Modeling), 평가(Evaluation), 적용(Deployment) 6단계로 구성되어 있습니다.

 

데이터 마이닝 표준 처리 과정 (CRISP-DM) ]

 

 

데이터 마이닝은 학제적(interdisciplinary)인 특징을 가집니다기존의 통계적 분석방법론과 함께 기계학습(machine learning), 인공지능(artificial intelligence), 컴퓨터 과학(computer science) 등을 결합해 사용합니다통계적인 방법론뿐 아니라 기계학습신경망분석(neural network)등도 데이터로부터 정보를 추출하기 위한 다양한 접근방법 중 하나로 활용되고 있습니다기계학습 기법은 대량의 데이터를 강력한 계산능력을 활용해 빠르게 분석합니다.

 

 

데이터마이닝은 전문적인 소프트웨어 사용이 중요하다

데이터마이닝은 대용량 데이터를 활용해 다양한 분석방법론을 적용하기 때문에 전문 소프트웨어 사용이 필수적입니다데이터마이닝 소프트웨어는 데이터베이스 공급업체가 제공하는 제품군과 통계분석용 전문 소프트웨어로 구분할 수 있습니다데이터베이스 공급업체가 제공하는 데이터마이닝 소프트웨어로는 IBM Intelligent Miner, MS SQL Server 2005, 오라클의 Data Mining, 테라데이터의 Warehouse Miner가 있습니다.

 

데이터마이닝 분석용 소프트웨어로는 SAS Enterprise Miner, IBM SPSS Modeler( SPSS Clementine)가 있습니다최근 주목받고 있는 R은 오픈소스 형태로 무료로 사용할 수 있는 소프트웨어입니다그러나 사용자 친화적으로 설계되어 있지 않기 때문에 일반인이 이용하기에는 어려움이 많습니다.

 

 

데이터마이닝 활용분야

데이터마이닝은 다양한 분야에서 활용됩니다천체 관측 사진에서 행성과 성운을 식별하는 패턴인식(pattern recognition) 기법은 방위산업과 의료진단 분야에서 활용하고 있습니다데이터마이닝 활용이 가장 활발한 곳은 기업입니다널리 알려진 사례로는 장바구니 분석(Market Basket Analysis)이 있습니다할인점의 구매데이터를 분석한 결과 아기용 기저귀와 맥주가 함께 팔리고 있다는 사실을 발견해 할인행사나 매장의 상품 배치에 활용한 사례입니다.

 

반도체나 자동차소비재 등 제조업에서는 생산 공정 단계에서 발생하는 데이터를 분석해 불량품이 발생하는 원인을 규명하고 예방하는 품질관리(Quality Control)에 활용합니다금융 분야에서는 고객의 신용 등급에 따라 대출규모와 이자 등을 결정하는 신용점수 (Credit Score) 산정에 데이터 마이닝이 활용됩니다특이한 거래 행위에서 부정행위를 적발(fraud detection)하는 분야에도 활용됩니다잃어버린 신용카드의 부정 이용보험회사의 허위.과다 청구를 예방하기 위해 사용될 뿐 아니라 국민연금이나 의료보험의 부당 청구와 같은 영역에도 활용하고 있습니다.

 

 

고객관계관리(CRM, Customer Relationship Management)

데이터마이닝은 고객관계관리(CRM) 개념과 밀접한 관련을 맺고 있습니다고객관계관리는 기업이 소비자에게 상품과 서비스를 판매하는 과정에서 발생한 데이터가 중요한 정보로 활용될 수 있다는 생각이 확산되면서 등장했습니다고객관계관리는 기존의 데이터베이스 마케팅(Database Marketing) 개념에서 한 걸음 더 나아가 생산자 중심의 기업 활동을 소비자 중심으로 바꾸는 패러다임의 전환을 의미합니다.

 

고객의 행동을 파악하기 위해서는 데이터 관리와 분석이 필수적입니다이를 위해 데이터를 효과적으로 수집하고 분석하는 정보기술(IT, Information Technology)에 주목하게 됩니다데이터웨어하우스(DW, Data Warehouse)는 기업이 보유하는 대규모 데이터를 효과적으로 저장하고 관리할 수 있게 지원하는 시스템이다데이터 마이닝을 활용한 고객 데이터 분석도 이러한 효과적인 데이터 관리시스템이 지원했기 때문에 가능한 일이었습니다.

 

데이터의 양이 폭증하고 비정형 데이터가 중요한 의미를 지니는 빅데이터 환경에서 기존의 정보기술이나 분석 방법론은 새로운 전기를 맞고 있습니다. 그러나 소비자의 관점에서 기업 활동을 한다는 고객관계관리의 기본 사상은 변하지 않고 더욱 강조될 것으로 보입니다.



가트너가 발표한 2012 10대 전략 기술 트렌드를 보면 빅데이터와 인-메모리 컴퓨팅이 나란히 나열되어 있습니다-메모리 기술은 빅데이터 시대에 데이터 처리 속도를 향상시킬 수 있는 핵심 기술입니다.

 

-메모리 컴퓨팅

64비트 범용 서버의 활용 확산메모리 가격의 하락 등 하드웨어의 발전과 실시간성을 요구하는 응용 분야의 확대로 인하여 인-메모리 컴퓨팅 기술에 대한 관심이 높아지고 있습니다.

 

-메모리 컴퓨팅 기술은 응용 서비스의 클라우드화모바일화글로벌화로 인하여 발생하는 익스트림 트랜잭션(Extreme transaction)의 고성능 처리를 지원하기 위한 기반 기술로 활용이 확대되고 있습니다익스트림 트랜잭션 처리는 빅데이터와 같이 예외적으로 많은 트랜잭션을 처리하는 것을 의미합니다또한 빅데이터를 효과적으로 분석하기 위해서 실시간성을 제공하기 위한 기반 플랫폼으로 활용이 될 전망입니다.

 

익스트림 트랜잭션 처리 환경에서 서비스 제공을 위해 활용되는 데이터 또는 서비스 중에 생성되는 데이터들은 그 양이 많고생성 속도가 매우 빠릅니다따라서대규모 데이터에 대해 익스트림 트랜잭션 처리를 지원하기 위해서는 고성능 컴퓨터 기술뿐만 아니라 인-메모리 컴퓨팅 기술과의 연계가 필요합니다어떤 일을 하는데 있어서 최고의 성과를 얻기 위해서는 적절한 시점즉 실시간성이 매우 중요합니다빅데이터를 활용하는 데 있어서도 적시성(실시간성확보가 매우 중요합니다.

 

-메모리 컴퓨팅(In-Memory Computing)이란 애플리케이션이 운영을 위한 데이터를 하드 디스크가 아닌 메인 메모리에 모두 올려서 서비스를 수행하는 것을 말합니다연산을 위한 영역으로만 여겨졌던 메모리 영역을 대량의 데이터를 저장하여 처리할 수 있는 공간으로 사용하는 것입니다예전에는 메인 메모리(Main Memory) 가격이 높아서 불가능하였지만지금은 가격의 하락으로 가능하게 된 기술입니다.

 

트랜잭션 처리 분야의 거장인 짐 그레이는 2006년 워싱턴의 레드먼드에서 열린 한 학술행사에서 하드 디스크가 데이터 백업을 위한 역할을 하게 되고(RAM)이 운영 데이터 저장 관리에 사용되는 인-메모리 컴퓨팅이 보편화될 것을 예견했습니다.

 

 

-메모리 컴퓨팅 기술의 분류

-메모리 컴퓨팅 기술은 인-메모리 응용 플랫폼(In-Memory Application Platform), -메모리 데이터 관리(In-Memory Data Management), -메모리 메시징(In-Memory Messaging) 3가지로 분류할 수 있습니다현재 인-메모리 컴퓨팅 기술을 활발하게 활용하려는 곳은 데이터 관리 분야로 데이터베이스 관리 서비스를 제공하는 인-메모리 데이터베이스 관리 시스템(In-Memory DBMS)과 분산 환경에서 응용의 성능을 높일 수 있는 분산 캐시층을 제공하는 인-메모리 데이터 그리드(In-Memory Data Grid)가 있습니다.

 

 

-메모리 DBMS 방식이 정말 유용한가?

 

-메모리 DBMS는 메인 메모리에 레코드들을 저장한다는 것이 기존의 디스크  DBMS 방식과 가장 큰 차이점이라고 할 수 있습니다이러한 차이점으로 디스크  DBMS와의 커다란 성능 차이를 가져오게 된 것입니다.


디스크 DBMS와 인-메모리 DBMS의 차이 ]



상단 그림을 보시면 디스크 DBMS의 경우 디스크에 저장된 내용을 메인 메모리로 로딩을 해야 하며 실행을 위해서는 CPU로 해당 데이터를 재 전송해야 합니다이에 반해서 인-메모리 DBMS는 메인 메모리에서 바로 CPU로 데이터를 전송만 하면 되므로 구조상으로 간단합니다.

 

하지만 메모리 액세스가 디스크 액세스보다 훨씬 빠르다는 것은 전혀 새로운 사실은 아닙니다기존의 DBMS들도 이러한 문제점을 캐시(Cache)를 통해 해결하고 있습니다자주 사용되는 레코드들은 캐싱을 통해 미리 메모리에 넣어두어서 디스크를 통한 입-출력에서 발생하는 속도 저하 문제를 해결한 것입니다이를 생각한다면 인-메모리는 기존 방식보다 얼마나 빠른가 하는 의문을 가지게 됩니다.

 

결론적으로 말하자면 디스크 DBMS와 인-메모리 DBMS의 작동 방식이 서로 다릅니다캐싱을 통한다고 해도 설계상의 차이점으로 성능상의 차이가 발생합니다디스크 컴퓨터는 태생적으로 읽고 쓰기 위해서는 반드시 디스크를 이용해야 되는 것입니다.

 

 

-메모리 DBMS의 접근 방식

요즘 거론되고 있는 인-메모리 데이터베이스의 양대 산맥인 SAP와 오라클의 메모리 접근 방식에는 차이점이 있습니다먼저 SAP는 모든 디스크를 없애고 메모리 상에 데이터베이스를 상주 시켜 속도를 향상시켰습니다이로 인하여 DRAM의 용량이 매우 크고 가격 또한 비쌉니다.

 

오라클은 디스크가 아닌 플래쉬 메모리에 저장해 접근 속도를 높이고 있습니다. SAP는 메인 메모리에서 모든 것을 처리하는 반면오라클은 보조 기억장치 활용을 극대화 하는 방향으로 가고 있습니다래리 엘리슨 오라클 CEO는 미국 샌프란시스코 모스콘센터에서 개최된 오라클 오픈월드 2013’ 행사에서 애플리케이션의 수정업로드 등이 없이 단지 옵션을 켜는 것만으로도 쿼리를 백배 이상 OLTP 속도를 두배 이상 높일 수 있다” 고 자신들의 인-메모리 방식에 대한 자신감을 내 보였습니다.

 

 

-메모리 DBMS의 단점

-메모리 DBMS의 단점은 안정성이 떨어진다는 것입니다충격에 대한 안전성은 HDD보다 높기 때문에 이 부분을 지적한 것은 아닙니다정전이나 정전기 발생 시 안정성이 크게 떨어진다는 말입니다메인 메모리는 휘발성 주기억장치로정전이나 전력이 끊기면 메모리에 저장된 방대한 데이터가 삽시간에 사라집니다데이터베이스 전체가 살아지는 최악의 경우가 발생할 수 있습니다.

 

이를 방지하기 위해서 백업용 SSD HDD를 구비해서 주기적으로 데이터를 백업 하겠지만 백업된 데이터와 증발된 데이터 사이에는 차이점이 발생할 수 있으며 이 문제는 치명적일 수 있습니다. 

 



빅데이터 분석 절차의 두 번째 단계는 수집된 데이터를 저장하고 관리하는 단계입니다기존에 사용되던 데이터 저장 방식은정형화된 데이터를 저장하는 형태가 주를 이루었습니다하지만빅데이터 환경에서는 정형화 되지 않은 비정형데이터를 저장할 수 있어야 하며대량의 데이터가 저장되야 하므로 기존의 데이터 저장·관리 기술 이외의 새로운 기술을 필요로 합니다.


 

하둡 분산 파일 시스템(HDFS, Hadoop Distributed File System)

빅데이터 환경에서 생산되는 데이터는 그 규모와 크기가 방대하기 때문에 기존의 파일 시스템 체계를 그대로 사용할 경우 많은 시간과 높은 처리비용을 필요로 합니다따라서 대용량의 데이터를 분석하기 위해서 두 대 이상의 컴퓨터를 이용하여 적절히 작업을 분배하고 다시 조합하며일부 작업에 문제가 생겼을 경우 문제가 발생 된 부분만 재 처리가 가능한 분산 컴퓨팅 환경을 요구합니다.

 

이를 지원하는 가장 대표적이며 널리 알려진 도구가 아파치(Apache)의 하둡(Hadoop)입니다하둡은 대용량의 데이터를 처리하기 위해 대규모의 컴퓨터 클러스터에서 동작하는 분산 애플리케이션 개발을 위한 자바 오픈소스 프레임워크입니다.

 

 컴퓨터 클러스터 (computer cluster)

 

여러대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말합니다클러스터의 구성 요소들은 일반적으로 고속의 근거리 통신망으로 연결됩니다서버로 사용되는 노드에는 각각의 운영체제가 실행됩니다컴퓨터 클러스터는 저렴한 마이크로프로세서와 고속의 네트워크그리고 고성능 분산 컴퓨팅용 소프트웨어들의 조합 결과로 태어났습니다.

 

[ 대규모 리눅스 클러스터 ]

 

하둡 분산 파일 시스템(HDFS)은 아파치 하둡 프로젝트의 분산 파일 시스템으로 처음에는 아파치 너치(Apache Nutch) 웹 검색 엔진 프로젝트를 위한 하부 구조로 만들어졌었다아파치 너치는 확장 가능한 오픈 소스 웹 크롤러 소프트웨어 프로젝트입니다.

 

 

2002년 미국의 프로그래머인 더그 컷팅(Doug Cutting) 마이크 카페렐라(Mike Cafarella)가 검색 소프트웨어를 개발하면서 루씬(Lucene)이라는 텍스트 검색 엔진을 만들고 이에 대한 파서(Parser) 및 크롤러(Crawler)로서 너치(Nutch) 라는 프로젝트를 진행하였는데 너치에서 가져오는 웹 사이트에 대한 방대한 데이터를 처리할 길이 없어 난감해 하던 차에2004년 Google이 발간한 구글 파일 시스템(GFS, Google File System) 논문과 맵-리듀스(Map-Reduce) 논문을 기초로 하여 약 3~4개월간의 프로그래밍을 통해 하둡 분산 파일 시스템(HDFS) 너치에 이식하였습니다.

 

하둡 분산 파일 시스템(HDFS)은 대용량 파일을 저장하고 처리하기 위한 솔루션입니다하둡 분산 파일 시스템(HDFS)은 하나의 서버에서 동작하는 것이 아니라여러 개의 서버에 설치 되어서 서비스가 됩니다하둡 분산 파일 시스템(HDFS)만을 위한 별도의 스토리지가 필요 없으며일반 리눅스 장비에 탑재되어 있는 로컬 디스크를 이용해서 확장 가능한 유연성 있는 구조입니다.

 

기본적으로 하둡 분산 파일 시스템(HDFS)은 파일을 64M 단위의 블록으로 나누어서 저장합니다블록의 크기도 환경설정을 통해서 손 쉽게 변경이 가능합니다하둡 분산 파일 시스템(HDFS)은 분산 환경에 최적한 모듈로 파일을 안전하게 저장하기 위해서 같은 내용을 3개의 다른 장소에 분산해서 저장을 합니다.

 

[ 하둡 분산 파일 시스템(HDFS)의 구조 ]

 

하둡 분산 파일 시스템(HDFS) 클러스터는 일반적으로 네임노드(Namenode) 를 담당하는 서버가 한대 존재하며 노드에 붙은 스토리지를 관리하는 수 많은 데이터 노드(Datanode)로 구성이 됩니다내부적으로 파일은 하나 또는 그 이상의 블록으로 쪼개지며 이러한 블록들은 데이터노드의 집합 안에 저장됩니다.

 

네임노드는 파일과 디렉토리의 열기닫기이름 변경과 같은 파일 시스템 네임스페이스 동작을 수행합니다또한 데이터노드로의 블록 매핑을 판단합니다데이터노드는 파일 시스템의 클라이언트들로부터의 읽기와 쓰기 요청을 제공하는 역할을 담당합니다또한 네임노드의 지시에 따라 블록 생성삭제 그리고 복제를 수행합니다.

 

네임노드와 데이터노드는 컴퓨터에서 실행하도록 설계된 소프트웨어의 조각입니다이러한 컴퓨터들은 일반적으로 GNU 리눅스(Linux) 운영체제를 사용합니다. 하둡 분산 파일 시스템(HDFS)은 자바언어를 이용하여 만들어졌습니다자바를 지원하는 어떤 컴퓨터에서도 네임노드 또는 데이터노드 소프트웨어를 수행할 수 있습니다높은 이식성의 자바 언어의 사용은 하둡 분산 파일 시스템(HDFS)가 광범위한 컴퓨터에 배포될 수 있음을 의미합니다.

'빅데이터 > 빅데이터 처리' 카테고리의 다른 글

소셜분석(Social Analysis)  (0) 2017.08.03
텍스트마이닝(Text Mining)  (0) 2017.08.03
데이터마이닝(Data Mining)  (0) 2017.08.03
인-메모리(In-Memory)  (0) 2017.08.03
대량의 로그 파일 수집  (0) 2017.08.03


빅데이터를 활용하고 분석하고결과를 도출하는 처리 과정은 크게 6가지 단계로 나누어 볼 수 있습니다여기서는 6단계의 처리 과정에 대해서 가볍게 살펴보도록 하겠습니다아래의 그림은 하둡 에코 시스템(Hadoop Echo System)의 전체 구성도입니다여기서 살펴볼 내용들은 하둡에만 국한된 사항은 아니지만이 그림을 통해서 설명할 내용들이 어디에 속하는지 알 수 있습니다.

 

[ 하둡 에코 시스템 구조 ]

 

빅데이터 분석 절차의 첫 번째 단계는 분석 대상이 되는 데이터를 수집하는 단계입니다데이터 수집을 위한 방법은 매우 다양하고 광범위합니다데이터 수집 시 수집 주체의 능동성 여부에 따라서 데이터 수집을 두 가지 형태로 분류할 수 있습니다데이터를 능동적으로 수집하는 형태와 수동적으로 모으는 형태입니다능동적 데이터 수집의 대표적인 예로 로그데이터(Log Data) 등을 들 수 있으며수동적 데이터 수집의 예로 웹 크롤러(Web Crawler)를 들 수 있습니다.

 

 

대량의 로그 파일 수집

대량의 로그를 수집하고 저장하는 기술로는 대표적으로 비정형 데이터를 수집하는 척와(Chukwa), 스크라이브(Scribe), 플룸(Flume) 등이 있으며정형 데이터를 수집하는 스쿠프(Sqoop)  hiho 등이 있습니다.



아파치 척와(Apache Chukwa)

분산되어 있는 노드들의 로그 데이터를 수집하고수집된 데이터를 저장하며 분석하기 위해 만들어진 오픈소스 프로젝트입니다척와가 수집하는 로그는 모니터링 로그(Monitoring Log), 응용프로그램 로그(Application Log), 하둡 로그(Hadoop Log) 등 다양한 데이터를 수집하며테라바이트 단위 이상의 로그데이터를 모니터링 하기위하여 개발되었습니다.

 

 [ Chukwa 구조 ]

 

 

에이전트(agent) 는 로그를 수집할 대상 서버(Monitored Source Node)에 설치가 됩니다에이전트의 임무는 해당 서버의 로그 파일이나 서버 정보를 콜렉터(Collector)에게 보내는 것입니다컬럭터(Collector)는 여러대의 에이전트로부터 로그 정보를 수신해서 하둡 분산 파일시스템(HDFS, Hadoop Distributed File System)에 저장하는 역할을 담당합니다하나의 컬렉터는 여러대의 에이전트 서버로부터 데이터를 전송받지만 하나의 파일에 저장합니다이때 저장되는 파일을 싱크(sink)파일이라고 부르며하둡 파일 시스템의 시퀀스파일(SequenceFile) 형식으로 저장됩니다.

 

수집된 로그 데이터를 처리하는 데이터 처리(Data Processing) 방법에는 아카이빙(Archiving)과 디먹스(Demux) 2가지 작업이 있습니다아카이빙(Archiving)은 컬렉터가 저장한 로그 파일에 대해서 시간 순서로 동일한 그룹으로 묶는 작업을 수행합니다데이터의 중복을 제거하고 졍렬 작업을 수행한 후하둡의 SequenceFile 포맷으로 저장합니다디먹스(Demux)는 로그 레코드를 파싱해서 키-(Key-Value) 쌍으로 구성하여 척와레코드(ChukwaRecord)를 만든 후에 하둡 파일 시스템에 파일로 다시 저장합니다.

 

마지막으로 사용자는 HICC(Hadoop Infrastructure Care Center) 라는 웹-포탈 인터페이스를 통하여 하둡 클러스터의 로그 파일과 시스템 정보를 수집해서 분석한 후에 웹 UI를 통해서 결과를 보여줍니다로그 수집을 위한 일반적인 용도가 아니라하둡 클러스터 자체를 실시간으로 모니터링하고 관리하는 기능입니다.

 

 

아파치 플럼(Apache Flume)

플럼(Flume)은 분산 환경에서 대량의 로그 데이터를 효과적으로 수집하여합친 후 다른 곳으로 전송할 수 있는 신뢰할 수 있는 서비스입니다플럼은 단순하며 유연한 스트리밍 데이터 플로우(streaming data flow) 아키텍처를 기반으로 합니다또한 플럼은 장애에 쉽게 대처 가능하며로그 유실에 대한 신뢰 수준을 상황에 맞게 변경할 수 있으며장애 발생시 다양한 복구 메커니즘을 제공합니다실시간으로 로그를 분석하는 어플리케이션을 개발할 수 있도록간단하며 확장 가능한 데이터 모델을 사용합니다.

 

클러스터에 있는 모든 장치로부터 로그 파일들을 수집한 후하둡 분산 파일 시스템(HDFS)과 같은 중앙 저장소에 저장하는 로깅 시스템을 구축해야 할 때 플럼이 가장 제격입니다플럼의 핵심 목표는 신뢰성(Reliability), 확장성(Scalability), 운영가능성(Manageability), 확장성(Extensibility) 을 만족시키는 것입니다.

 

[ Flume 구조 ]

 

위의 그림에서 다수의 어플리케이션 서버에서 로그 데이터를 수집하기 위해 플럼을 배치하는 전형적인 아키텍처를 볼 수 있습니다플럼 아키텍처는 다수의 논리 노드(logical node)로 구성되며각 논리 노드는 3개의 티어로 분류가 됩니다에이전트(agent) 티어는 로그를 생성하는 머신에 설치되며수집한 로그 데이터를 컬렉터 (Collector) 티어로 전송합니다컬렉터 티어는 분산된 에이전트로부터 데이터를 수집한 후에 스토리지(Storage) 티어로 재 전송합니다.

 

 

페이스북 스크라이브(Facebook Scribe)

페이스북(Facebook)에서 개발된 대규모의 서버로부터 실시간으로 스트리밍 로그 데이터 수집을 위한 애플리케이션입니다스크라이브(Scribe)는 네트워크와 시스템의 장애를 위해 고안된 것으로확장성과 신뢰성을 목표로 두고 있습니다. Facebook에서는 수 천대 규모로 설치운영되고 있고 하루에 100억 개의 메시지를 수집하고 있습니다.

 

[ Scribe 구조 ]

 

하나의 중앙 Scribe 서버와 여러 대의 Local Scribe 서버 구조로 구성되어 있으며, Scribe 서버는 시스템의 모든 노드들 위에서 동작합니다만약 중앙 Scribe 서버가 동작하지 못하면, Local Scribe 서버가 Local Disk에 있는 파일에 메시지를 작성하고중앙 Scribe 서버가 복구되었을 때 다시 메시지를 전송하여 메시지의 손실을 방지합니다.

 

중앙 Scribe 서버는 분산 파일 시스템 같은 마지막 목적지의 파일에 메시지를 작성하거나다른 층의 Scribe 서버로 메시지를 전송합니다이때, Scribe는 메시지 저장을 위해 Store라는 개념을 사용하여 여러 가지 타입의 Store를 제공하고이를 이용하면 HDFS에도 메시지를 저장할 수 있다로그 기록은 파일에도 할 수 있고, HDFS에 실시간으로도 할 수 있습니다.

+ Recent posts