BI 19

Lumira 대시보드 리팩토링 정리

개요오늘은 최근 열중하고 있는 업무에 대해서 간단히 정리해보려고 한다. 작업량이 워낙 많다보니 블로그 글을 쓸 여유를 가지지 못했고 마지막 포스팅으로부터 일주일이라는 시간이 지나버렸다. 어떻게든 틈을 내서 블로그 글을 쓸 시간은 내었으나 포스팅할만한 주제가 떠오르지 않아서 최근 열중하고 있는 업무 그 자체를 포스팅해봐야겠다고 생각했다.Lumira 소개SAP Lumira Designer는 웹 대시보드 개발을 위한 툴이다. SAP에서 제공하는 다른 BI 툴인 WebI나 SAC와 비교하면 차원을 추가했다가 뺐다가 하는 식의 능동적인 분석이 제한적이고 개발 인터페이스도 현대적이지 못하며 온 프레미스 시스템위에서 동작한다는 점 등 구시대적면이 있는 BI툴이다. 그렇지만 명백한 장점도 있다. 그것은 SAP에서 제공..

BI 2025.04.08

자주하는 증감률 계산 실수

개요대시보드나 보고서를 유지보수 하다보면 이전 개발자들이 잘 못 짠 로직에 대하여 수정 요청이 올때가 많다. 일반적인 조건에서 괜찮게 보이다가 특정 조건에서는 문제가 생기는 로직이 그런 문제를 만든다. 이번에 들어온 증감률 계산 실수를 기록하여 가능한 실수를 줄일 수 있었으면 해서 이 글을 쓴다.본문증감률은 보고서에서 많이 쓰는 비율이다. 예산 대비 증감률이라고 한다면 (실적 - 예산) / 예산 * 100 이라는 형식으로 이루어진다. 보고서를 요청하는 측에서 이러한 형태의 로직을 알려줄 것이다. 현업팀 입장에서는 예외 상황에 대하여 디테일한 로직을 알려줄 의무가 없기에 로직을 짜는 IT 팀에서 각 예외 상황에 대한 고려를 할 필요가 있다.가장 대표적인 예외 상황은 0으로 나누기이다. 이건 너무 유명하고 ..

BI 2025.03.14

DW/ETL - 기간 누계(YTD, MTD) 데이터

개요DW 비즈니스 환경에서는 기간 단위로 누계 데이터를 요구하는 케이스가 무척 많다. 대표적으로 연 누계(Year-To-Date, YTD)와 월 누계(Month-To-Date, MTD)이다. 연 누계란 특정 년도의 시작일부터 기준일까지의 누적 데이터를 의미하며 MTD는 특정 월 시작일부터 기준일까지의 누적데이터를 의미한다. 이 두가지 누계 데이터가 많이 사용되는 이유는 비즈니스 환경에서 데이터를 유의미하게 나누는 기준이 년, 월 단위이기 때문이다. 년, 월 단위 누계 데이터를 조회할 경우 성장세, 목표달성률, 트랜드 등을 한 눈에 보기 편하고 유의미한 전략적 의사결정을 내리기 쉽다. 따라서 기간 누계 데이터를 다루는 방법에 대해서 알 필요가 있다.MTD와 YTD 물리 적재의 문제점우선 DW에서는 MTD,..

BI 2024.07.27

DW/ETL - 팩트 테이블 가산성 및 NULL 값처리

개요팩트 테이블은 실적, 판매 수량과 같은 수치를 차원 ID 들과 함께 매핑하여 저장하는 테이블이다. 이때 저장되는 데이터를 몇 가지 특징으로 나눌 수 있다. 이 특징에 따라서 해당 수치값을 어떻게 저장해야 하는지, 어떻게 계산하여 새로운 마트로 구성할 수 있는지가 다를 수 있다. 이글에서는 이 부부에 대해서 다루어 보고자 한다. 가산성수치값은 대부분 합산하여 활용하는 것이 직관적이다. 하지만 모든 수치값이 합산하여 계산할 수 있는 것은 아니다. 합산해서는 안 되는 값을 합산하여 계산하여 활용하거나 저장할 경우 의미없는 데이터를 조회하게 될 뿐이다. 이를 방지하기 위해서라도 저장되는 데이터의 가산성에 대해서 제대로 이해하고 있을 필요가 있다. 데이터의 가산성은 완전 가산성, 반 가산성, 비가산성으로 나눌..

BI 2024.07.18

DW/ETL - 스타 스키마와 스노우플레이크 스키마

개요스타스키마와 스노우 플레이크 스키마는 데이터웨어하우스와 데이터 마트에서 많이 사용되는 스키마이다. 차원과 팩트 테이블로 나누어지고 중앙에 팩트 테이블이 존재하는 스키마라는 점에서 둘은 동일하나 세부적인 면에서 차이가 있다. 이 글에서는 이 두 스키마에 대해서 정리해보도록 하겠다. 스타스키마구성 요소팩트 테이블: 주요 비즈니스 이벤트나 트랜잭션 데이터를 저장한다. 예를 들어, 매출, 수익, 판매량 등의 측정 값이 포함된다. 팩트 테이블은 외래키를 통해 차원 테이블과 연결된다.차원 테이블: 분석에 필요한 다양한 속성을 저장한다. 예를 들어 시간, 제품, 고객, 지역 등이 차원 테이블에 해당한다. 차원 테이블은 각 속성을 설명하는 컬럼들을 가지고 있으며 주로 비정규화된 형태로 저장된다.비정규화비정규화는 데..

