본문 바로가기

Microsoft Fabric/Fabric 실습 4 - Data Warehouse

Data Warehouse 데이터 분석

Lake에 정의된 테이블에 대한 기본 읽기 전용 SQL 엔드포인트와 달리 Data Warehouse는 전체 SQL 의미 체계를 제공합니다. 테이블에 데이터를 삽입, 업데이트 및 삭제하는 기능을 포함합니다.

 

1. 데이터 웨어하우스 만들기

1) Fabric이 지원되는(또는 평가판 사용을 설정한) 작업영역을 선택합니다. 

2) 상단의 "+ 새로 만들기"를 클릭합니다. 

3) 웨어하우스를 선택합니다.

 

4) 새 웨어하우스의 이름을 입력합니다. 

5) 만들기를 클릭합니다.

 

1분 정도 후에 새 웨어하우스가 생성됩니다.

2. 테이블 만들기 및 데이터 삽입

1) 홈 화면에서 "T-SQL 코드 템플릿으로 테이블 만들기" 타일을 클릭 또는 상단의 "새 SQL 쿼리"버튼을 클릭합니다.

 

2) 쿼리 창에 아래 CREATE TABLE 쿼리문을 작성합니다. 

CREATE TABLE dbo.DimProduct
(
    ProductKey INTEGER NOT NULL,
    ProductAltKey VARCHAR(25) NULL,
    ProductName VARCHAR(50) NOT NULL,
    Category VARCHAR(50) NULL,
    ListPrice DECIMAL(5,2) NULL
);
GO

 

3) ▷ Run 단추를 사용하여 SQL 스크립트를 실행합니다.

 

4) 실행이 끝나면 상단 도구모음의 새로 고침을 클릭합니다.

5) 왼쪽 탐색기 창에서 Schemas > dbo > 테이블을 확장하여 "DimProduct" 테이블이 만들어졌는지 확인합니다. 

 

6) 홈 메뉴 탭에서 새 SQL 쿼리 단추를 클릭하여 새 쿼리 창에 다음 INSERT 문을 입력합니다.

7) 상단의 ▷ Run 단추를 클릭하여 쿼리를 실행시킵니다. 

 

8) 실행이 끝나면 Data Warehouse 왼쪽 아래 "데이터"탭을 클릭합니다. 

9) DimProduct 테이블을 클릭하여 세 개의 행이 추가되었는지 확인합니다. 

 

10) 간단한 Data Warehouse 스키마를 만들고 일부 데이터를 로드하는 새 쿼리를 이 링크에서 가져와서 생성하고 실행합니다. https://raw.githubusercontent.com/MicrosoftLearning/dp-data/main/create-dw.txt

 

11) 쿼리 실행이 끝나면 상단의 새로 고침 버튼을 클릭하여 dbo스키마에 새로운 테이블과 데이터가 추가되었는지 확인합니다. 

 

3. 데이터 모델 정의

1) 데이터 웨어하우스의 페이지 아래쪽에서 모델 탭을 선택합니다.
2) 모델 창에서 다음과 같이 Dimesion 테이블은 위로 팩트 테이블인 FactSalesOrder은 아래 가운데에 오도록 데이터 웨어하우스의 테이블을 다시 정렬합니다. (파악하기 쉽게 배치하는 것입니다.)

 

3) FactSalesOrder 테이블에서 ProductKey 필드를 끌어 DimProduct 테이블의 ProductKey 필드에 놓습니다.

 

4) 자동으로 설정된 관계 세부정보를 확인하고 필요한 경우 변경할 수 있습니다. 

  Table 1 : FactSalesOrder

  열 : ProductKey

  Table 2 : DimProduct

  열 : ProductKey

  Cardinality : 다대일(*:1)

  교차 필터 방향 : Single

  이 관계를 활성으로 만들기 : 체크 

  참조 무결성을 가정합니다. : 체크 해제

 

5) 위의 과정을 반복하여 다른 테이블 간에 다대일 관계를 추가합니다. 

  FactOrderSales.CustomerKey → DimCustomer.CustomerKey
  FactOrderSales.SalesOrderDateKey → DimDate.DateKey

 

