전문가를 위한 DAX 완벽 가이드 (파워 BI, 엑셀, SSAS에서 활용하는 DAX | 2 판)

전문가를 위한 DAX 완벽 가이드 (파워 BI, 엑셀, SSAS에서 활용하는 DAX | 2 판)

$53.65
Description
DAX(Data Analysis eXpressions)는 마이크로소프트의 파워 BI, SSAS 및 엑셀의 파워 피봇에 사용되는 프로그래밍 언어다. DAX는 2010년에 엑셀 2010에서 선보인 파워 피봇 도입과 함께 만들어져, 이제는 파워 BI 및 SSAS에서도 모델링 도구로 활용되고 있다.
이 책은 DAX에 관한 모든 것을 이해하고 싶은 독자를 대상으로 한다. DAX를 다뤄본 적이 없어도 파워 BI에 대한 기본 지식과 데이터 분석 경험이 있다면, 이 책을 통해 DAX 전문가로 발전할 수 있을 것이다.
저자

마르코루소

MarcoRusso
sqlbi.com의창립자로해당사이트에파워BI,파워피봇,DAX및SQL분석서비스(SSAS)에관한글을정기적으로게시하고있다.파워피봇의첫베타버전이공개된2009년이후줄곧DAX전문가로활동하고있으며,이기간sqlbi.com은DAX의주요배움터로자리매김했다.그들이진행하는온·오프라인강의과정도DAX를배우는많은사람에게사랑받고있다.
마이크로소프트기술에기반한BI관련컨설팅및멘토링도수행한다.파워BI,DAX및SSAS에관한책과논문도여러편썼으며,daxpatterns.com,daxformatter.com및dax.guide에콘텐츠를제공해DAX사용자를지속적으로돕고있을뿐만아니라마이크로소프트이그나이트,PASSsummit및SQLBits등의국제회의에서단골연사로도활약하고있다.

목차

01장.DAX란무엇인가?

__데이터모델의이해
____관계의방향이해
__엑셀사용자를위한DAX
____셀과테이블
____엑셀및DAX:함수형언어
____DAX의반복함수
____DAX이론의필요성
__SQL개발자를위한DAX
____관계처리
____함수형언어DAX
____프로그래밍및쿼리언어DAX
____DAX및SQL의하위쿼리및조건
__MDX개발자를위한DAX
____다차원vs.테이블형식
____프로그래밍및쿼리언어로서DAX
____계층구조
____상세수준계산
__파워BI사용자를위한DAX

02장.Dax소개

__DAX계산이해
____DAX데이터유형
____DAX연산자
____테이블구성자
____조건문
__계산된열과측정값
____계산된열
____측정값
____계산된열과측정값사이의선택
__변수소개
__DAX식의오류처리
____변환오류
____산술연산오류
____비어있거나없는값
____오류차단
____오류생성
__DAX포맷팅
__집계함수와반복함수
__일반적인DAX함수사용
____집계함수
____논리함수
____정보함수
____수학함수
____삼각함수
____텍스트함수
____변환함수
____날짜및시간함수
____관계함수
__결론

03장.기본테이블함수

__테이블함수소개
__EVALUATE구문소개
__FILTER
__ALL과ALLEXCEPT소개
__VALUES,DISTINCT및빈행이해
__테이블을스칼라값으로사용하기
__ALLSELECTED소개
__결론

04장.평가컨텍스트

__평가컨텍스트소개
____필터컨텍스트
____행컨텍스트이해
__평가컨텍스트에대한이해도테스트
____계산된열에서SUM사용
____측정값에열사용
__반복함수로행컨텍스트사용
____여러테이블에중첩된행컨텍스트
____동일한테이블의중첩된행컨텍스트
____EARLIER함수
__FILTER,ALL및컨텍스트상호작용
__여러테이블작업
____행컨텍스트및관계
____필터컨텍스트및관계
__필터컨텍스트에서DISTINCT및SUMMARIZE사용
__결론

