BI

DW/ETL - 관계형 데이터 베이스, 인메모리 데이터베이스

초롱불 2024. 7. 2. 22:17

개요

이번 글에서는 데이터 웨어하우스에서 사용되는 데이터베이스에 대해서 알아본다. 관계형 데이터베이스, 인메모리 데이터베이스에 대하여 대략적인 개념을 정리해보고 이를 통하여 데이터웨어하우스 측면에서 데이터 분석이 어떻게 이루어지고 발전했는지 확인한다.

 

관계형 데이터베이스

관계형 데이터베이스는 데이터를 테이블 형태로 저장한다. 테이블은 행과 열로 구성되어 있으며 각 열은 특정 속성을, 각 행은 개별 데이터를 나타낸다. SQL이라는 언어를 통하여 데이터를 쿼리할 수 있다.

테이블은 각 행을 고유하게 식별하기 위해 기본 키를 사용한다. 기본 키는 중복되거나 비어 있을 수 없으며 이를 통해 각 행을 유일하게 식별할 수 있다. 또한, 외래 키를 통해 다른 테이블의 기본키를 참조할 수 있다. 이를 통해 여러 테이블 간의 관계를 형성하고 조인 쿼리를 사용해 데이터를 결합할 수 있다.

 

관계형 데이터베이스의 탄생은 데이터 분석에 변화를 가져왔다. 이전에는 하나의 테이블에서 데이터를 쿼리하는 것이 일반적이었으나 관계형 데이터베이스를 통해 여러 테이블의 데이터를 결합하고 더 많은 맥락을 얻을 수 있게 된다. 이는 OLAP의 발전을 가능하게 하였고 데이터 웨어하우스의 핵심 요소가 된다.

 

관계형 데이터베이스 관리 시스템으로는 Postgre, Oracle, MS SQL Server, Sybase 등이 있으며 Amazon RDS나 Azure SQL같은 클라우드 서비스도 많이 사용된다.

 

인메모리 데이터베이스

인메모리 데이터베이스는 데이터를 메모리에 저장하여 디스크에서 데이터를 불러오는 시간을 없앤다. 전통적인 데이터베이스는 데이터를 디스크에 저장하고 쿼리 시 데이터를 메모리로 불러오는 과정에서 시간이 소요된다. 반면에 인메모리 데이터베이스는 모든 데이터를 메모리에 저장하여 쿼리 성능을 극대화 한다.

이 기술은 데이터마트와 같은 높은 쿼리 성능이 필요한 곳에서 주로 사용된다. 데이터가 행 대신 열 단위로 저장되어 스캔 성능이 향상되며 병렬 쿼리 계획을 통해 큰 쿼리를 여러 부분으로 나누어 동시에 처리할 수 있다. 이러한 방식으로 쿼리 성능이 크게 향상된다.

 

그러나 인메모리 데이터베이스는 데이터의 내구성 문제가 있다. 메모리에 저장된 데이터는 전원이 꺼지거나 데이터베이스가 리셋되면 사라질 수 있다. 이를 해결하기 위해 스냅샷이나 이미지를 생성하여 특정 시점의 데이터를 저장하거나 데이터베이스를 업데이트하기 전 디스크에 데이터를 저장하는 방법을 사용한다.

 

인메모리 데이터베이스는 높은 비용이 발생하며 데이터 양이 증가하는 것에 따라 비용 문제가 더욱 심각해진다. 따라서 특정 용도에만 인메모리 데이터베이스를 사용하는 것이 합리적이다. 

SAP HANA, Microsoft In-memory Tables, Oracle, Amazon MemoryDB 등이 인메모리 데이터베이스이다.

 

결론

관계형 데이터베이스와 인메모리 데이터베이스에 대해서 정리해보았다. 현업에서는 기본적으로는 관계형 데이터베이스를 사용하였으나 SAP를 사용하는 기업에서는 HANA DB를 사용하기에 인메모리 DB를 활용할 일도 많이 있었다. 데이터웨어하우스를 이용한 데이터분석은 데이터의 양이 많고 현업의 요구사항이 다양한만큼 많은 성능상 문제를 야기한다. 대시보드의 화면이 로드되는데까지 걸리는 시간이 30초가 넘어가는 경우도 곧잘 볼 수 있었다. 이런 문제를 해결하기 위해서라도 데이터웨어하우스에서 인메모리 데이터베이스의 활용은 고려해야할 사항이며 또한 현업과의 조율을 통하여 요구사항을 최소화하는 것도 필수불가결한 영역이다.