BI 2024.07.12

DW/ETL - 팩트 테이블과 차원 테이블 설계

개요데이터웨어하우스의 설계에서 팩트 테이블과 차원 테이블은 데이터를 효율적으로 저장하고 분석하기 위해 필수적인 요소이다. 이번 글에서는 팩트 테이블과 차원 테이블의 설계 방법에 대해 자세히 알아보도록 하겠다.팩트 테이블 설계팩트 테이블은 비즈니스 이벤트나 활동을 나타내는 데이터를 저장한다. 주로 수량, 금액, 획수 등의 측정값을 포함한다. 팩트 테이블은 다음과 같은 단계를 따른다.측정값 정의:팩트 테이블에 저장할 측정값을 정의한다. 예를 들어, 판매 데이터의 경우 판매량, 매출액, 할인 금액 등이 측정값이 될 수 있다.핵심 이벤트 식별:팩트 테이블은 특정 비즈니스 이벤트를 나타내므로 어떤 이벤트를 저장할 것인지 결정한다. 예를 들어, 판매 이벤트, 주문 이벤트, 클레임 이벤트 등이 있을 수 있다.키 구성..

BI 2024.07.08

DW/ETL - 차원 모델링

개요이 글에서는 차원 모델링이 무엇인지, 차원 모델링은 왜 필요한지를 정리한다. 차원 모델링은 데이터 웨어하우스를 학습하면서 주로 접하게 되는 개념이다. 데이터를 효율적으로 저장하고 분석하기 쉽게 구조화하는 기법으로 데이터 웨어하우스 설계의 핵심적인 부분을 차지한다. 이에 대해서 자세히 알아보도록 하겠다. 차원 모델링차원 모델링은 데이터를 특정한 방식으로 조직화하는 방법으로 주로 데이터웨어하우스에서 사용된다. 데이터 웨어하우스는 보고서 작성과 OLAP 용도로 데이터를 사용하기 때문에 사용성과 성능이 중요하다. 차원 모델은 이러한 요구사항을 충족시키기 위한 최적의 방법이다.차원 모델링의 주요 구성 요소는 다음과 같다.펙트 테이블비즈니스 활동이나 사건을 나타내는 측정값(예: 판매량, 수익 등)을 저장한다.많..

BI 2024.07.06

DW/ETL - Operational Data Storage(ODS)

개요이 글은 Operational Data Storage(이하 ODS)에 대해서 알아보고 데이터 웨어하우스와의 차이는 무엇인지 정리해보는 것을 목적으로 한다. 데이터를 통합하여 다루는 시스템을 하나 더 배움으로써 데이터를 관리하고 통합하는 측면의 지식의 폭을 더욱 넓힐 수 있다.ODS란?ODS는 여러 운영 시스템의 데이터를 하나의 데이터베이스에 통합하는 시스템이다. 이는 데이터 웨어하우스와 유사하다고 볼 수 있지만 ODS는 실시간 운영적 의사 결정을 지원한다는 점에서 차이가 난다..ODS와 데이터 웨어하우스의 차이점사용 목적: 데이터 웨어하우스는 주로 분석 및 전략적 의사 결정을 지원하는 반면 ODS는 실시간 또는 거의 실시간 운영적 의사 결정을 지원한다.데이터 갱신 빈도: 데이터 웨어하우스는 하루에 한..

BI 2024.07.04

DW/ETL - OLAP 큐브

개요OLAP 큐브는 데이터 분석을 위한 강력한 도구로 다차원 데이터 모델을 통해 데이터를 효율적으로 분석할 수 있도록 한다. 이 글에서는 큐브의 개념과 데이터 웨어하우스에서의 역할을 다루어보도록 하겠다.OLAP의 정의와 목적OLAP은 다차원 데이터 분석을 지원하는 기술로 대량의 데이터를 빠르게 쿼리하고 분석하는 데 중점을 둔다. 주요 목적은 사용자가 복잡한 쿼리를 수행하고 다양한 각도에서 데이터를 분석하여 의사 결정을 지원하는 것이다. OLAP 큐브로 접근하는 데이터는 물론 SQL 쿼리로 접근도 가능하지만 개발자가 아닌 실무자의 입장에서 SQL은 접근성이 낮고 SQL 개발자의 입장에서도 동적인 데이터 접근을 구현하기에는 한계가 있다. 이를 보완할 수 있는 것이 OLAP 큐브이다.다차원 데이터 모델OLAP..

BI 2024.07.03

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

개요이번 글에서는 데이터 웨어하우스에서 사용되는 데이터베이스에 대해서 알아본다. 관계형 데이터베이스, 인메모리 데이터베이스에 대하여 대략적인 개념을 정리해보고 이를 통하여 데이터웨어하우스 측면에서 데이터 분석이 어떻게 이루어지고 발전했는지 확인한다. 관계형 데이터베이스관계형 데이터베이스는 데이터를 테이블 형태로 저장한다. 테이블은 행과 열로 구성되어 있으며 각 열은 특정 속성을, 각 행은 개별 데이터를 나타낸다. SQL이라는 언어를 통하여 데이터를 쿼리할 수 있다.테이블은 각 행을 고유하게 식별하기 위해 기본 키를 사용한다. 기본 키는 중복되거나 비어 있을 수 없으며 이를 통해 각 행을 유일하게 식별할 수 있다. 또한, 외래 키를 통해 다른 테이블의 기본키를 참조할 수 있다. 이를 통해 여러 테이블 간의..

BI 2024.07.02