DAX Studio의 LuckyTemplates 압축 기술

DAX Studio의 LuckyTemplates 압축 기술

이 자습서에서는 보고서를 최적화하는 데 도움이 되는 의 다양한 LuckyTemplates 압축 기술에 대해 알아봅니다 .

LuckyTemplates Power Pivot 및 SSAS 의 Analysis Services에서 세그먼트별로 데이터를 로드한 후 두 가지 이벤트가 발생합니다. 첫 번째는 전체 RAM 크기를 줄이기 위해 다른 인코딩 방법을 사용하여 열을 압축하려고 시도한다는 것입니다 . 두 번째는 반복되는 값을 함께 배치하는 최상의 정렬 순서에 자금을 지원하려고 한다는 것입니다. 이 방법은 또한 압축률을 높이고 메모리에 대한 압력을 줄입니다.

Analysis Services에서 사용하는 다양한 압축 기술이 있습니다. 이 자습서에서는 세 가지 방법, 특히 값 인코딩, 실행 길이 인코딩 및 사전 인코딩을 다룹니다. 이 자습서의 마지막 섹션에서는 Analysis Services에서 정렬 작업을 수행하는 방법에 대해 설명합니다.

목차

LuckyTemplates 압축 기술 #1: 값 인코딩

첫 번째는 값 인코딩이라고 합니다.

값 인코딩은 메모리를 줄이기 위해 열의 각 값 사이의 수학적 관계를 찾습니다. 다음은 Microsoft Excel의 예입니다.

이 열은 값을 저장하기 위해 16,384비트가 필요합니다.

DAX Studio의 LuckyTemplates 압축 기술

필요한 비트를 계산하려면 먼저 Excel에서 MAX() 함수를 사용하여 열에서 가장 높은 값을 가져옵니다. 이 경우 9144입니다. 그런 다음 POWER() 함수를 사용하여 필요한 비트를 계산합니다. POWER(2, X) 인수를 사용하십시오. 여기서 X는 MAX 값보다 큰 답을 반환하는 양수 값입니다. 이 경우 X는 필요한 비트도 나타냅니다. 따라서 이 예에서 X의 값은 14이며 결과는 16,384 입니다 . 따라서 열에는 14비트의 스토리지가 필요합니다.

값 인코딩을 사용하여 필요한 비트를 줄이기 위해 VertiPaq은 열에서 MIN 값을 찾아 각 값에서 뺍니다. 이 경우 열의 MIN 값은 9003입니다. 열에서 이를 빼면 다음 값이 반환됩니다.

DAX Studio의 LuckyTemplates 압축 기술

동일한 함수와 인수를 사용하면 새 열의 MAX 값이 141임을 알 수 있습니다. X 값으로 8을 사용하면 256 이 됩니다 . 따라서 새 열에는 8비트만 필요합니다.

두 번째 열이 첫 번째 열과 비교하여 얼마나 압축되었는지 확인할 수 있습니다.

데이터가 압축되고 새 열을 쿼리하려고 하면 스토리지 엔진 또는 Vertipaq이 이 열을 스캔합니다. 단순히 열의 새 값을 반환하지 않습니다. 대신 결과를 사용자에게 다시 반환하기 전에 뺀 값을 더합니다.

그러나 값 인코딩은 정수 또는 고정 십진수 값을 포함하는 열에서만 작동합니다.

LuckyTemplates 압축 기술 #2: 실행 길이 인코딩

두 번째 인코딩 방법은 Run Length Encoding이라고 합니다.

Run Length Encoding은 고유 값, 시작 열 및 개수 열을 포함하는 데이터 구조를 생성합니다.

예를 들어 보겠습니다.

DAX Studio의 LuckyTemplates 압축 기술

이 경우 첫 번째 행에서 하나의 빨간색 값을 사용할 수 있음을 식별합니다. 그런 다음 Black 값이 두 번째 행에서 시작하고 다음 4개 셀에 사용할 수 있음을 확인합니다 . 여섯 번째 행에서 시작하여 다음 세 행에 사용할 수 있는 세 번째 값인 Blue 로 진행합니다. 그리고 이것은 열의 마지막 값에 도달할 때까지 계속됩니다.

따라서 전체 열을 저장하는 대신 특정 값의 시작 위치와 끝 위치, 중복 항목 수에 대한 정보만 포함하는 데이터 구조를 만듭니다.

DAX Studio의 LuckyTemplates 압축 기술

동일한 구조를 가진 열의 경우 값을 오름차순 또는 내림차순으로 정렬하여 데이터를 추가로 압축할 수 있습니다.

DAX Studio의 LuckyTemplates 압축 기술

이 제대로 정렬된 열을 사용하면 Run Length Encoding 메서드가 이제 한 행이 적은 데이터 구조를 반환하는 것을 볼 수 있습니다.

