2013년 Excel 수백만 개 행이 포함된 데이터 모델을 만든 다음 이러한 모델에 대해 강력한 데이터 분석을 수행할 수 있습니다. 동일한 통합 문서에서 모든 수의 피벗 파워 피벗 차트 및 시각화를 지원하기 위해 추가 기능의 Power View 모델을 만들 수 있습니다.

참고: 이 문서에서는 2013년 Excel 모델에 대해 설명합니다. 그러나 2013년 2013년에 소개된 동일한 데이터 모델링 및 Power Pivo Excel t 기능도 Excel 2016. 이러한 버전의 버전 간에는 거의 차이가 Excel.

대규모 데이터 모델을 쉽게 빌드할 수 Excel 몇 가지 이유가 있습니다. 먼저, 많은 테이블과 열이 포함된 큰 모델은 대부분의 분석에 과도하게 사용하며 번거로운 필드 목록을 만들 수 있습니다. 둘째, 대규모 모델은 중요한 메모리를 사용하며 동일한 시스템 리소스를 공유하는 다른 애플리케이션 및 보고서에 부정적인 영향을 미치게 됩니다. 마지막으로, Microsoft 365 에서 SharePoint 및 Excel 웹앱은 Excel 파일의 크기를 10MB로 제한합니다. 수백만 개의 행이 포함된 통합 문서 데이터 모델의 경우 10MB 제한이 매우 빠르게 실행됩니다. 데이터 모델 사양 및 제한을 참조합니다.

이 문서에서는 작업하기 쉽고 메모리를 적게 사용하는 긴밀하게 구성된 모델을 빌드하는 방법을 알아보고 있습니다. 효율적인 모델 디자인에서 모범 사례를 배우는 데 시간을 내어 2013년 2013년, Excel 온라인, Microsoft 365 SharePoint Office Web Apps 서버 또는 2013년 SharePoint 모든 모델에 대해 SharePoint 합니다.

통합 문서 크기 최적화 프로그램을 실행하는 것도 좋은 방법입니다. 이 프로그램은 Excel 통합 문서를 분석하여 가능한 경우 추가로 압축합니다. 통합 문서 크기 최적화 프로그램을 다운로드합니다.

이 문서의 내용

압축 비율 및 메모리 내 분석 엔진

데이터 모델은 Excel 분석 엔진을 사용하여 메모리에 데이터를 저장합니다. 엔진은 스토리지 요구 사항을 줄이기 위해 강력한 압축 기술을 구현하여 원래 크기의 일부가 될 때까지 결과 집합을 축소합니다.

평균적으로 데이터 모델이 원본 시점의 동일한 데이터보다 7~10배 작을 것으로 예상할 수 있습니다. 예를 들어 데이터베이스에서 7MB의 데이터를 가져오는 경우 SQL Server 데이터베이스의 데이터 Excel 1MB 이하일 수 있습니다. 실제로 달성된 압축 정도는 주로 각 열의 고유 값 수에 따라 달라 진다. 고유한 값이 수록 저장하는 데 더 많은 메모리가 필요합니다.

압축 및 고유 값에 대해 이야기하는 이유는 무엇입니까? 메모리 사용량을 최소화하는 효율적인 모델을 구축하는 것은 압축 최대화에 관한 것이고, 이러한 작업을 수행하는 가장 쉬운 방법은 특히 이러한 열에 많은 수의 고유 값이 포함된 경우 필요하지 않은 열을 제거하는 것입니다.

참고: 개별 열에 대한 저장소 요구 사항의 차이는 크지 않습니다. 경우에 따라 고유 값이 많은 열이 아닌 고유 값이 낮은 여러 열을 사용하는 것이 좋습니다. Datetime 최적화의 섹션에서는 이 기술을 자세히 설명합니다.

메모리 사용량이 낮을 경우 존재하지 않는 열을 꺾지 않습니다.

메모리 효율이 가장 높은 열은 처음에는 가져오지 않는 열입니다. 효율적인 모델을 빌드하려는 경우 각 열을 살펴보고 수행하려는 분석에 기여하는지 여부를 직접 묻습니다. 그렇지 않은 경우 또는 확실하지 않은 경우 그대로 떠날 수 있습니다. 나중에 필요한 경우 항상 새 열을 추가할 수 있습니다.

항상 제외해야 하는 열의 두 가지 예제