05장.CALCULATE및CALCULATETABLE이해

__CALCULATE및CALCULATETABLE소개
____필터컨텍스트만들기
____CALCULATE소개
____CALCULATE를사용한백분율계산
____KEEPFILTERS소개
____단일열필터링
____복잡한조건의필터링
__CALCULATE의평가순서
__컨텍스트전환이해
____행컨텍스트및필터컨텍스트복습
____컨텍스트전환소개
____계산된열의컨텍스트전환
____측정값으로컨텍스트전환하기
__순환의존성
__CALCULATE제어자
____USERELATIONSHIP
____CROSSFILTER
____KEEPFILTERS
____CALCULATE의ALL
____매개변수없는ALL및ALLSELECTED
__CALCULATE규칙

06장.변수

__VAR구문소개
__변수는상수
__변수의범위
__테이블변수사용
__지연된평가
__변수를사용하는일반적인패턴
__결론

07장.반복함수및CALCULATE

__반복함수사용
____반복함수의카디널리티이해
____반복함수에서컨텍스트전환활용
____CONCATENATEX사용
____테이블을반환하는반복함수
__반복함수를사용한일반적인시나리오해결
____평균및이동평균계산
____RANKX
____계산세분화수준변경
__결론

08장.시간인텔리전스계산

__시간인텔리전스소개
____파워BI의자동날짜/시간옵션
____엑셀의파워피봇에서자동날짜열
____엑셀파워피봇에서Date테이블템플릿
__Date테이블작성
____CALENDAR및CALENDARAUTO사용
____여러날짜로작업하기
____Date테이블과의다중관계처리
____여러Date테이블처리
__기본시간인텔리전스계산이해
____Date테이블로표시
__기본시간인텔리전스함수소개
____YTD,QTD,MTD
____전기의기간계산
____시간인텔리전스함수결합
____이전기간과의차이계산
____이동연간합계계산
____중첩된시간인텔리전스함수에적합한호출순서사용
__반가산계산이해
__LASTDATE및LASTNONBLANK사용
____기초및기말잔액작업
__고급시간인텔리전스계산
__현재까지의기간
____DATEADD
____FIRSTDATE,LASTDATE,FIRSTNONBLANK및LASTNONBLANK
____시간인텔리전스와함께드릴스루사용
__사용자지정달력
____주단위작업
____사용자지정YTD,QTD,MTD
__결론

09장.계산그룹

__계산그룹소개
__계산그룹만들기
__계산그룹이해
____계산항목적용의이해
____계산그룹우선순위이해
__계산항목에서측정값포함및제외
__측면재귀이해
__모범사례사용
__결론

10장.필터컨텍스트작업

__HASONEVALUE및SELECTEDVALUE사용
__ISFILTERED및ISCROSSFILTERED소개
__VALUES와FILTERS의차이점
__ALLEXCEPT와ALL/VALUE의차이점
__컨텍스트전환을피하기위한ALL
__ISEMPTY사용
__데이터계보및TREATAS소개
__임의모양의필터이해
__결론

11장.계층구조처리

__계층구조에대한비율계산
__부모/자식계층처리
__결론

12장.테이블작업

__CALCULATETABLE
__테이블조작
____ADDCOLUMNS
____SUMMARIZE사용
____CROSSJOIN사용
____UNION사용
____INTERSECT사용
____EXCEPT사용
__테이블을필터로사용
____OR조건구현
____첫해고객으로판매액계산범위축소
____신규고객계산
____DETAILROWS와함께테이블식재사용
__계산된테이블만들기
____SELECTCOLUMNS사용
____ROW를사용해정적테이블생성
____DATATABLE로정적테이블생성
____GENERATESERIES사용
__결론

13장.쿼리작성

