DBMS/AgensSQL

데이터 공존의 시대 실행가능한 인사이트를 제공하는 GOLAP(Graph-Oriented OLAP)

(주)비트나인 2023. 9. 3. 15:26

 오늘날 빠르게 변화하는 환경에서 데이터는 비즈니스의 방향과 전략 결정에 점점 더 중요한 영향력을 미치고 있습니다. 우리는 항상 의사결정을 내리는 상황에 접해있고 성공적인 의사결정을 하기 위해 가지고 있는 데이터를 활용합니다. 하지만 우리를 둘러싼 데이터는 더 다양해지고, 더 커지고, 더 복잡해지면서 계속 진화하고 있습니다. 이로 인해 실행가능한 인사이트를 제공하기 위한 데이터 탐색에 대해 지속적인 노력이 있었음에도 현재의 OLAP으로는 어려운 작업이 되었습니다.

이 글에서는 OLAP 기술에 대해서 살펴보고 현재의 데이터 환경에 적합한 새로운 개념인 GOLAP에 대해 설명하고자 합니다.

OLAP(Online Analytical Processing)에는 다양한 정의가 있지만 DW(Data Warehouse)에서 데이터를 활용하는 기술이라고 정리할 수 있습니다.

 

"의사결정 지원 시스템 가운데 대표적인 예로, 사용자가 동일한 데이터를 여러 기준을 이용하는 

다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와준다." - Wikipedia

 

"데이터 웨어하우스, 데이터 마트 또는 기타 중앙화된 통합 데이터 저장소의 대용량 데이터를 

고속으로 다차원 분석하는 소프트웨어입니다." - IBM

 

"대규모 비즈니스 데이터베이스를 구성하고 복잡한 분석을 지원하는 기술입니다." - Microsoft

"다양한 관점에서 비즈니스 데이터를 분석하는 데 사용할 수 있는 소프트웨어 기술입니다." - aws

 

즉, OLAP은 데이터기반 의사결정 과정에서 사용자가 대용량 데이터를 다양한 관점으로 질의하여 필요한 정보를 얻고, 데이터의 다차원 분석에 사용되는 소프트웨어 도구 및 기술입니다.

우리는 애플리케이션, 웹사이트, SNS, IOT Device 및 내부 시스템 등과 같은 다양한 데이터 소스에서 데이터를 수집하고 저장합니다. OLAP은 이렇게 수집된 데이터를 비즈니스 필요에 따라 결합하고 집계하고 그룹화하여 신속한 의사결정을 제공합니다. 예를 들어 e-commerce 업체의 경우 색상, 크기, 가격, 제조사, 가격 등 판매하는 모든 제품에 대한 데이터를 저장합니다. 또한 다른 시스템에서 주문한 제품 이름, 판매금액, 주문자 등과 같은 고객 구매 데이터를 수집합니다. OLAP는 이렇게 수집된 데이터들을 결합하여 어떤 제조사의 제품이 더 인기가 있는지 또는 제품 색상이나 판매가격이 판매에 미치는 영향과 같은 질의에 답합니다.

 

OLAP의 특징

OLAP는 지속적으로 증가하는 다양한 정보를 처리하고 다양한 관점의 질의를 가능하게 합니다. OLAP의 특징은 다음과 같이 정리할 수 있습니다.

 

신속한 의사결정 지원

관계형 데이터베이스에서 분석 쿼리를 수행하는 것은 여러 데이터 테이블을 검색하기 때문에 시간이 많이 걸립니다. 반면 OLAP 시스템은 데이터를 미리 계산하고 통합하므로 사용자는 필요할 때 더 빠르게 보고서를 생성할 수 있습니다.

 

Self Service 지원

OLAP 시스템은 분석 관련 지식이 없는 사용자가 직접 데이터에 접근하여 활용하는 것을 가능하게 합니다.

사용자는 데이터베이스 운영 방법을 배우는 대신 복잡한 분석 계산을 직접 수행하고 쉽게 보고서를 생성할 수 있습니다.

 

BI(Business Intelligence)통합

일반적으로 BI 시스템의 구성 요소로 사용되어 비즈니스 전반에 대한 통찰력을 얻고 데이터 기반 의사 결정을 내리는 데 도움이 됩니다. 의사결정권자는 큰 그림에서 기업의 전사에 설치 비즈니스 활동을 진단하고 문제를 해결할 수 있습니다. 또한, 최종 담당자가 필요한 데이터에 필요한 시간에 접근할 수 있도로 BI 솔루션등과 연계하여 전사의 모든 데이터를 연결합니다.

 

