• 제목/요약/키워드: 메모리(memory)

검색결과 3,892건 처리시간 0.021초

트랜잭션 가중치 기반의 빈발 아이템셋 마이닝 기법의 성능분석 (Performance analysis of Frequent Itemset Mining Technique based on Transaction Weight Constraints)

  • 윤은일;편광범
    • 인터넷정보학회논문지
    • /
    • 제16권1호
    • /
    • pp.67-74
    • /
    • 2015
  • 최근, 아이템들의 가치를 고려한 빈발 아이템셋 마이닝 방법은 데이터 마이닝 분야에서 가장 중요한 이슈 중 하나로 활발히 연구되어왔다. 아이템들의 가치를 고려한 마이닝 기법들은 적용 방법에 따라 크게 가중화 빈발 아이템셋 마이닝, 트랜잭션 가중치 기반의 빈발 아이템셋 마이닝, 유틸리티 아이템셋 마이닝으로 구분된다. 본 논문에서는 트랜잭션 가중치 기반의 빈발 아이템셋 마이닝들에 대해 실증적인 분석을 수행한다. 일반적으로 트랜잭션 가중치 기반의 빈발 아이템셋 마이닝 기법들은 데이터베이스 내 아이템들의 가치를 고려함으로써 트랜잭션 가중치를 계산한다. 또한, 그 기법들은 계산된 각 트랜잭션의 가중치를 바탕으로 가중화 빈발 아이템셋들을 마이닝 한다. 트랜잭션 가중치는 트랜잭션 내에 높은 가치의 아이템이 많이 포함 될수록 높은 값으로 나타나기 때문에 우리는 각 트랜잭션의 가중치의 분석을 통해 그 가치를 파악할 수 있다. 우리는 트랜잭션 가중치 기반의 빈발 아이템셋 마이닝 기법 중에서 가장 유명한 알고리즘인 WIS와 WIT-FWIs, IT-FWIs-MODIFY, WIT-FWIs-DIFF의 장 단점을 분석하고 각각의 성능을 비교한다. WIS는 트랜잭션 가중치 기반의 빈발 아이템셋 마이닝의 개념과 그 기법이 처음 제안된 알고리즘이며, 전통적인 빈발 아이템셋 마이닝 기법인 Apriori를 기반으로 하고 있다. 또 다른 트랜잭션 가중치 기반의 빈발 아이템셋 마이닝 방법인 WIT-FWIs와 WIT-FWIs-MODIFY, WIT-FWIs-DIFF는 가중화된 빈발 아이템셋 마이닝을 더 효율적으로 수행하기 위해 격자구조(Lattice) 형태의 특별한 저장구조인 WIT-tree를 이용한다. WIT-tree의 각 노드에는 아이템셋 정보와 아이템셋이 포함된 트랜잭션의 ID들이 저장되며, 이 구조를 사용함으로써 아이템셋 마이닝 과정에서 발생되는 다수의 데이터베이스 스캔 과정이 감소된다. 특히, 전통적인 알고리즘들이 수많은 데이터베이스 스캔을 수행하는 반면에, 이 알고리즘들은 WIT-tree를 이용해 데이터베이스를 오직 한번만 읽음으로써 마이닝과정에서 발생 가능한 오버헤드 문제를 해결한다. 또한, 공통적으로 길이 N의 두 아이템셋을 이용해 길이 N+1의 새로운 아이템셋을 생성한다. 먼저, WIT-FWIs는 각 아이템셋이 동시에 발생되는 트랜잭션들의 정보를 활용하는 것이 특징이다. WIT-FWIs-MODIFY는 조합되는 아이템셋의 정보를 이용해 빈도수 계산에 필요한 연산을 줄인 알고리즘이다. WIT-FWIs-DIFF는 두 아이템셋 중 하나만 발생한 트랜잭션의 정보를 이용한다. 우리는 다양한 실험환경에서 각 알고리즘의 성능을 비교분석하기 위해 각 트랜잭션의 형태가 유사한 dense 데이터와 각 트랜잭션의 구성이 서로 다른 sparse 데이터를 이용해 마이닝 시간과 최대 메모리 사용량을 평가한다. 또한, 각 알고리즘의 안정성을 평가하기 위한 확장성 테스트를 수행한다. 결과적으로, dense 데이터에서는 WIT-FWIs와 WIT-FWIs-MODIFY가 다른 알고리즘들보다 좋은 성능을 보이고 sparse 데이터에서는 WIT-FWI-DIFF가 가장 좋은 효율성을 갖는다. WIS는 더 많은 연산을 수행하는 알고리즘을 기반으로 했기 때문에 평균적으로 가장 낮은 성능을 보인다.