__DAX스튜디오소개
__EVALUATE이해
____EVALUATE구문소개
____정의영역에서VAR사용
____DEFINE에서측정값사용
__일반적인DAX쿼리패턴구현
____ROW를사용한측정값테스트
____SUMMARIZE사용
____SUMMARIZECOLUMNS사용
____TOPN사용
____GENERATE및GENERATEALL사용
____ISONORAFTER사용
____ADDMISSINGITEMS사용
____TOPNSKIP사용
____GROUPBY사용
____NATURALINNERJOIN및NATURALLEFTOUTERJOIN사용
____SUBSTITUTEWITHINDEX사용
____SAMPLE사용
__DAX쿼리에서자동존재동작이해
__결론

14장.고급DAX개념

__확장된테이블소개
____RELATED이해
____계산된열에RELATED사용
__테이블필터와열필터간의차이점이해
____측정값에테이블필터사용
____활성화된관계이해
____테이블확장과필터링의차이
____확장된테이블의컨텍스트전환
__ALLSELECTED및그림자필터컨텍스트이해
____그림자필터컨텍스트소개
____ALLSELECTED는반복된행을반환함
____매개변수없는ALLSELECTED
__ALL*계열함수
____ALL
____ALLEXCEPT
____ALLNOBLANKROW
____ALLSELECTED
____ALLCROSSFILTERED
__데이터계보이해
__결론

15장.고급관계

__계산된물리적(실제)관계구현
____다중열관계계산
____범위를기반으로관계구현
____계산된물리적관계에서의순환의존성
__가상의관계구현
____DAX에서필터전송
____TREATAS를사용해필터전송
____INTERSECT를사용해필터전송
____FILTER를사용해필터전송
____가상관계를사용한동적세그멘테이션
__DAX의물리적관계이해
__양방향크로스필터사용
__일대다관계이해
__일대일관계이해
__다대다관계이해
____브릿지테이블을사용해다대다구현
____공통차원을사용해다대다구현
____MMR약한관계를사용해다대다구현
__올바른유형의관계선택
__세분화관리
__관계에서모호성관리
____활성화된관계에서의모호성이해
____비활성관계에서모호성해결
__결론

16장.DAX의고급계산

__두날짜사이의영업일수계산
__예산과판매액함께보여주기
__동일매장판매계산
__이벤트시퀀스번호매기기
__전년도매출액을마지막판매일까지계산
__결론

17장.DAX엔진

__DAX엔진의아키텍처이해
____수식엔진소개
____저장엔진소개
____VertiPaq(인메모리)저장엔진소개
____다이렉트쿼리저장엔진소개
____데이터새로고침이해
__VertiPaq저장엔진이해
____열기반데이터베이스소개
____Ve

출판사 서평

◈이책에서다루는내용◈

◆계산된열,측정값및계산그룹등DAX의핵심개념
◆기본및고급테이블함수로효율적인작업
◆평가컨텍스트,CALCULATE및CALCULATETABLE
◆시간기반계산수행
◆계산그룹및계산항목
◆VAR(변수)구문을사용해읽기및유지관리가쉬운코드작성
◆다대다관계및양방향필터등다양하고특이한관계표현
◆고급최적화기법마스터및집계성능향상
◆데이터모델최적화로압축효율향상
◆DAX스튜디오를사용한DAX쿼리성능을측정및DAX최적화방법

◈이책의대상독자◈

이책의고급부분에서는모든독자가익숙하지않을수있는병렬,메모리액세스,CPU사용량및기타특이한주제들에대해세부적으로다룬다.개발자는편안하게느끼겠지만파워BI와엑셀사용자는약간겁을먹을수있다.그럼에도불구하고DAX최적화를논의하기위해서는이정보가필요하다.실제로이책의가장고급부분은파워BI와엑셀사용자보다는BI개발자들을더많이겨냥하고있다.하지만고급부분을읽게되면모든독자가이익을얻으리라생각한다.

◈이책의구성◈

