SQL 사용자 Tip & 강좌
안녕하세요. 바쉬*^^*입니다.
이번 TechED 에서 진행된 내용 중 "Microsoft SQL Server 2008 R2 Parallel Data Warehouse Deep Dive" 세션을 소개하겠습니다.
세션링크 : http://www.msteched.com/2010/NorthAmerica/BIE309
원본 영상 다운로드 : http://ecn.channel9.msdn.com/o9/te/NorthAmerica/2010/wmv/BIE309.wmv
PPT 다운로드 : http://ecn.channel9.msdn.com/o9/te/NorthAmerica/2010/pptx/BIE309.pptx
이 세션에서는 올해 5월에 출시한 SQL Server 2008 R2에서 PDW(Parallel Data Warehouse) 에 대한 설명을 하고 있습니다.
먼저 PDW에 대해 간략하게 소개해 드리면,,
2008년 MS가 인수한 데이탈레그로(DATAllegro)사의 아키텍트를 활용하여 하드웨어에 최적화된 소프트웨어 구성 및 서비스를 어플라이언스(Applience) 형태로 제공하며 MPP(Massive Parallel Processing)을 도입한 것이 특징인데, 여기서 중요한 용어인 어플라이언스와 MPP에 대해 먼저 알아 보도록 하겠습니다.
어플라이언스는 전용장비 또는 빌트인이라고 할 수 있는데 세션에서도 강조하고 있는 부분으로 PDW 는 100TB 이상의 DW용량을 제공하고 HP와 함께 내놓은 패스트 트랙Fast Track)은 40TB급 DW 제품입니다. 한마디로 SW 따로 HW따로 사는 것이 아니라 통합된 제품으로 초기 용량도 일단 제한적일 수 있습니다. (PDW를 10TB로 할 순 없는 거죠, 그러면 아이팟 100MB를 살 수 없는거와 마찬가지….. ^^;;;)
대신 DBMS와 HW사가 손잡고 성능을 극대화 한 것이라 할 수 있습니다.
다음 용어인 MPP는 초병렬프로세싱으로 기존 SMP(Symmetric Multi Processing : 대칭형 멀티프로세싱)방식을 극복한 방법입니다. 기존 SMP는 멀티 프로세싱을 구현하는 방법 중 하나로 시스템에 장착된 프로세서가 하나의 메모리와 입출력 버스, 데이터 경로를 공유하는 방식으로 멀티 프로세싱을 하지만 프로세서가 많아 지면, 자원을 관리하는데 들어가는 비용이 많아져서 결국 효율성이 떨어 집니다.
대신 MPP방식은 각각의 프로세서가 고유한 메모리 영역과 입출력 버스를 사용하는 멀티 프로세싱 방법입니다.
아… 정말 서론이 길었습니다. 그럼 본론으로 넘어가면…
SQL Server 2008 R2 PDW는 Win2008 SP2에서 SQL Server 2008 R2 SP1cu5 이며, 어플라이언스 와 같이 SW와 HW의 통합된 것이라는 것, 시퀀스 IO의 성능을 극대화한 DB이며, 물리적으로는 여러 대의 서버지만 사용자가 보기엔 한대의 서버로 보이게 됩니다.
HW업체로는 HP, Dell, IBM, EMC와 같은 업체에서 지원합니다.
하드웨어 아키텍쳐는 다음과 같습니다.
앞 단에 Control Rack에 Control Nodes에서 쿼리를 받으면, Data Rack에 Compute Nodes를 이용하여
병렬처리를 하게 됩니다. 이때 Compute Nodes를 보면 MPP방식으로 저장 노드와 1:1 로 처리 됨을 알 수 있습니다. 결과는 최종적으로 Control Nodes로 모아지게 됩니다. 빠른 처리를 위하여 Ultra Shared Nothing이라는 방법을 사용하는데, 양이 적은 디멘젼 테이블 각 저장 노드에 가지고 있고 용량이 큰 팩트테이블은 나눠 가지고 있다가 Hash 분산을 이용하여 처리 하는 것입니다. 다음과 같이 처리할 때 분산해서 저장해야 할 조건 또는 키를 지정하는 것이 중요하다고 합니다.
많은 업체들이 MPP 방식의 어플라이언스 DW에 대해 많은 솔루션과 방법을 제시하고 있습니다. MS가 아직 최상의 리더는 아니지만 MS SQL 2008 R2를 기반으로 빠른 시간안에 리더 될 것 임이 분명합니다. (아래는 2010년 1월에 발표한 DW시장)
현재 전 Netezza 라는 어플라이언스 MPP DW를 이용하여 프로젝트를 진행하고 있는데, 성능이 월등합니다. 참고적으로 Netezza는 인덱스가 없습니다. DBMS에 인덱스가 없이도 이렇게 빠를 수 있구나 하고 일반적인 통념을 무색하게 할 정도입니다. 물론 둘 다 가격은 엄청납니다만. 가격대비 성능은 확실히 보장합니다.
결론적으로.. OLTP 쪽으로는 어떨지 모르겠지만, OLAP으로 최적임에는 분명합니다. MS SQL 2008 R2의 DW를 저도 하루 빨리 사용해 보았으면 합니다.~~일단 개인적으로 구매가 안되니깐 ㅋㅋ 회사에서 MS SQL 2008 R2 DW 으로 제안하고, 사용하는 고객이 빨리 늘었으면 하는 바램입니다…

안녕하세요, SQLER의 바쉬*^^*, 김상수입니다. 행복 하세욤~. ^.^
위세아이텍 연구소 책임 / SQLER 시샵 / BI Developer
E-Mail: bash1130@hotmail.com / Mobile: +82 10-6231-7672 / NateOn:bash1130@nate.com
- TechED 2010,
- sqler,
- BI,
- DW,
- MPP
결국 문제는 가격인데.....
일단 최소 10억이상은 될듯 합니다. 일단 서버수만 해도 최소 10대 가까이 들어가니깐염,
그 다음엔 투자 대비 얼마나 뽑을수 있느냐 인데,
중요한 분석 정보를 Ad-Hoc 쿼리를 날려서 빨리 알아 내려고 할때, 결국 그때 값어치를 할거같습니다.
정보에 대한 값어치는 상대적이니깐.. ㅋㅋ 일단 패스...
인덱스고려치않고 스타스키마조인등에서 빠른 성능으로 정보를 얻고자 할때.. 어디 까지나 사이트 마다
특성이 있으니깐염 ^^
다음에 기회가 되며 송혁님께 여쭤봐야 겠네염, 내부적으로 테스트 중이라고 전번에 말씀하셨는데~~

바쉬*^^*
코난

회사마다 슬로건이 있는데 제가보는 SQL Server 2008 R2 의 DW 기능은 정말 아닌듯 합니다. 어디서나 쓸만하고 쓸만하지 않은것은 CBC 겠지만 저걸 선택하는 날엔 앞날이 캄캄해 지는게 보이는게 왜일까요? 가트너의 그래프는 그냥 그려지는게 아닙니다.