#title 데이터 웨어하우징을 위한 기초로서 기반구조
[[TableOfContents]]

==== 구조(architecture) vs 기반구조(infrastructure) ====
 * 구조: 데이터 획득, 데이터 저장장치, 정보전달의 각각의 구성요소들
 * 기반구조
  * DW구조를 지원
  * 기본적인 컴퓨팅 플랫폼으로 필수적인 H/W 및 OS를 포함
  * DBMS
  * S/W Tools
  * H/W, S/W, OS, Network S/W, DBMS, LAN/WAN, Vendor Tools, People, Procedures, Training 등
 * 구조분류
  * 운영 기반구조
   * 사람(개발이 아닌 유지보수를 위한 사람)
   * 절차(개발이 아닌 유지보수를 위한 절차)
   * 훈련
   * 관리 소프트웨어
  * 물리 기반구조
   * H/W (가장 우선 결정해야 함)
   * OS
   * DBMS
   * Network S/W
   * 포괄적 플랫폼이어야 함
   * 두 가지 관리 원칙
    * 현재의 물리적 기반구조 유지
    * 기반기조를 되도록 모듈로 유지

==== 하드웨어와 운영체제 ====
하드웨어 선택을 위한 지침
 * 확장성(scalability): 사용자수, 질의수, 질의복잡도가 성장함에 따른 확장성 고려
 * 지원: 벤더의 지원
 * 벤더 레퍼런스: 하드웨어의 다른 곳에서 사용한 성공 사례
 * 벤더 안정성

운영체제 선택을 위한 지침
 * 확장성
 * 보안
 * 신뢰성
 * 가용성
 * 선점 멀티태스킹
 * 멀티쓰레드
 * 메모리 보호

플랫폼 옵션
 * 단일 플랫폼
  * 호환성 문제나 인터페이스 문제가 거의 없다
  * 레가시 시스템의 확장성의 한계로 단일 플랫폼이 어려운 경우가 많다.
  * DW를 위한 도구를 해당 플랫폼에서 사용하지 못할 경우는 단일 플랫폼으로 선택되지 않는다.
  * 다수의 기존 플랫폼이 있을 수 있다.
  * 회사의 정책(하나의 플랫폼을 영구적으로 가져가지 않는다)
 * 혼합옵션
  * 조사 후 단일 플랫폼내에 DW의 모든 구성요소가 있다면 단일 플랫폼으로 접근하라.

==== 서버 하드웨어: SMP(Symmetric Multiprocessing) ====
attachment:smp.jpg

 * 특징
  * Shared-Everything 구조로 가장 간단한 병렬처리 
  * 공용 버스를 이용하여 공유된 메모리를 완전한게 접근
  * 프로세서 사이의 통신은 공유된 메모를 통해 이루어짐
  * 모든 프로세서는 디스크 컨트롤러들에 접근 가능
 * 장점
  * 1970년 초반부터 사용된 증명된 기술 
  * 높은 동시성(Concurrency)를 제공
  * Load Balancing이 뛰어남
  * 단순한 설계이므로 서버 관리가 쉬움
 * 한계
  * 이용 가능한 메모리의 제한
  * 프로세서간의 통신, I/O, 버스 통신의 대역폭에 의한 제한
  * 이용 가능성 제한

==== 서버 하드웨어: Cluster ====
attachment:cluster.jpg

 * 특징
  * 각 노드는 하나 이상의 프로세서들과 결합된 메모리로 구성
  * 메모리는 노드사이에 공유되지 않음
  * 통신의 고속의 버스를 통해 이루어짐
  * 각 노드는 공용의 디스크 집합으로 접근
 * 이점
  * 고가용성
  * 하나의 데이터베이스 개념 유지(가상화)
  * 점진적인 증가에 적합
 * 한계
  * 버스의 대역폭은 시스템 확장성을 제한
  * 운영체제의 오버헤드로 작용
  * 각 노드는 데이터 캐쉬를 가짐. 데이터 캐쉬는 일관성을 유지해야 함. 

==== 서버 하드웨어: MPP(Massively Parallel Processing) ====
attachment:mpp.jpg
 * 특징
  * Shared-Nothing 구조
  * 메모리 보다는 디스크 접근에 더 집중된 구조
  * 투명한 디스크 접근을 지원하는 운영체제에서 잘 작동
  * 디스크의 접근은 소유한 프로세서에 의해 전적으로 의존함
  * 노드 사이의 통신은 프로세스-프로세스 연결로
 * 이점
  * 확장성이 높다
  * 노드들 사이의 빠른 접근을 제공
  * 고장은 고장난 노드에만 한정됨 (고가용성)
  * 노드 당 비용이 낮음
 * 한계
  * 엄격한 데이터 분할을 요구
  * 데이터 접근이 제한
  * 작업의 로드밸런싱 제한
  * 캐쉬 일관성은 유지되어야 함

==== 서버 하드웨어: NUMA(Non-uniform Memory Architecture) ====
attachment:numa.jpg

 * 특징
  * 가장 새로운 구조 (1990년대 초부터 개발됨)
  * 하나의 큰 SMP가 더 쉽게 구축할 수 있는 작은 SMP 쪼개진 것과 같다
  * 하드웨어는 모든 메모리 단위를 하나의 거대한 메모리로 간주
  * 시스템은 전체 기계에 걸쳐 단일의 실제 메모리 주소를 가짐
  * 메모리 주소는 첫 번째 노드에서 1로 시작해서 계속됨
  * 각 노드는 그 노드 안에서 메모리 주소의 디렉토리를 포함
  * 첫 번째 노드가 세번째 노드의 메모리에 있는 값을 필요로 할지도 모르기 때문에 메모리 값을 검색하는데 필요한 시간의 양은 변화함 -> 불균일 메모리 접근 구조라 불리는 이유
 * 이점
  * 최대의 유연성 제공
  * SMP의 메모리 한계를 극복
  * SMP보다 더 좋은 확장성
 * 한계
  * NUMA 구조 프로그래밍은 MPP보다 더 복잡
  * NUMA에 대한 소프트웨어 지원이 상당히 제한적
  * 기술이 성숙중인 단계

==== DBMS 선택 ====
 * 병렬 옵션
  * 질의간 병렬화: 다중 질의간 공유되는 연산에 대한 병렬실행(ex: MS-SQL의 공유스캔)
  * 질의 내부 병렬화: 병렬쿼리
   * 수평 병렬성
   * 수직 병렬성: 파이프라인 방법으로 실행됨.
   * 혼합방법
 * DBMS 주요 특징
  * Query Governor
  * Query Optimizer
  * Query Managment
  * Load Utility
  * Metadata Management
  * Scalability(비례확장성)
  * Extensibility(확장성)
  * Portability(이식가능성)
  * Query Tool API
  * Administrator

==== 도구 ====
 * 구조 먼저, 그 다음에 도구
 * 데이터 모델링
 * ETL
 * 데이터 품질
 * 질의/보고서
 * OLAP
 * 경보 시스템
 * 미들웨어와 연결성
 * DW관리