개략적인소개로시작해서점차고급주제로논리적으로흐르도록구성했다.각장은이전의내용을완전히이해한다는가정하에썼다.앞서설명한개념의반복은거의없다.그렇기에처음부터끝까지차례대로읽을것을강력히추천하고,너무일찍고급주제로넘어가지않길바란다.
다읽은뒤에는이책을참고도서로활용할수있다.예를들어여러분이ALLSELECTED가어떻게작동하는지궁금할때곧장해당부분으로건너뛰어서여러분의생각을명확히할수있다.그러나이전내용을소화하지않고다음을읽으면다소좌절하거나,심할경우해당개념을불완전하게이해할수있다.
이책의내용을한눈에살펴보면다음과같다.
1장은DAX에대한간략한소개로,SQL,엑셀또는MDX와같은언어에대해이미어느정도알고있는사용자를위한몇개의절로구성돼있다.여기서는새로운개념을소개하지않는다.DAX와다른언어와의차이점에대한몇가지힌트를줄뿐이다.
2장에서는DAX언어자체를소개한다.계산된열,측정값,오류처리함수와같은기본개념을다루며기본함수도소개한다.
3장은테이블함수를설명한다.DAX의많은함수는테이블에서작동하고결과또한테이블형태로반환한다.
4장에서는평가컨텍스트를설명한다.평가컨텍스트는DAX언어의기초가되므로,4장은5장과함께전체책에서가장중요한내용이될것이다.
5장에서는CALCULATE와CALCULATETABLE의두가지함수만다룬다.이함수는DAX에서가장중요한함수이며,평가컨텍스트에대한올바른이해가바탕이돼야한다.
6장은변수를설명한다.모든예에서변수를사용하지만,6장은변수의구문을소개하고변수를사용하는방법을설명하는부분이다.다음장에서변수를사용하는수많은예를볼때참고자료로유용할것이다.
7장은반복함수와CALCULATE에관해다룬다.DAX를제대로활용하기위해서는컨텍스트전환과반복함수사용법을함께배워야한다.여기서는이러한도구를활용하는방법을이해하는데유용한몇가지예를보여준다.
8장에서는시간인텔리전스계산을심층적으로설명한다.YTD(연초부터해당날짜까지의기간),MTD(월초부터해당날짜까지의기간),전년도값,주기반기간및맞춤캘린더를다룬다.
9장은DAX에도입된최신기능인계산그룹을소개한다.계산그룹은모델링도구로서매우강력하다.계산그룹을만들고사용하는방법과기본개념을소개하고몇가지예를보여준다.
10장에서는고급표현식계산을위해필요한필터컨텍스트,데이터계보,필터컨텍스트검사및기타유용한도구의고급사용방법을다룬다.
11장에서는계층구조계산을수행하는방법과DAX를사용해부모/자녀구조를처리하는방법을설명한다.
12장과13장은작성자쿼리및고급계산에유용한고급테이블함수를다룬다.
14장에서는평가컨텍스트에대한지식을한단계더발전시키고확장테이블이론의도움을받아ALLSELECTED및KEEPFILTERS와같은복잡한함수에대해논의한다.복잡한DAX표현식들의비밀을풀어내는상급내용을다룬다.
15장은DAX에서의관계및관리에관한내용이다.실제로DAX덕분에데이터모델내에서어떤유형의관계도설정가능하다.여기서는분석데이터모델에서일반적인여러유형의관계에관해설명한다.
16장에는DAX에서해결된복잡한계산의예가몇가지수록돼있다.이것은해결책과새로운아이디어를발견하는데유용한언어에관한마지막장이다.
17장에는DAX를실행하는모델에서사용하는가장일반적인스토리지엔진인VertiPaq엔진에대한자세한설명이수록돼있다.DAX에서최고의성능을얻는방법을배우려면이를이해하는것이필수다.
18장은17장의지식을활용해데이터모델레벨에서적용할수있는최적화를보여준다.적절한관계유형을선택하고DAX의메모리사용을줄임으로써열의카디널리티를줄이는방법,가져올열을선택하는방법및성능을향상시키는방법을배우게된다.
19장에서는쿼리계획을읽는방법과DAXStudio및SQLServerProfiler와같은도구를사용해DAX쿼리의성능을측정하는방법에관해설명한다.
20장에서는최적화에대한이전장의내용을기반으로여러가지최적화기법을보여준다.많은DAX계산식을보여주고성능을측정한다음최적화된계산식을표시하고설명한다.

