자습서: 웨어하우스에서 T-SQL을 사용하는 시간 이동
이 자습서에서는 T-SQL 문을 사용하여 웨어하우스 테이블에서 시간 이동 를 수행하는 방법을 배워봅니다. 시간 여행은 특정 시점에 존재했던 데이터를 질의하는 것을 의미하며, 패브릭 웨어하우스에서 데이터 보존 덕분에 자동으로 가능합니다.
참고 항목
이 자습서는 엔드 투 엔드 시나리오일부를 구성합니다. 이 자습서를 완료하려면 먼저 다음 자습서를 완료해야 합니다.
시간 여행 쿼리 작업하기
이 작업에서는 판매별로 상위 10개 고객에 대한 보기를 만드는 방법을 알아봅니다. 다음 작업에서 보기를 사용하여 타임 트래블 쿼리를 실행할 것입니다.
첫 번째 자습서 만든 작업 영역이 열려 있는지 확인합니다.
홈 리본에서 새 SQL 쿼리을 선택합니다.
쿼리 편집기에 다음 코드를 붙여 넣습니다. 이 코드는
Top10Customers
뷰를 만듭니다. 뷰는 쿼리를 사용하여 매출을 기준으로 상위 10명의 고객을 검색합니다.--Create the Top10Customers view. CREATE VIEW [dbo].[Top10Customers] AS SELECT TOP(10) FS.[CustomerKey], DC.[Customer], SUM(FS.[TotalIncludingTax]) AS [TotalSalesAmount] FROM [dbo].[dimension_customer] AS DC INNER JOIN [dbo].[fact_sale] AS FS ON DC.[CustomerKey] = FS.[CustomerKey] GROUP BY FS.[CustomerKey], DC.[Customer] ORDER BY [TotalSalesAmount] DESC;
쿼리를 실행합니다.
실행이 완료되면 쿼리 이름을
Create Top 10 Customer View
로 변경하세요.탐색기 창의
dbo
스키마에 대한 Views 폴더 내에서Top10Customers
보기가 있는지 확인합니다.시간 이동 쿼리를 사용하는 새 쿼리를 만듭니다.
쿼리 편집기에 다음 코드를 붙여 넣습니다. 이 코드는 단일 팩트 행에 대한
TotalIncludingTax
값을 갱신하여 의도적으로 총 매출을 부풀립니다. 또한 현재 타임스탬프를 검색합니다.--Update the TotalIncludingTax for a single fact row to deliberately inflate its total sales. UPDATE [dbo].[fact_sale] SET [TotalIncludingTax] = 200000000 WHERE [SaleKey] = 22632918; --For customer 'Tailspin Toys (Muir, MI)' GO --Retrieve the current (UTC) timestamp. SELECT CURRENT_TIMESTAMP;
참고 항목
현재는 시간 이동에 UTC(협정 세계시) 표준 시간대만 사용할 수 있습니다.
쿼리를 실행합니다.
실행이 완료되면, 쿼리 이름을
Time Travel
으로 변경하십시오.결과 창에서 타임스탬프 값(값은 현재 UTC 날짜 및 시간이 됩니다)을 확인합니다.
현재
상위 10명의 고객을 검색하려면 새 쿼리 편집기에서 다음 문을 붙여넣습니다. 이 코드는 FOR TIMESTAMP AS OF
쿼리 힌트를 사용하여 상위 10명의 고객을 검색합니다.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
쿼리의 이름을
Time Travel Now
으로 변경하세요.Time Travel
쿼리로 돌아가서 복사 명령을 사용하여 쿼리 결과를 복사합니다.Time Travel Now
쿼리로 돌아간 다음,YOUR_TIMESTAMP
을 클립보드에 복사한 타임스탬프로 교체합니다.쿼리를 실행하고, 두 번째로 높은
CustomerKey
값이Tailspin Toys (Muir, MI)
에 대해 49임을 확인하세요.타임스탬프에서 1분을 빼서 타임스탬프 값을 이전 시간
으로 수정합니다. 쿼리를 다시 실행하고 두 번째로 높은
CustomerKey
값이Wingtip Toys (Sarversville, PA)
에 대해 381임을 확인하세요.
팁
시간 여행의 더 많은 예를 보려면 방법: 문 수준에서 시간 여행을 사용하여 쿼리 수행을 참조하세요.