본문 바로가기

Power BI

DAX란

Data Analysis eXpressions의 약자 인 DAX Microsoft Power BI, Microsoft Analysis Services Microsoft Power Pivot for Excel의 프로그래밍 언어입니다.

2010 년에 Microsoft Excel 2010 PowerPivot의 첫 번째 모습을 선보이게 되었습니다.  그 이후로 DAX DAX를 사용하여 Excel에서 Power Pivot 데이터 모델을 만들고 PowerBI Desktop에서도 사용되게 되었습니다.

DAX는 여러 도구에 있으며 모두 Tabular라는 동일한 내부 엔진을 공유합니다. 이러한 이유로 우리는 종종 이러한 모든 도구를 한 단어로 포함하는 테이블 형식 모델을 참조합니다.  DAX는 대부분의 프로그래밍 언어와 다르기 때문에 일부 새로운 개념에 익숙해지는 데 시간이 걸릴 수 있습니다. 

DAX 구조는 엑셀의 함수와 같은 모습을 하고 있기 때문에 그리 어렵지 않게 이해 있습니다. 하지만, 이면에는 데이터 모델이라는 구조를 이해해야 하고 가지 확실하게 이해되어야 하는 개념들이 있습니다. 이러한 개념구조를 확고히 정리 하면 그렇게 어렵지 않습니다. 여러분들의 포기 하지 않는 노력이 필요 합니다.

DAX 일반적인 프로그래밍 언어와는 대표적인 차이점은 흐름제어 또는 상태지속과 관련된 기능들은 제공하지 않습니다. 앞서 말한것과 같이 데이터 모델을 기반으로 적용된는 언어이고 목적은 데이터로 부터 사용자가 원하는 계산을 수행 하는 것입니다. 그렇기 때문에 데이터를 업데이트 하거나, 삽입, 삭제와 같은 데이터를 직접적으로 생산하는 활동에 관련된 기능은 제공하지 않습니다. DAX 통해서 기존에 있는 데이터 , 데이터 모델을 분석 있는 계산, 필터, 쿼리의 역할에만 국한 되어 있습니다. 이러한 제한된 기능은 분명 장단점이 있습니다.

우리는 DAX 정확히 어떤 목적을 기반으로 구현 되는 언어인지를 이해하고 그에 맞는 문법을 익혀서 우리가 원하는 작업을 가장 효율적으로 처리 있을지에 대해서만 고민 하면 됩니다.

잊지 마십시오. DAX 데이터를 변형하는 언어가 아니라 데이터를 분석 하기 위한 언어 입니다.

데이터 구성의 이해

DAX 기본 개념을 이해 하셨다고 한다면, 이제 우리가 DAX 통해서 다루고자 하는 데이터에 대해서 한번 살펴 필요가 있을 겁니다.

데이터는 테이블의 형태로 저장이 됩니다. 테이블은 2차원의 구조를 가지고 있으며, 여러분께서도 익히 알고 있는 열과 행으로 정의되어 구분되고 있습니다. 데이터 모델은 데이터를 담는 형태인 테이블이 여러 개가 서로 관계를 갖고 존재하는 집합체를 의미 하며, 테이블들은 서로 연관된 열을 기준으로 관련성을 맺고 있습니다. 우리는 이것을 관계라고 하며, 이는 추후 조금 자세히 다루겠지만 데이터 전체의 관점에서 본다고 하면 결국 하나의 덩어리 데이터를 관리상의 편리성을 목적으로 최소한의 작은 여러 개의 테이블들로 분해하고 이들 서로를 연결해 주는 관계를 통해서 정의를 하고 있는 입니다.

데이터를 이제는 조금 구체적으로 데이터모델을 분석 한다는 것은 결국 데이터 모델로 부터 유의미한 값을 계산하는 것을 의미 합니다. 이때 계산의 대상은 테이블을 구성하고 있는 행과 열에 대한 계산이 것입니다. 그리고, 특정 조건에 따른 필터를 적용 하게 것입니다. 아주 틀에서 결국 DAX라는 언어를 통해서 우리가 데이터 모델에 적용하는 분석의 대표적인 기능은 필터와 계산이 된다고 정리 할 수 있습니다. 이 계산을 통해서 얻어지는 값을 통산적으로 측정값이라고 부르게 됩니다.

앞서 말한 데이터 모델은 데이터를 담는 그릇의 관점에서 바라 본다고 하면 여러 테이블들이 관계를 맺고 있는 전체를 의미한다고 했습니다. 이제 분석의 관점에서 데이터 모델은 이러한 개념에 계산에 의해서 생성되는 측정값이라고 하는 요소까지 포함 시켜서 포다 포괄적인 의미에서 데이터 모델이라는 개념이 완성 된다는 것을 기억해 주시기 바랍니다.