검수요청.png검수요청.png

데이터 클러스터

해시넷
leejia1222 (토론 | 기여)님의 2019년 9월 23일 (월) 14:15 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

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

개요[편집]

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

데이터 클러스터는 머신러닝(machine learning), 데이터마이닝(data mining), 패턴인식(pattern recognition), 영상분석(image analysis) 그리고 생물정보학(bioinformatics) 등의 분야에서 데이터 분석을 위해 흔히 사용된다. 하나의 데이터를 여러개의 부분집합으로 분할하는 것을 의미하며, 그때 각 부분집합에 있는 데이터는 몇 가지의 공통된 특징을 공유하는데, 그것은 몇 가지 거리 측정법을 사용하여 유사도 (similarity or proximity)를 계산함으로써 이루어진다.[2]

특징[편집]

조건[편집]

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

종류[편집]

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

  • 계층적 클러스터링(hierarchical clustering)
계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체나 그룹과 통합하여 군집화를 수행하는 알고리즘이다. 각 요소들로부터 시작한 클러스터들이 계층구조를 이루는 것이며, 트리 구조를 이루는 한쪽 끝에는 각각의 요소가 있고 다른 쪽 끝에는 모든 요소를 가지를 단 하나의 클러스터가 존재한다. 계층적 클러스터링은 크게 응집형과 분리형 클러스팅으로 나뉜다. 응집형 계층적 클러스터링은 주어진 데이터에서 개별 데이터 하나하나를 독립된 하나의 클러스터로 가정한다. 특정 알고리즘에 의해 병합하여 상위 단계 클러스터를 구성한 다음 구성된 상위단계 클러스터를 특정 알고리즘에 의해 또다시 병합하여 최종적으로 데이터 전체를 멤버로 하는 하나의 클러스터로 구성하는 방법이다. 분리형 계층적 클러스터링은 응집형과는 완전히 반대로 진행된다. 데이터 전체를 구성원으로 하는 한 개의 클러스터로 시작해 개별 데이터로 분리해나가는 식으로 클러스터를 구성한다.
  • 부분 군집화(partitional clustering)
부분 군집화는 클러스터의 계층을 고려하지 않는다. 평면적으로 클러스팅하는 방법으로 일반적으로 미리 몇 개의 클러스터로 나누어 질 것을 예상하고 클러스터의 갯수를 정한다. 데이터 세트 내에서 관측치를 유사성에 따라 여러 그룹으로 분류하는 데 사용된다.

알고리즘[편집]

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

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

활용[편집]

SQL서버[편집]

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

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

K-평균[편집]

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

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

인덱스[편집]

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

각주[편집]

  1. Markus Winand., 〈Clustering Data〉, 《USE THE INDEX, LUKE》
  2. Clustering〉, 《에이아이스터디》
  3. 데이터 클러스터〉, 《위키백과》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 데이터 클러스터 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.