DAX Studio의 LuckyTemplates 압축 기술

따라서 많은 개별 값을 처리하는 경우 가능한 가장 최적의 방법으로 열을 정렬하는 것이 좋습니다. 이것은 더 적은 행을 가진 데이터 구조를 제공하여 더 적은 RAM을 차지합니다.

기본 키 열에는 고유한 값만 포함되므로 실행 길이 인코딩은 기본 키에 적용할 수 없습니다. 따라서 각 값에 대해 하나의 행을 저장하는 대신 열을 그대로 저장합니다.

LuckyTemplates 압축 기술 #3: 사전 인코딩

세 번째 인코딩 방법은 사전 인코딩이라고 합니다.

사전 인코딩은 열의 고유한 값을 포함하는 사전과 유사한 구조를 생성합니다. 또한 해당 고유 값에 인덱스를 할당합니다.

이전 예제를 사용하여 사전 인코딩이 작동하는 방식을 살펴보겠습니다. 이 경우 Red, Black 및 Blue 값에는 각각 0, 1 및 2의 인덱스가 할당됩니다.

DAX Studio의 LuckyTemplates 압축 기술

그런 다음 Run Length Encoding과 유사한 데이터 구조를 생성합니다. 그러나 사전 인코딩은 실제 값을 저장하는 대신 각 값의 할당된 인덱스를 저장합니다.

DAX Studio의 LuckyTemplates 압축 기술

이렇게 하면 숫자가 문자열 값보다 적은 공간을 차지하기 때문에 소비되는 RAM이 더 줄어듭니다.

사전 인코딩은 또한 테이블 형식 데이터 유형을 독립적으로 만듭니다. 즉, 다른 데이터 유형으로 저장할 수 있는 열이 있더라도 데이터 구조는 인덱스 값만 저장하므로 중요하지 않습니다.

그러나 독립적인 경우에도 데이터 유형은 여전히 ​​사전의 크기에 영향을 미칩니다. 열을 저장하기 위해 선택한 데이터 유형에 따라 사전(또는 데이터 구조) 크기가 변동됩니다. 그러나 열 자체의 크기는 동일하게 유지됩니다.

따라서 어떤 데이터 유형을 선택하느냐에 따라 해당 열에 사전 인코딩이 적용되면 이후에 Run Length Encoding이 적용될 수 있습니다.

이 경우 Analysis Services는 두 개의 데이터 구조를 만듭니다. 먼저 사전을 만든 다음 여기에 Run Length Encoding을 적용하여 열의 압축을 더 높입니다.

Analysis Services의 정렬 순서

이 자습서의 마지막 부분에서는 Analysis Services가 데이터 정렬을 위한 최적의 방식을 결정하는 방법에 대해 설명하겠습니다.

예를 들어 Red, Blue, Black, Green 및 Pink 값을 포함하는 열을 살펴보겠습니다. 1에서 5까지의 숫자도 할당되었습니다. 이것은 우리 열의 사전 역할을 합니다.

DAX Studio의 LuckyTemplates 압축 기술

이제 Excel의 전체 열을 이러한 값으로 채웁니다. 이 인수를 사용하여 이러한 값을 무작위로 포함하는 열을 생성하십시오.

DAX Studio의 LuckyTemplates 압축 기술

수식을 마지막 행까지 끕니다. 대규모 작업 팝업 창이 나타나면 확인을 클릭합니다 . 이제 다음과 같이 표시됩니다.

DAX Studio의 LuckyTemplates 압축 기술

그런 다음 전체 열을 복사하여 Value 로 붙여넣습니다 .

DAX Studio의 LuckyTemplates 압축 기술

이제 Excel 문서에서 파일 옵션 으로 이동 하고 정보를 클릭하면 해당 열이 14.1MB를 사용하는 것을 볼 수 있습니다 .

RAM 소모량을 줄이기 위해 열을 A부터 Z까지 정렬하면 됩니다. 크기를 다시 확인해보면 12.5MB 로 줄어든 것을 확인할 수 있습니다 .

1.9MB 감소 그다지 커 보이지 않을 수 있습니다. 이는 예제에서 Excel의 단일 열을 사용하여 시연했기 때문입니다. Excel은 1백만 행으로만 제한됩니다. 그러나 LuckyTemplates에서는 데이터에 수십억 개의 행과 열이 포함될 수 있습니다. 사용 공간의 감소는 기하급수적으로 증가합니다.

결론

데이터가 가장 최적의 방식으로 정렬되면 Analysis Services는 데이터 유형에 따라 세 가지 압축 기술 중 하나를 적용합니다.

이렇게 하면 데이터 압축이 증가하여 장치에서 소비되는 메모리 양이 크게 줄어듭니다. 이렇게 하면 보고서를 보다 최적화하여 실행하고 로드하기가 더 쉬워집니다.


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것