데이터 클러스터

위키원
Dbsdk6937 (토론 | 기여)님의 2019년 9월 18일 (수) 15:26 판 (종류)
이동: 둘러보기, 검색

데이터 클러스터(Data Cluster)는 파일과 디렉토리(폴더)에 디스크 공간을 할당하는 단위로 파일을 저장하도록 할당될 수 있는 가장 작은 논리적 디스크 공간을 말한다. 디스크상 데이터 구조 처리의 오버헤드를 줄이기 위해 클러스터라고 불리는 인접한 섹터 집단을 할당하며, 할당단위라고도 불린다.[1]

개요

데이터 클러스터는 컴퓨팅 분야 안에 다른 유형의 클러스터 중 하나이다. 데이터를 클러스터링 한다는 것은 연속적으로 액세스하는 데이터를 밀접하게 함께 저장하여 입출력(IO) 작업을 적게 하는 것을 의미한다.[2] 데이터 클러스터는 데이터베이스 튜닝 측면에서 매우 중요하다. 반대로 컴퓨터 클러스터는 데이터 베이스 환경에서 매우 일반적이다. 즉, 클러스터라는 용어를 모호하게 만든다. 클러스터를 사용하여 데이터베이스 성능을 향상시킬 수 있는 한가지 예일 뿐이다. 가기.png 클러스터에 대해 자세히 보기

데이터 클러스터는 기계학습 (Machine Learning), 데이타마이닝 (Data Mining), 패턴인식 (Pattern Recognition), 영상분석 (image analysis) 그리고 생물정보학 (Bioinformatics) 등의 분야에서 데이터 분석을 위해 흔히 사용된다. 하나의 데이터를 여러개의 부분집합 (clusters) 으로 분할하는 것을 의미하며, 그때 각 부분집합에 있는 데이터는 몇가지의 공통된 특징을 공유하는데, 그것은 몇가지 거리 측정법을 사용하여 유사도 (similarity or proximity)를 계산함으로써 이루어진다.[3]

데이터클러스터 알고리즘

클러스터 모델을 기반으로 정보를 분할하기 위해 데이터 세트에 적용할 수 있는 클러스터링이 많은데, 수행하고자 하는 것에 따라 데이터 클러스터 알고리즘을 선택가능하다.

  • 중심기반(Centroid-based)
중심기반의 OS 그룹화 방법에서 모든 클러스터는 벡터 값으로 참조된다. 각 개체는 다른 클러스터에 비교하여 값 차이가 최소인 클러스터의 일부분이다. 클러스터의 수는 미리 정의 되어야 하는데, 이런 종류의 알고리즘의 가장 큰문제라고 할 수 있다. 이 방법론은 분류 주제에 광범위하게 사용된다.
  • 분산기반(Distributed-based)
사전 정의된 통계적 모델과 관련하여, 분산 방법론은 값이 동일한 분포에 대해 값을 갖는 객체를 결합한다. 가치 생성의 무작위 특성으로 인해 이 프로세스는 실제 데이터와 더 나은 방식으로 상호작용하기 위해 잘 정의되고 복잡한 모델이 필요하다. 그러나 이런 프로세스는 최적의 해결책을 도출할 수 있으며 상관관계 및 종속성을 계산할 수 있다.
  • 연결기반(Connectivity-based)
연결기반 알고리즘에서, 모든 객체는 객체 간의 거리에 대한 관계의 정도에 따라 해당 이웃과 연관되어 있다. 이 가정을 기반으로 클러스터는 객체에 의해 생성되고 최대 거리 제한으로 설명된다. 이러한 구성원 간의 관계와 함께, 이 군집들은 계층적으로 표현된다. 거리 함수 값은 분석의 초점에 따라 달라진다.
  • 밀도기반(Density-based)
밀도기반 알고리즘은 결정된 위치에서 데이터 세트내 구성원의 밀도에 따라 클러스터를 생성한다. 거리 개념을 밀도 표준 수준까지 통합하여 집단으로 구성원을 그룹화한다. 이러한 종류의 프로세스는 그룹의 한계영역을 감지하는데 있어 성능이 떨어질 수 있다.

종류

데이터 클러스터는 크게 계층적 클러스터링과 부분군집화로 나눌 수 있다.[3]

  • 계층적 클러스터링(hierarchical clustering)

계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체 내지 그룹과 통합하여 군집화를 수행하는 알고리즘이다. 각 요소들로부터 시작한 클러스터들이 계층구조를 이루는 것이며, 트리 구조를 이루누는 한쪽 끝에는 각각의 요소가 있고 다른쪽 끝에는 모든 요소를 가지를 단 하나의 클러스터가 존재한다. 계층적클러스터링은 크게 응집형과 분리형 클러스팅으로 나뉜다.

응집형 계층적 클러스터링은 주어진 데이터에서 개별 데이터 하나하나를 독립된 하나의 클러스터로 가정한다. 특정 알고리즘에 의해 병합하여 상위 단계 클러스터를 구성한 다음 구성된 상위단계 클러스터를 특정 알고리즘에 의해 또 다시 병합하여 최종적으로 데이터 전체를 멤버로 하는 하나의 클러스터로 구성하는 방법이다. 분리형 계층적 클러스터링은 응집형과는 완전히 반대로 진행된다. 데이터 전체를 멤버로 하는 한개의 클러스터로 시작해 개별 데이터로 분리해나가는 식으로 클러스터를 구성한다.

  • 부분군집화(partitional clustering)