◈옮긴이의말◈
DAX(DataAnalysiseXpressions)는MS의파워BI,SSAS및Excel의파워피봇에서하나이상의값을계산해원하는값을구하는데사용할수있는여러함수와연산자로된라이브러리다.
이책의저자들은sql.com의공동창업자이며,BI에관한다양한컨텐츠를만들고있다.또한파워BI,SSAS및Excel의데이터모델링에관한여러책을저술했다.
이책은DAX를마스터하고자하는사람을위한책이다.아주기초적인내용부터시작해DAX코드와데이터모델을최적화하는방법에이르기까지DAX에관한모든것을다룬다.BI관련전문개발자가아니라면,1장부터15장까지만읽어도충분할듯하다.하지만DAX에관한모든것을배우고자한다면,처음부터끝까지다읽은후이해하기어려운부분을반복해서읽어보기를권한다.
관련경험이없는독자라면처음에는이책을읽고공부하는게쉽지만은않을것이다.특히,4장에서다루는평가컨텍스트의개념은굉장히생소할수있다.다소이해하기어려운내용이있다면,해당주제는가볍게읽고넘어가도좋다.끝까지포기하지않고이책을마친다면여러분은DAX전문가의길로한걸음더다가가게될것이다.

◈추천의글◈

아마독자들은우리를잘알지못할것이다.우리는업무용소프트웨어개발전문가다.파워
BI,SQLServerAnalysisServices(SSAS)개발팀의일원이며,DAX언어와VertiPaq엔진의개발에도참여했다.
이책으로배우게될언어는우리의창작물이다.데이터분석가들이더쉽고생산적으로일할수있도록이언어를연구하고엔진을최적화했다.또한지난몇년간옵티마이저를개선해DAX가더쉽고깔끔하며안정된언어가되도록노력해왔다.
DAX를배우기시작했다면웹에서몇번의검색만으로도이책의저자들이쓴기사를만날수있을것이다.그들이쓴글을읽고언어를배운후,우리가그간노력한결과물에대해평가해주길바란다.수년전그들을처음만났을때SSAS에대한깊은지식에감탄했다.DAX개발이시작됐을때그들은이새로운엔진과언어를배우고채택한첫번째그룹에속한사람들이었다.
저자들이웹에게재하고공유하는기사,논문,블로그는수천명에게학습의원천이됐다.우리는코드를작성하더라도개발자들에게사용법을가르치는것에많은시간을들이지않는다.그러나마르코와알베르토는DAX에대한지식을전파하는데많은기여를했다.
알베르토와마르코는DAX에관한여러베스트셀러를썼으며,이제이DAX의새로운안내서로DAX에관한획기적인책을만들었다.우리는코드를작성했고,그들은책을썼다.이제여러분이DAX를배워서여러분의업무에서과거에경험하지못한분석력을얻기를기대한다.저자와우리그리고여러분모두가한팀으로협력해서데이터로부터더나은통찰력을뽑아내는것,이것이우리가진정으로원하는것이다.

─마리우스뒤미트루(MariusDumitru),파워BICTO이자아키텍트
─크리스티안페쿨레스쿠(CristianPetculescu),파워BI수석아키텍트
─제프리왕(JeffreyWang),수석소프트웨어엔지니어매니저
─크리스티안웨이드(ChristianWade),수석프로그램매니저