기존 OLAP의 유형

기존 OLAP 유형에는 크게 다차원 큐브를 생성하는 MOLAP, 관계형 OLAP인 ROLAP, 앞의 MOLAP과 ROLAP을 모두 지원하는 HOLAP 이 있습니다.

MOLAP(Multi-dimensional OLAP)

MOLAP은 다차원 OLAP으로 다차원 데이터를 저장하는 데이터큐브를 만들고 활용하는 유형입니다.

데이터 큐브에는 미리 계산된 데이터와 사용자가 요구한 질문에 대한 가능한 답변을 저장합니다.

결과적으로 사전에 계산되고 정의된 내용들을 저장하고 있기 때문에 사용자의 질의에 응답이 빠릅니다.

하지만 업데이트 시 사전 계산 정도와 데이터의 크기에 따라 시간이 오래 걸릴 수 있습니다.

소규모의 시스템과 데이터를 운용하는 경우 적합합니다.

하지만 새로운 요구사항이나 질의가 들어오면 다시 데이터큐브를 생성해야 하는 것과 같이  확장성이 떨어지고 데이터 중보를 허용하는 것으로 악명이 높습니다.

 

[그림 1, 지역/제품/시간으로 구성된 3차원 DataCube]

 

관계형 데이터베이스 테이블은 개별 데이터를 2차원 (행 X열)로 저장하는 구조입니다. 이 구조를 이용하는 경우 테이블에 저장된 다차원 데이터를 쿼리하고 분석할 수 있지만 데이터의 크기가 커지면 성능이 저하되고 다른 차원의 관점으로 결과를 보기 위해서는 결과를 재구성하는데 많은 작업이 필요합니다. 이때 데이터 큐브가 사용됩니다.

 

ROLAP(Relational OLAP)

ROLAP은 데이터 큐브를 사용하지 않고 관계형 데이터베이스의 테이블을 이용하여 직접 다차원 데이터분석을 수행합니다. 관계형 데이터베이스를 그대로 이용하기 때문에 데이터엔지니어는 직접 SQL을 사용하여 필요한 차원을 기반으로 정보를 탐색하며 관계형데이터베이스와의 직접 작동으로 사전계산이 필요하지 않습니다. ROLAP 유형에 적용되는 특수한 스키마(Star Schema, Snowflake Schema 등) 디자인에 따라 다르지만 일반적으로 본 데이터와 차원 테이블은 관계형 테이블로 저장되고 집계된 정보를 보관하기 위한 새 테이블이 생성됩니다. 

ROLAP에서는 사전에 계산된 데이터큐브를 사용하지 않고 질의에 필요한 데이터를 가져오기 위해 SQL을 이용하여 기존 관계형데이터베이스에 질의하기 때문에 데이터큐브의 내용에 제약 없이 어떤 질의든 할 수 있습니다.

 