첫 번째 예제는 데이터 웨어하우스에서 시작된 데이터와 관련이 있습니다. 데이터 웨어하우스에서 웨어하우스에서 데이터를 로드하고 새로 고침하는 ETL 프로세스의 아티팩트를 찾는 것이 일반적입니다. 데이터를 로드할 때 "날짜 만들기", "업데이트 날짜", "ETL 실행"과 같은 열이 만들어집니다. 이러한 열은 모델에 필요하지 않습니다. 데이터를 가져올 때 선택을 선택하지 말아야 합니다.

두 번째 예제는 팩트 테이블을 가져올 때 기본 키 열을 생략하는 것입니다.

팩트 테이블을 비롯한 많은 테이블에는 기본 키가 있습니다. 고객, 직원 또는 판매 데이터가 포함된 테이블과 같은 대부분의 테이블의 경우 테이블의 기본 키를 사용하여 모델에서 관계를 만들 수 있습니다.

팩트 테이블은 다릅니다. 팩트 테이블에서 기본 키는 각 행을 고유하게 식별하는 데 사용됩니다. 정규화 목적으로 필요한 경우 분석 또는 테이블 관계를 설정하는 데 사용되는 열만 사용하려는 데이터 모델에서는 유용하지 않습니다. 이러한 이유로 팩트 테이블에서 가져올 때 기본 키는 포함하지 않습니다. 팩트 테이블의 기본 키는 모델에서 많은 공간을 사용하지만 관계를 만드는 데 사용할 수 없는 이점은 없습니다.

참고: 데이터 웨어하우스 및 다차원 데이터베이스에서 대부분의 숫자 데이터로 구성된 큰 테이블을 "팩트 테이블"이라고 합니다. 팩트 테이블에는 일반적으로 조직 단위, 제품, 시장 세그먼트, 지리적 지역 등 집계 및 정렬되는 판매 및 비용 데이터와 같은 비즈니스 성능 또는 트랜잭션 데이터가 포함됩니다. 비즈니스 데이터가 포함되거나 다른 테이블에 저장된 데이터를 상호 참조하는 데 사용할 수 있는 팩트 테이블의 모든 열은 데이터 분석을 지원하기 위해 모델에 포함되어야 합니다. 제외하려는 열은 팩트 테이블의 기본 키 열로 팩트 테이블에만 존재하며 다른 곳에는 없는 고유한 값으로 구성됩니다. 팩트 테이블이 너무 크기 때문에 모델 효율성에서 가장 큰 이득 중 일부는 팩트 테이블에서 행 또는 열을 제외하여 파생됩니다.

불필요한 열을 제외하는 방법

효율적인 모델에는 통합 문서에 실제로 필요한 열만 포함되어 있습니다. 모델에 포함된 열을 제어하려는 경우 Power Pivot 추가 기능의 테이블 가져오기 마법사를 사용하여 데이터 가져오기 대화 상자에서 "데이터 가져오기" 대화 상자가 아닌 데이터를 가져와야 Excel.

테이블 가져오기 마법사를 시작할 때 가져올 테이블을 선택합니다.

Power Pivot 추가 기능의 테이블 가져오기 마법사

각 테이블에 대해 미리 보기 & 필터 단추를 클릭하고 실제로 필요한 테이블의 부분을 선택할 수 있습니다. 먼저 모든 열의 선택을 선택하지 않은 다음 분석에 필요한지 여부를 고려한 후 원하는 열을 계속 검사하는 것이 좋습니다.

테이블 가져오기 마법사의 미리 보기 창

필요한 행만 필터링하는 방법

회사 데이터베이스 및 데이터 웨어하우스의 많은 테이블에는 오랜 기간 동안 누적된 기록 데이터가 포함되어 있습니다. 또한 관심 있는 테이블에 특정 분석에 필요하지 않은 비즈니스 영역에 대한 정보가 포함되어 있을 수 있습니다.

테이블 가져오기 마법사를 사용하여 기록 또는 관련 없는 데이터를 필터링하여 모델에 많은 공간을 저장할 수 있습니다. 다음 이미지에서 날짜 필터는 필요하지 않은 기록 데이터를 제외한 현재 연도에 대한 데이터를 포함하는 행만 검색하는 데 사용됩니다.

테이블 가져오기 마법사의 필터 창

열이 필요한 경우 어떻게 해야 할지? 여전히 공간 비용을 줄일 수 있나요?