부분군집화는 클러스터의 계층을 고려하지않는다. 평면적으로 클러스팅하는 방법으로 일반적으로 미리 몇개의 클러스터로 나누어 질 것을 예상하고 클러스터의 갯수를 정한다.

조건

  • 노이즈 데이터 처리 : 데이터베이스에서는 노이즈,누락 또는 오류데이터가 포함 되어 있다. 일부 알고리즘은 그러한 데이터에 민감하기때문에 품질이 낮은 클러스터로 이어질 수 있다.
  • 해석가능성(Interpretability) : 클러스터링 결과는 해석 가능해야하며, 이해할 수 있어야하고 사용가능해야한다.
  • 고차원성(High dimensionality) : 클러스터링 알고리즘은 저차원 데이터뿐만 아니라 고차원 공간도 처리할 수 있어야 한다.
  • 속성 형태 클러스터 발견 : 클러스터링 알고리즘은 임의 형태의 클러스터를 감지할 수 있어야한다. 크기가 작은 구형 군집을 찾는 경향이 있는 거리 측정에만 국한되어선 안된다.
  • 다른 종류의 속성을 다루는 능력 : 알고리즘은 간격 기반 (숫자) 데이터, 범주형 및 이진 데이터와 같은 모든 종류의 데이터에 적용가능 해야한다.
  • 확장성(Scalability) : 대규모 데이터 베이스를 처리하려면 확장성이 뛰어난 클러스터링 알고리즘이 필요하다.

활용

빅 데이터 클러스터 SQL Server

SQL 데이터베이스에서 가장 간단한 데이터 클러스터는 행이다. 데이터 베이스는 가능한 경우 행의 모든 열을 동일한 데이터 베이스 블록에 저장하는데, 행이 단일 블록에 맞지 않는 경우 (ex.LOB 유형이 관련된 경우) 예외가 적용된다. 빅 데이터 클러스터 SQL Server 는 외부데이터 원본을 쿼리하거나, SQL Server에서 관리하는 HDFS에 빅데이터를 저장하고, 클러스터를 통해 여러 외부 데이터 원본에서 데이터를 쿼리할 수 있다. 컨트롤러, 컴퓨팅풀, 데이터풀, 스토리지 풀로 구성되어있다.

  • 데이터가상화 : 빅 데이터 클러스터 SQL Server에서 데이터를 이동하거나 복사를 하지 않고 외부 데이터 원본을 쿼리할 수 있다.
  • Data Lake : 여러 외부 원본에서 수집될 수 있는 빅데이터를 저장할 수 있다. 빅데이터를 빅 데이터 클러스터의 HDFS에 저장한 후에 데이터를 분석 및 쿼리하고 관계형 데이터와 결합가능하다.
  • 스케일 아웃 데이터 마트 : 규모 확장 계산 및 저장소를 제공하여 데이터 분석 성능을 향상 시킨다. 추가 분석을 위해 다양한 원본의 데이터를 수집하고 데이터 풀 노드 간에 캐시로 분산한다.
  • 통합 AI 및 Machine Learning : 저장소, 데이터 풀에 저장된 데이터에서 통합 AI머신러닝(Machine Learning) 작업을 사용하도록 설정한다. 뿐만아니라 자바(Java)나 R등을 사용하여 SQL Server의 기본 제공 AI 도구 뿐만 아니라 Spark도 사용가능하다.
  • 관리 및 모니터링 : 명령줄 도구, API, 포털 및 동적 관리 뷰를 조합하고 제공한다. 일반적인 관리 작업을 위한 기본제공 코드를 조각할 수 있고, HDFS를 찾아보고 파일 업로드나 미리보기, 디렉터리를 만들 수 있다. 또한 외부 데이터 원본 만들기를 간소화 하기 위한 데이터 가상화 마법사도 가능하다.

K-Means 알고리즘

K-평균(K-Means) 알고리즘은 클러스터링을 통해 데이터를 분류하는 기법 중 하나로 머신런닝, 데이터 마이닝에서 활용하고 있는 기법으로, 대표적인 비지도학습이다. 전체 데이터를 몇 개의 집단으로 그룹화하여 각 집단의 성격을 파악하고 데이터 전체의 구조에 대한 이해를 돕는다. 데이터를 기준점을 중심으로 거리가 최소가 되도록 K개의 묶음으로 군집하여 분류하는 데이터 마이닝 기법이다.

  • 거리기반분류 : 중심점과의 유클리디안 거리 최소화한다.
  • 반복작업 : 초기의 잘못된 병합을 알고리즘을 반복수행하여 회복한다.
  • 짧은 게산시간 : 간단한 알고리즘이며, 대규모 적용가능하다.
  • 탐색적 기법 : 주어진 자료에 대한 사전정보없이 의미 있는 자료구조를 찾아낼 수 있다.

인덱스

데이터 클러스터링을 활용해 인덱스 리프 노드에 비슷한 값이 서로 옆에 저장된다. 정렬된 방식으로 인덱싱 된 열을 저장한다. 즉, 인덱스는 비슷한 값을 가진 행의 클러스터를 만든다. 데이터를 클러스팅하는 기능이 인덱스에서 매우 중요하기 때문에 인덱싱의 두번째 힘이라고도 불린다. 인덱스를 사용하여 데이터를 클러스터링하고 쿼리 성능을 향상시킬 수 있다.


각주

  1. 데이터 클러스터〉, 《위키백과》
  2. Markus Winand., 〈Clustering Data〉, 《USE THE INDEX, LUKE》
  3. 3.0 3.1 Clustering〉, 《A Tutorial on Clustering Algorithms》

참고자료