클라우드 환경에서 MongoDB 기반의 비정형 로그 처리 시스템 설계 및 구현 (Design and Implementation of MongoDB-based Unstructured Log Processing System over Cloud Computing Environment)

  • 김명진;한승호;최운;이한구
    • 인터넷정보학회논문지
    • /
    • 제14권6호
    • /
    • pp.71-84
    • /
    • 2013
  • 컴퓨터 시스템 운용 간에 발생하는 많은 정보들이 기록되는 로그데이터는 컴퓨터 시스템 운용 점검, 프로세스의 최적화, 사용자 최적화 맞춤형 제공 등 다방면으로 활용되고 있다. 본 논문에서는 다양한 종류의 로그데이터들 중에서 은행에서 발생하는 대용량의 로그데이터를 처리하기 위한 클라우드 환경 하에서의 MongoDB 기반 비정형 로그 처리시스템을 제안한다. 은행업무간 발생하는 대부분의 로그데이터는 고객의 업무처리 프로세스 간에 발생하며, 고객 업무 프로세스 처리에 따른 로그데이터를 수집, 저장, 분류, 분석하기 위해서는 별도로 로그데이터를 처리하는 시스템을 구축해야만 한다. 하지만 기존 컴퓨팅환경 하에서는 폭발적으로 증가하는 대용량 비정형 로그데이터 처리를 위한 유연한 스토리지 확장성 기능, 저장된 비정형 로그데이터를 분류, 분석 처리할 수 있는 기능을 구현하기가 매우 어렵다. 이에 따라 본 논문에서는 클라우드 컴퓨팅 기술을 도입하여 기존 컴퓨팅 인프라 환경의 분석 도구 및 관리체계에서 처리하기 어려웠던 비정형 로그데이터를 처리하기 위한 클라우드 환경기반의 로그데이터 처리시스템을 제안하고 구현하였다. 제안한 본 시스템은 IaaS(Infrastructure as a Service) 클라우드 환경을 도입하여 컴퓨팅 자원의 유연한 확장성을 제공하며 실제로, 로그데이터가 장기간 축적되거나 급격하게 증가하는 상황에서 스토리지, 메모리 등의 자원을 신속성 있고 유연하게 확장을 할 수 있는 기능을 포함한다. 또한, 축적된 비정형 로그데이터의 실시간 분석이 요구되어질 때 기존의 분석도구의 처리한계를 극복하기 위해 본 시스템은 하둡 (Hadoop) 기반의 분석모듈을 도입함으로써 대용량의 로그데이터를 빠르고 신뢰성 있게 병렬 분산 처리할 수 있는 기능을 제공한다. 게다가, HDFS(Hadoop Distributed File System)을 도입함으로써 축적된 로그데이터를 블록단위로 복제본을 생성하여 저장관리하기 때문에 본 시스템은 시스템 장애와 같은 상황에서 시스템이 멈추지 않고 작동할 수 있는 자동복구 기능을 제공한다. 마지막으로, 본 시스템은 NoSQL 기반의 MongoDB를 이용하여 분산 데이터베이스를 구축함으로써 효율적으로 비정형로그데이터를 처리하는 기능을 제공한다. MySQL과 같은 관계형 데이터베이스는 복잡한 스키마 구조를 가지고 있기 때문에 비정형 로그데이터를 처리하기에 적합하지 않은 구조를 가지고 있다. 또한, 관계형 데이터베이스의 엄격한 스키마 구조는 장기간 데이터가 축적되거나, 데이터가 급격하게 증가할 때 저장된 데이터를 분할하여 여러 노드에 분산시키는 노드 확장이 어렵다는 문제점을 가지고 있다. NoSQL은 관계형 데이터베이스에서 제공하는 복잡한 연산을 지원하지는 않지만 데이터가 빠르게 증가할 때 노드 분산을 통한 데이터베이스 확장이 매우 용이하며 비정형 데이터를 처리하는데 매우 적합한 구조를 가지고 있는 비관계형 데이터베이스이다. NoSQL의 데이터 모델은 주로 키-값(Key-Value), 컬럼지향(Column-oriented), 문서지향(Document-Oriented)형태로 구분되며, 제안한 시스템은 스키마 구조가 자유로운 문서지향(Document-Oriented) 데이터 모델의 대표 격인 MongoDB를 도입하였다. 본 시스템에 MongoDB를 도입한 이유는 유연한 스키마 구조에 따른 비정형 로그데이터 처리의 용이성뿐만 아니라, 급격한 데이터 증가에 따른 유연한 노드 확장, 스토리지 확장을 자동적으로 수행하는 오토샤딩 (AutoSharding) 기능을 제공하기 때문이다. 본 논문에서 제안하는 시스템은 크게 로그 수집기 모듈, 로그 그래프생성 모듈, MongoDB 모듈, Hadoop기반 분석 모듈, MySQL 모듈로 구성되어져 있다. 로그 수집기 모듈은 각 은행에서 고객의 업무 프로세스 시작부터 종료 시점까지 발생하는 로그데이터가 클라우드 서버로 전송될 때 로그데이터 종류에 따라 데이터를 수집하고 분류하여 MongoDB 모듈과 MySQL 모듈로 분배하는 기능을 수행한다. 로그 그래프생성 모듈은 수집된 로그데이터를 분석시점, 분석종류에 따라 MongoDB 모듈, Hadoop기반 분석 모듈, MySQL 모듈에 의해서 분석되어진 결과를 사용자에게 웹 인터페이스 형태로 제공하는 역할을 한다. 실시간적 로그데이터분석이 필요한 로그데이터는 MySQL 모듈로 저장이 되어 로그 그래프생성 모듈을 통하여 실시간 로그데이터 정보를 제공한다. 실시간 분석이 아닌 단위시간당 누적된 로그데이터의 경우 MongoDB 모듈에 저장이 되고, 다양한 분석사항에 따라 사용자에게 그래프화해서 제공된다. MongoDB 모듈에 누적된 로그데이터는 Hadoop기반 분석모듈을 통해서 병렬 분산 처리 작업이 수행된다. 성능 평가를 위하여 로그데이터 삽입, 쿼리 성능에 대해서 MySQL만을 적용한 로그데이터 처리시스템과 제안한 시스템을 비교 평가하였으며 그 성능의 우수성을 검증하였다. 또한, MongoDB의 청크 크기별 로그데이터 삽입 성능평가를 통해 최적화된 청크 크기를 확인하였다.