열을 압축할 수 있는 더 나은 후보로 만들기 위해 적용할 수 있는 몇 가지 추가 기술이 있습니다. 압축에 영향을 주는 열의 유일한 특성은 고유 값의 수입니다. 이 섹션에서는 고유한 값의 수를 줄이기 위해 일부 열을 수정할 수 있는 방법을 설명합니다.

Datetime 열 수정

대부분의 경우 Datetime 열은 많은 공간을 차지합니다. 다행히 이 데이터 형식에 대한 저장소 요구 사항을 줄이는 방법은 여러 가지가 있습니다. 이 기술은 열을 사용하는 방법 및 쿼리를 구성하는 데 SQL 다릅니다.

Datetime 열에는 날짜 부분과 시간이 포함됩니다. 열이 필요한지 묻는 질문에는 Datetime 열에 대해 같은 질문을 여러 번 던지세요.

  • 시간 파트가 필요한가요?

  • 시간 수준에서 시간 파트가 필요한가요? , 분? , 초? , 밀리초?

  • 날짜 시간 열이 여러 개 있는 이유는 날짜 간의 차이를 계산하거나 연도, 월, 분기 등 데이터를 집계하기만 하려는 경우입니다.

이러한 각 질문에 대답하는 방식은 Datetime 열을 처리하기 위한 옵션을 결정합니다.

이러한 모든 솔루션은 쿼리를 수정해야 SQL 합니다. 쿼리를 더 쉽게 수정하기 위해 모든 테이블에서 하나 이상의 열을 필터링해야 합니다. 열을 필터링하여 쿼리 구성을 약어 형식(SELECT *)에서 완전히 자격을 갖춘 열 이름을 포함하는 SELECT 문으로 변경하면 훨씬 쉽게 수정할 수 있습니다.

만든 쿼리를 살펴보자. 테이블 속성 대화 상자에서 쿼리 편집기로 전환하고 각 테이블에 대한 현재 SQL 볼 수 있습니다.

표 속성 명령이 표시된 Power Pivot 창 리본 메뉴

테이블 속성에서 쿼리 편집기를 선택합니다.

표 속성 대화 상자에서 쿼리 편집기 열기

쿼리 편집기는 테이블을 채우는 데 SQL 쿼리를 보여줍니다. 가져오기 중에 열을 필터링한 경우 쿼리에 전체 자격이 있는 열 이름이 포함됩니다.

데이터 검색에 사용된 SQL 쿼리

반면 열을 선택 취소하거나 필터를 적용하지 않고 표를 전체적으로 가져온 경우 쿼리를 "에서 * 선택"으로 표시하면 수정하기가 더 어려워집니다.

짧은 기본 구문이 사용된 SQL 쿼리

쿼리 SQL 수정

이제 쿼리를 찾는 방법을 알고 있습니다. 모델 크기를 더 줄이기 위해 쿼리를 수정할 수 있습니다.

  1. 통화 또는 소수 자릿수 데이터가 포함된 열의 경우 소수 자릿수가 필요하지 않은 경우 이 구문을 사용하여 소수 자릿수 제거:

    "SELECT ROUND([Decimal_column_name],0)... .”

    센트가 필요하지만 센트의 분수는 아닌 경우 0을 2로 바 대체합니다. 음수(음수)를 사용하는 경우 단위, 수십, 수백 등으로 반올라할 수 있습니다.

  2. dbo라는 Datetime 열이 있는 경우 Bigtable입니다. [날짜 시간] 및 시간 파트가 필요하지 않습니다. 구문을 사용하여 시간을 제거합니다.

    "CAST(dbo)를 선택합니다. Bigtable입니다. [날짜 시간]을 날짜로) AS [날짜 시간]) "

  3. dbo라는 Datetime 열이 있는 경우 Bigtable입니다. [날짜 시간] 및 날짜 및 시간 파트가 모두 필요하며 단일 Datetime 열 SQL 쿼리에서 여러 열을 사용합니다.

    "CAST(dbo)를 선택합니다. Bigtable입니다. [날짜 시간]을 날짜로 ) AS [날짜 시간],

    datepart(hh, dbo. Bigtable입니다. [날짜 시간]) [날짜 시간 시간]으로,

    datepart(mi, dbo). Bigtable입니다. [날짜 시간]) [날짜 시간 분]으로,

    datepart(ss, dbo). Bigtable입니다. [날짜 시간]) [날짜 시간 초]로,

    datepart(ms, dbo). Bigtable입니다. [날짜 시간]) [날짜 시간 밀리초]로"

    각 파트를 별도의 열에 저장해야 하는 열 수를 사용 합니다.

  4. 시간 및 분이 필요하고 한 번 열로 함께 선호하는 경우 구문을 사용할 수 있습니다.

    Timefromparts(datepart(hh, dbo). Bigtable입니다. [날짜 시간]), datepart(mm, dbo). Bigtable입니다. [날짜 시간])) [날짜 시간 시간 시간Minute]로

  5. [시작 시간] 및 [종료 시간]과 같은 날짜 시간 열이 두 개 있으며 실제로 필요한 것은 [기간]이라는 열로 시간 차이인 경우 목록에서 두 열을 제거하고 다음을 추가합니다.

    "datediff(ss,[Start Date],[End Date]) as [Duration]"

    ss 대신 키워드 ms를 사용하는 경우 기간이 밀리초입니다.

