Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

데이터 웨어하우스의 구현은 무엇입니까?

<시간/>

데이터 웨어하우스에는 엄청난 양의 데이터가 포함되어 있습니다. OLAP 서버는 의사결정 지원 쿼리가 몇 초 단위로 승인되도록 요구합니다. 따라서 데이터 웨어하우스 시스템은 매우 효과적인 큐브 계산 기술, 액세스 기술 및 쿼리 처리 기술을 제공하는 것이 필수적입니다.

데이터 큐브의 효율적인 계산

다차원 데이터 분석의 핵심은 여러 차원 집합에서 집계를 효율적으로 계산하는 것입니다. SQL 용어에서 이러한 집계를 그룹화 기준이라고 합니다. 각 group-by는 입방체로 나타낼 수 있으며, 여기서 group-by의 집합은 데이터 큐브를 정의하는 입방체의 격자를 형성합니다.

기본 직육면체가 주어진 데이터 큐브 구체화에는 세 가지 선택이 있습니다.

  • 구체화 없음 − "기본이 아닌" 직육면체를 미리 계산하지 않습니다. 이로 인해 매우 느릴 수 있는 값비싼 다차원 집계를 즉석에서 계산하게 됩니다.

  • 완전한 구체화 − 모든 직육면체를 미리 계산할 수 있습니다. 계산된 입방체의 결과 격자는 전체 입방체로 정의됩니다. 이 선택은 일반적으로 미리 계산된 모든 직육면체를 저장하기 위해 엄청난 양의 메모리 공간이 필요합니다.

  • 부분적 구체화 - 가능한 직육면체의 전체 집합의 적절한 부분 집합을 선택적으로 계산할 수 있습니다. 또는 각 셀의 튜플 수가 일부 임계값을 따르는 위치를 포함하여 일부 사용자 지정 기준을 충족하는 셀만 포함하는 큐브의 하위 집합을 계산할 수 있습니다.

OLAP 데이터 인덱싱

효율적인 데이터 액세스를 지원할 수 있으며 일부 데이터 웨어하우스 시스템은 인덱스 구조 및 구체화된 뷰(입방체 사용)를 제공합니다. 비트맵 인덱싱 접근 방식은 데이터 큐브에서 빠른 검색을 가능하게 하기 때문에 OLAP 제품에서 유명합니다. 비트맵 인덱스는 레코드 ID(RID) 목록의 대체 표현입니다.

주어진 속성에 대한 비트맵 인덱스에는 속성 도메인의 각 값 v에 대해 고유한 비트 벡터 Bv가 있습니다. 주어진 속성의 도메인에 n개의 값이 포함되어 있으면 비트맵 인덱스의 각 항목에 대해 n개의 비트가 필요합니다(즉, n개의 비트 벡터가 있음). 속성에 데이터 테이블의 주어진 행에 대한 값이 있는 경우 해당 값을 정의하는 비트는 비트맵 인덱스의 해당 행에서 1로 설정됩니다. 해당 행의 다른 모든 비트는 0으로 설정됩니다.

OLAP 쿼리의 효율적인 처리

입방체를 구체화하고 OLAP 인덱스 구조를 구성하는 목적은 데이터 큐브에서 쿼리 처리 속도를 높이는 것입니다.

  • 사용 가능한 직육면체에서 수행해야 하는 작업 결정 − 여기에는 쿼리에 표시된 일부 선택, 프로젝션, 롤업(그룹별) 및 드릴다운 작업을 해당 SQL 및/또는 OLAP 작업으로 변환하는 작업이 포함됩니다. 예를 들어, 데이터 큐브를 슬라이싱하고 다이싱하는 것은 구체화된 직육면체에 대한 선택 및 투영 작업에 해당할 수 있습니다.

  • 관련 작업을 적용해야 하는 구체화된 직육면체 결정 − 여기에는 쿼리에 응답하는 데 잠재적으로 사용할 수 있는 일부 구체화된 입방체 식별, 입방체 간의 "지배" 관계에 대한 지식을 사용하여 다음 집합 잘라내기, 나머지 구체화된 입방체 사용 값 추정 및 최소 비용으로 입방체 선택이 포함됩니다.