#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관리