[그림 2-1, Star Schema, Ref :  https://www.geeksforgeeks.org]

 



[그림 2-2, Snowflake Schema, Ref :  https://www.geeksforgeeks.org]

 

 

특별한 스키마를 사용하고 있지만 ROLAP은 기존 관계형데이터베이스 기반으로 SQL을 통해 다차원 쿼리, 보고 및 분석을 할 수 있고 대용량의 데이터 처리가 가능하며 차원의 확장이 용이합니다. ROLAP은  MOLAP 보다 상대적으로 느리며 집계테이블 생성을 위해 추가적인 ETL 작업이 필요합니다. 

 

HOLAP(Hybrid OLAP)

HOLAP은 MOLAP과 ROLAP이 함께 사용되는 것을 말합니다. 관계형 테이블에는 대용량의 데이터가 포함되며 데이터 큐브는 집계 및 예측 처리에 사용됩니다. HOLAP에는 MOLAP 및 ROLAP를 모두 지원하는 OLAP 서버가 필요합니다. 

HOLAP에서 ROLAP은 관계형 데이터베이스와 SQL을 이용하여 다차원 데이터에 대한 질의를 처리하고 MOLAP은 데이터큐브를 통해 다차원 데이터에 대한 저장과 처리 프로세스를 수행합니다. HOLAP은 우수한 확장성을 제공할 수 있지만, 관계형 데이터 소스에 액세스 하는 속도는 느립니다. 또한 복잡한 아키텍처로 인해 사용자 인터페이스가 가장 어렵고 관계형 데이터베이스와 다차원데이터베이스에 데이터를 저장하고 처리해야 하므로 유지관리 비용이 더 많이 들 수 있습니다.

새로운 유형의 OLAP 유형

실현가능한 인사이트를 얻기 위해서는 데이터 공존을 인정하고 공존하는 데이터를 잘 저장하고 함께 분석할 수 있는 데이터 환경의 변화가 필요합니다. 

고전적인 의사결정과정에서 조직은 주로 관계형데이터베이스에 저장되어 있는 정형데이터를 사용했습니다. 

하지만 현재는 IT 기술과 서비스의 발전으로 다양한 유형의 비정형 데이터를 저장할 수 있게 되면서 정형데이터와 비정형데이터가 동시다발적으로 생성되고 있고 이런 데이터들이 공존하고 있기 때문입니다.

 

현재까지 OLAP 시스템은 주로 정형데이터를 기반으로 데이터를 저장하고 분석했습니다. 하지만 비정형데이터에 대해서 OLAP 이 아닌 다른 방식의 시스템을 통해 데이터를 수집하고 분석하고 있습니다.

이 글에서는 이렇게 함께 생성된 데이터들을 한 곳에서 저장하고 분석하기 위한 새로운 OLAP에 대해 소개하고 있습니다.

OLAP에 대한 새로운 접근 GOLAP(Graph-Oriented OLAP)

GOLAP은 그래프지향 OLAP입니다. 간단히 말하면 정형데이터는 관계형데이터베이스를 비정형데이터는 Graph 모델을 이용하여 각 데이터 유형에 맞는 데이터 모델에 데이터를 저장하여 OLAP 시스템을 구성하는 것을 말합니다. 즉 아래의 그림과 같이 관계형데이터베이스 환경에서 Graph 모델을 함께 사용할 수 있는 환경을 제공하여 공존하는 데이터에 대해 유연하고 확장성 있는 분석을 가능하게 하는 것입니다.





 

[그림 3, PostgreSQL Extension을 통해 GOLAP을 지원]

 

 

GOLAP에서는 비정형데이터를 Graph Model로 정형데이터는 관계형 테이블로 저장합니다.

이것을 위해서 다양한 확장성을 지원하는 PostgreSQL을 기반 데이터베이스로 활용하고 PostgreSQL의 Graph Extension 인 ApacheAGE를 추가하여 GOLAP을 지원하는 환경을 구축할 수 있습니다.

GOLAP을 활용하면 기존의 매출동향, 손익보고 등과 같이 기존 OLAP 환경에서 제공되던 정보들은 PostgreSQL에 저장된 데이터를 활용하고, 더불어 ‘SNS가 지역별 매출에 미치는 영향’ , ‘고객 그룹과 제품 간의 상관관계’와 같은 정보들은 추가된 Graph Model에 데이터를 저장하여 관계를 위한 분석에 최적화된 환경을 제공합니다. 

이렇게 공존하는 정형데이터와 비정형데이터들 함께 분석하고 그 결과는 융합하여 지금까지와는 다른 인사이트를 얻을 수 있습니다.

 

또한 차원을 Graph에서 노드로, 관계를 에지로 표현하면 새 테이블을 만들거나 기존 테이블을 수정하지 않고도 차원을 동적으로 추가, 수정 또는 제거할 수 있습니다. 이 접근 방식은 경직된 차원 구조에 의존하는 기존 DW 설계와 달리 비즈니스 요구 사항의 변화를 수용하는 데 있어 더 많은 유연성과 확장성을 제공합니다.  

Apache AGE를 사용하면 기존 OLAP 시스템과 마찬가지로 OLAP 쿼리를 수행하고, 데이터를 조각화하고, 드릴업/드릴다운하고, 다양한 관점에서 데이터를 볼 수 있어 관점(차원)에 대한 변화에 효율적으로 처리할 수 있다는 장점이 있습니다. 

요약하자면, Apache AGE를 사용하면 비즈니스 요구사항이 변경될 때마다 차원을 생성해야 하는 문제를 해결하는 데 도움이 될 수 있습니다. 또한 Apache AGE의 그래프 데이터베이스 기능을 활용하면 차원과 그 관계를 보다 유연하고 적응적인 방식으로 모델링하여 변화하는 비즈니스 요구사항을 보다 쉽게 수용할 수 있습니다.

 

 

글 : 오상민 팀장 ( 비트나인 글로벌 사이언스팀 )