Top

전문가를 위한 DAX 완벽 가이드 2/e [파워 BI, 엑셀, SSAS에서 활용하는 DAX]

  • 원서명The Definitive Guide to DAX: Business Intelligence for Microsoft Power BI, SQL Server Analysis Services, and Excel Second Edition (ISBN 9781509306978)
  • 지은이마르코 루소(Marco Russo), 알베르토 페라리(Alberto Ferrari)
  • 옮긴이김원권
  • ISBN : 9791161756585
  • 50,000원
  • 2022년 07월 18일 펴냄
  • 페이퍼백 | 928쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

요약

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

추천의 글

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

─ 마리우스 뒤미트루(Marius Dumitru), 파워 BI CTO이자 아키텍트
─ 크리스티안 페쿨레스쿠(Cristian Petculescu), 파워 BI 수석 아키텍트
─ 제프리 왕(Jeffrey Wang), 수석 소프트웨어 엔지니어 매니저
─ 크리스티안 웨이드(Christian Wade), 수석 프로그램 매니저

이 책에서 다루는 내용

◆ 계산된 열, 측정값 및 계산 그룹 등 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장에서는 쿼리 계획을 읽는 방법과 DAX Studio 및 SQL Server Profiler와 같은 도구를 사용해 DAX 쿼리의 성능을 측정하는 방법에 관해 설명한다.
20장에서는 최적화에 대한 이전 장의 내용을 기반으로 여러 가지 최적화 기법을 보여준다. 많은 DAX 계산식을 보여주고 성능을 측정한 다음 최적화된 계산식을 표시하고 설명한다.

저자/역자 소개

지은이의 말

전 세계 수천 명의 사용자와 개발자들에게 DAX를 가르쳤다. 항상 복잡한 주제를 설명하기 위한 최고의 방법을 찾기 위해 학생들과 함께 열심히 고민했다. 그 결과, DAX를 설명하는 다른 방법을 찾아냈다.
2판에서는 DAX의 이론적 토대를 가르친 후 함수의 실제 활용을 보여주기 위해 예시를 늘렸다. 정교함을 잃지 않되, 좀 더 단순한 스타일을 사용하려고 노력했다. 공유하고 싶은 모든 주제를 다루고 싶어 페이지 수를 두고 편집자와 많은 논의가 있었다. 비록 이 책이 일반적인 DAX 개발자를 위한 책은 아니지만, 여러분이 DAX에 대한 사전 지식이 없다고 가정하는 기조는 바꾸지 않았다. 이 책은 DAX를 배워서 DAX의 힘과 복잡성에 대한 깊은 이해를 얻고자 하는 이들을 위한 책이다.

지은이 소개

마르코 루소(Marco Russo), 알베르토 페라리(Alberto Ferrari)

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

옮긴이의 말

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

옮긴이 소개

김원권

서강대학교에서 경제학을 전공하고, KAIST 테크노경영대학원에서 MBA를 받았다. 삼성물산 및 워너브러더스 한국지사 등을 거쳐, 현재는 중견 제약회사에서 CFO로 재직하고 있다. 실무에서의 데이터 분석 경험을 바탕으로 데이터 분석 및 시각화에 관심이 많으며, 『슈퍼차지 파워 BI』(에이콘,2019)를 번역했다.

목차

목차
  • 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 저장 엔진 이해
      • 열 기반 데이터베이스 소개
      • VertiPaq 압축 이해
      • 값 인코딩 이해
      • 해시 인코딩 이해
      • RLE(실행 길이 인코딩) 이해
      • 재인코딩 이해
      • 최상의 정렬 순서 찾기
      • 계층 및 관계 이해
      • 세그멘테이션 및 파티셔닝 이해
      • 동적 관리 보기 사용
    • VertiPaq의 관계 사용 이해
    • 구체화 소개
    • 집계 소개
    • VertiPaq용 하드웨어 선택
      • 옵션으로 하드웨어 선택
      • 하드웨어 우선순위 설정
      • CPU 모델
      • 메모리 속도
      • 코어 수
      • 메모리 크기
      • 디스크 I/O 및 페이징
      • 하드웨어 선택 시 모범 사례
    • 결론

  • 18장. VertiPaq 최적화
    • 데이터 모델에 대한 정보 수집
    • 비정규화
    • 열 카디널리티
    • 날짜 및 시간 처리
    • 계산된 열
      • 부울 계산 열로 복잡한 필터 최적화
      • 계산된 열 처리
    • 저장할 올바른 열 선택
    • 열 저장소 최적화
      • 열 분할 최적화 사용
      • 카디널리티가 높은 열 최적화
      • 속성 계층 구조 비활성화
      • 드릴스루 특성 최적화
    • VertiPaq 집계 관리
    • 결론

  • 19장. DAX 쿼리 계획 분석
    • DAX 쿼리 캡처
    • DAX 쿼리 계획 소개
      • 쿼리 계획 수집
      • 논리적 쿼리 계획 소개
      • 물리적 쿼리 계획 소개
      • 저장 엔진 쿼리 소개
    • 프로파일링 정보 캡처
      • DAX 스튜디오 사용
      • SQL 서버 프로파일러 사용
    • VertiPaq 저장 엔진 쿼리 읽기
      • xmSQL 구문 소개
      • 집계함수
      • 산술 연산
      • 필터 연산
      • 조인 연산자
      • 배치 이벤트의 임시 테이블 및 얕은 관계
      • 스캔 시간 이해
      • DISTINCTCOUNT 내부 이해
      • 병렬 처리 및 데이터캐시 이해
      • VertiPaq 캐시 이해
      • CallbackDataID 이해
    • 다이렉트쿼리의 저장 엔진 쿼리 읽기
      • 복합 모델 분석
      • 데이터 모델에서 집계 사용
    • 쿼리 계획 읽기
    • 결론

  • 20장. DAX 최적화
    • 최적화 전략 정의
      • 최적화할 단일 DAX 식 식별
      • 재현 쿼리 만들기
      • 서버 타이밍 및 쿼리 계획 정보 분석
      • 저장 엔진 또는 수식 엔진의 병목 식별
      • 변경 사항 구현 및 테스트 쿼리 재실행
    • DAX 식에서 병목 최적화
      • 필터 조건 최적화
      • 컨텍스트 전환 최적화
      • IF 조건 최적화
      • CallbackDataID의 영향 감소
      • 중첩된 반복함수 최적화
      • DISTINCTCOUNT에서 테이블 필터 피하기
      • 변수를 사용해 다중 평가 방지
    • 결론

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안