본문 바로가기

데이터베이스(DA, AA, TA)/대용량DB

(11)
[대용량DB] 여부 컬럼 처리 데이터 모델 작성시, 많이 나타나는 속성 중에 하나가 여부속성 즉 여부컬럼입니다. 여부 컬럼은 테이블상에 보통 _YN, _FLAG로 끝나는 컬럼입니다. 모델링을 할때마다 여부 컬럼을 어떻게 구현해야할까요? 항상 고민거리가 되는 부분입니다. 심한 경우 한 테이블에 여부 컬럼이 백여개 이상인 것들도 존재합니다. 상황에 따라 모델 구성이 제각각으로 이루어질 수 있다고 하지만, 가만히 그 내부를 살펴보면 몇가지 규칙 및 패턴이 있습니다. 이제 모델링 프로젝트에 투입시에 매번 똑같은 고민을 하지말고 패턴을 잘 적용하여 좀 더 알차게 적용해보겠습니다. 여부 컬럼들은 주로 핵심 혹은 메인 테이블에서 발생하곤 합니다. 어떤 여부 컬럼들이 있을까 한번 나열해보겠습니다. 아래는 상품 테이블에서 봄직한 속성들입니다. 사용여..
[대용량DB] OLAP 이해하기 OLAP 이해하기 OLAP(Online Analytical Processing)의 종류는 선계산된 값들을 어떻게 저장하느냐에 따라 구분을 짓습니다. 크게는 ROLAP와 MOLAP으로 구분을 지을 수 있으며 DOLAP이라던지 HOLAP라는 것이 존재합니다. OLAP의 종류를 설명하기 전에 OLAP에서 사용되는 대부분의 소스는 릴레이션(테이블)을 기반으로 하고 있습니다. OLTP 시스템의 다양한 원천 데이터에서 데이터 웨어하우스라는 것을 1차적으로 구축하게 됩니다. 데이터웨어하우스는 다양한 원천 데이터에서 필요로 하는 데이터들을 수정, 가공하여 저장해 둔 것입니다. 이렇게 가공된 웨어하우스의 데이터들은 OLAP이나 마이닝 등을 통해 DSS, ERP 등의 분야에서 사용하게 됩니다. 다음은 OLAP 시스템의 기..
[대규모데이터] 대규모 데이터를 다루기 위한 기초지식 프로그래머를 위한 대규모 데이터 기초지금까지 살펴본 바와 같이 대규모 데이터는 메모리에서 처리하기 어렵고 디스크는 느립니다. 또한 분산하기도 곤란하다는 어려움도 있습니다. 그렇지만 힘들다고 해서 숟가락을 내던질 수는 없습니다. 대규모 데이터를 다루는 방법은 두가지 관점에서 바라볼 수 있습니다. [1] 프로그램을 작성할 때의 요령[2] 프로그램 개발의 근간이 되는 기초라는 점에서 전제로서 알아두었으면 하는 것 대규모 데이터를 다루는 세 가지 급소대규모 시스템을 고민하게 만드는 대규모 데이터를 다루는 포인트는 '어떻게 하면 메모리에서 처리를 마칠 수 있을까?'라는 점입니다. 메모리에서 처리를 마쳐야 하는 이유는 앞서 설명한 대로 디스크 seek 횟수가 확장성, 성능에 크게 영향을 주기 때문입니다. 디스크 s..
[대규모데이터] 규모조정의 요소 데이터가 커지면 그 속도차에 기인하는 문제가 복잡해지기 쉽습니다. 이런 사항들이 시스템 전체의 확장성 전략에 어떤 영향을 주게 됩니다. 대규모 환경이라고 하면 서버를 여러 대 나열해놓고 그 서버로 부하를 분산하게 됩니다. 웹 서비스에서 자주 거론되는 규모조정(scaling), 확장성(scalability)은 그런 종류의 이야기입니다. 웹 서비스에서는 고가의 빠른 하드웨어를 사서 성능을 높이는 '스케일업(scale-up)' 전략보다도 저가이면서 일반적인 성능의 하드웨어를 많이 나열해서 시스템 전체 성능을 올리는 '스케일아웃(scale-out)' 전략이 주류입니다. 개별적인 이유는 다양하겠지만, 스케일아웃 전략이 더 나은 이유는 웹 서비스에 적합한 형태이고 비용이 저렴하다는 점과 시스템 구성에 유연성이 있다..
[대용량DB] 대규모 웹 서비스란? 대규모 웹 서비스 대규모 웹 서비스란, 거대한 데이터를 처리해야만 하는 웹 서비스를 말합니다. 대규모 서비스의 규모감, 대규모 데이터를 다루는 데 있어 어려운 점, 개발 모습을 인지하는 것은 대규모 서비스 개발자에게 필요되는 지식입니다. 사용자가 이용하고 있는 대규모 서비스에 변경을 가할 때 규모를 고려하지 않고 어중간하게 구현해서 적용하다 보면, 시스템 정지를 초래할 수 있습니다. 대규모 웹서비스에 대해 알아보기전 크게 다음에 대한 개념을 잡고 가는 것이 좋습니다. 대규모 웹 서비스 개발이란?- 대규모 데이터를 다룰 때의 과제, 다루기 위한 기본적인 사고방식과 요령. ex) OS의 캐시(cache) 기능이나 대규모 데이터를 전제로 한 DB 운용 방법- 알고리즘과 데이터 구조 선택의 중요성. 대규모 데이..