관계가 정의되면 모델은 다음과 같이 화살표 방향이 있는 선으로 관계가 표시됩니다. 

 

4. 데이터 쿼리

1) SalesRevenue를 집계하고 Year, Month로 그룹화하는 새 SQL 쿼리를 만들고 다음 코드를 실행합니다.

SELECT  d.[Year] AS CalendarYear,
         d.[Month] AS MonthOfYear,
         d.MonthName AS MonthName,
        SUM(so.SalesTotal) AS SalesRevenue
FROM FactSalesOrder AS so
JOIN DimDate AS d ON so.SalesOrderDateKey = d.DateKey
GROUP BY d.[Year], d.[Month], d.MonthName
ORDER BY CalendarYear, MonthOfYear;

 

2) 쿼리를 다음과 같이 수정하여 집계에 CountryRegion 그룹화를 추가하면 연도, 월 및 판매 지역별로 집계된 판매 수익을 볼 수 있습니다.

SELECT  d.[Year] AS CalendarYear,
        d.[Month] AS MonthOfYear,
        d.MonthName AS MonthName,
        c.CountryRegion AS SalesRegion,
       SUM(so.SalesTotal) AS SalesRevenue
FROM FactSalesOrder AS so
JOIN DimDate AS d ON so.SalesOrderDateKey = d.DateKey
JOIN DimCustomer AS c ON so.CustomerKey = c.CustomerKey
GROUP BY d.[Year], d.[Month], d.MonthName, c.CountryRegion
ORDER BY CalendarYear, MonthOfYear, SalesRegion;

 

5. 보기 만들기

Microsoft Fabric의 Data Warehouse에는 관계형 데이터베이스에서 사용할 수 있는 것과 동일한 기능이 많이 있습니다.

예를 들어   저장 프로시저와 같은 데이터베이스 개체를 만들어 SQL 논리를 캡슐화할 수 있습니다.

 

1) 이전에 만든 쿼리를 다음과 같이 수정하여 뷰를 만드는 쿼리를 실행합니다.

(뷰를 만들려면 ORDER BY 절을 제거해야 함).

 

2) 만들어진 뷰를 확인합니다. 

SELECT CalendarYear, MonthName, SalesRegion, SalesRevenue
FROM vSalesByRegion
ORDER BY CalendarYear, MonthOfYear, SalesRegion;

 

※ 시각적 쿼리 만들기

SQL 코드를 작성하는 대신 그래픽 쿼리 디자이너를 사용하여 데이터 웨어하우스의 테이블을 쿼리할 수 있습니다. 

이 환경은 Power Query 온라인과 유사하고 복잡한 작업은 Power Query M 언어를 사용할 수 있습니다. 

1) 상단의 "새 시각적 쿼리" 버튼을 클릭합니다. 

2) FactSalesOrder 테이블을 캔버스에 끌어오면 테이블의 미리 보기가 표시됩니다. 

 

3) DimProduct 테이블도 캔버스로 끌어옵니다. 

4) 캔버스의 FactSalesOrder 테이블 끝의 "+"버튼을 클릭하여 쿼리를 병합합니다.

 

5) 병합할 오른쪽 테이블을 DimProduct로 선택하고 조인 종류가 "왼쪽 우선 외부"인지 체크하고 "확인"을 클릭합니다.

 

6) 미리 보기에 DimProduct 열이 추가되었는지 보고, 열이름 오른쪽의 화살표를 클릭하여 DimProduct 테이블의 열 중 ProductName을 선택하고 "확인"을 클릭하여 DimProduct테이블의 열을 FactSalesOrder테이블에 확장합니다. 

 

7) 시각적 쿼리의 결과를 테이블로 저장하거나, Excel파일로 다운로드하거나 시각화할 수 있습니다. 

 

6. 시각화 

왼쪽 아래 모델 탭을 클릭하여 시각화에 사용하지 않을 열은 숨기기 버튼으로 숨기고 상단의 "새 보고서"버튼을 클릭하여 Power BI 시각화를 보고서를 만들 수 있습니다.