열 대신 DAX 계산 측정값 사용

이전까지 DAX 식 언어를 사용한 경우 계산된 열이 모델의 다른 열을 기반으로 새 열을 파생하는 데 사용되는 반면, 계산된 측정값은 모델에서 한 번 정의되지만 피벗 테이블 또는 기타 보고서에서 사용할 때만 평가됩니다.

메모리 절약 기법 중 하나는 일반 또는 계산된 열을 계산된 측정값으로 바꾸는 것입니다. 클래식 예제는 단가, 수량 및 합계입니다. 세 가지가 모두 있는 경우 두 개만 유지 관리하고 DAX를 사용하여 세 번째를 계산하여 공간을 절약할 수 있습니다.

어떤 2개 열을 유지해야 하나요?

위의 예제에서는 수량 및 단가를 유지합니다. 이러한 두 값은 총 값보다 적습니다. 합계를 계산하기 위해 다음과 같이 계산된 측정값을 추가합니다.

"TotalSales:=sumx('Sales Table','Sales Table'[Unit Price]*'Sales Table'[Quantity])"

계산된 열은 둘 다 모델의 공간을 차지하는 일반 열과 같습니다. 반면 계산된 측정값은 즉, 즉사적으로 계산하고 공간을 차지하지 않습니다.

결론

이 문서에서는 메모리 효율이 높은 모델을 빌드하는 데 도움이 되는 몇 가지 방법을 설명했습니다. 데이터 모델의 파일 크기 및 메모리 요구 사항을 줄이는 방법은 전체 열 및 행 수와 각 열에 나타나는 고유 값의 수를 줄이는 것입니다. 다음은 다루는 몇 가지 기법입니다.

  • 물론 열을 제거하는 것이 공간을 절약하는 가장 좋은 방법입니다. 필요한 열을 결정합니다.

  • 경우에 따라 열을 제거하고 테이블에서 계산된 측정값으로 바꿀 수 있습니다.

  • 테이블의 모든 행이 필요하지 않을 수 있습니다. 테이블 가져오기 마법사에서 행을 필터링할 수 있습니다.

  • 일반적으로 단일 열을 여러 개의 고유한 부분으로 구분하는 것이 열의 고유 값 수를 줄이는 좋은 방법입니다. 각 파트에는 고유한 값이 소수 있으며, 결합된 합계는 원래 통합 열보다 작습니다.

  • 대부분의 경우 보고서에서 슬라이서로 사용하기 위해 고유한 부분도 필요합니다. 적절한 경우 시간, 분 및 초와 같은 부분에서 계층을 만들 수 있습니다.

  • 열에는 필요한 것보다 많은 정보가 포함되어 있습니다. 예를 들어 열에 소수점을 저장하지만 모든 소수점을 숨기기 위해 서식을 적용했다고 가정합니다. 반올라우는 숫자 열의 크기를 줄이는 데 매우 효과적일 수 있습니다.

통합 문서의 크기를 줄이기 위해 할 수 있는 작업을 수행했기 때문에 통합 문서 크기 최적화를 실행하는 것이 고려됩니다. 이 프로그램은 Excel 통합 문서를 분석하여 가능한 경우 추가로 압축합니다. 통합 문서 크기 최적화 프로그램을 다운로드합니다.

관련 링크

데이터 모델 사양 및 제한

통합 문서 크기 최적화기

Power Pivot: Excel의 강력한 데이터 분석 및 데이터 모델링

추가 도움이 필요하신가요?

기술 향상

교육 살펴보기 >

새로운 기능 우선 가져오기

Microsoft Insider 참가 >

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?

의견 주셔서 감사합니다!

×