과거에 존재했던 데이터 쿼리
적용 대상✅: Microsoft Fabric 내 Warehouse
Microsoft Fabric의 Warehouse는 과거와 마찬가지로 기록 데이터를 쿼리하는 기능을 제공합니다. 특정 타임스탬프에서 데이터를 쿼리하는 기능은 데이터 웨어하우징 업계에서 시간 이동이라고 합니다.
- 시간 이동은 시간에 따른 데이터의 일관성과 정확도를 유지하여 안정적인 보고를 용이하게 합니다.
- 시간 이동은 다양한 과거 시점을 쿼리하여 기록 추세 분석을 가능하게 하며 향후 추세를 예측하는 데 도움이 됩니다.
- 시간 이동은 이전 버전의 데이터 간 저렴한 비교를 간소화합니다.
- 시간 이동은 시간에 따른 성능을 분석하는 데 도움이 됩니다.
- 시간 이동은 조직이 시간에 따른 데이터 변경 내용을 감사할 수 있게 해 줍니다. 규정 준수를 위해 필요한 경우가 많습니다.
- 시간 이동은 기계 학습 모델의 결과를 재현하는 데 도움이 됩니다.
- 시간 이동은 동일한 작업 영역의 여러 웨어하우스에서 특정 시점에 존재했던 테이블을 쿼리할 수 있습니다.
시간 여행이란?
데이터 웨어하우스의 시간 이동은 이전 버전의 데이터를 신속하게 쿼리하는 저렴한 비용 및 효율적인 기능입니다.
Microsoft Fabric은 현재 다음과 같은 방법으로 과거 데이터 상태를 검색할 수 있습니다.
FOR TIMESTAMP AS OF T-SQL 명령을 사용하여 시간 이동
웨어하우스 항목 내에서 OPTION FOR TIMESTAMP AS OF T-SQL 구문을 사용하여 테이블을 쿼리하여 과거 시점의 데이터를 검색할 수 있습니다. 이 절은 FOR TIMESTAMP AS OF
조인된 모든 웨어하우스 테이블을 포함하여 전체 문에 영향을 줍니다.
시간 이동 쿼리에서 얻은 결과는 기본적으로 읽기 전용입니다. FOR TIMESTAMP AS OF 쿼리 힌트를 사용하는 동안 INSERT, UPDATE 및 DELETE와 같은 쓰기 작업은 발생할 수 없습니다.
OPTION 절을 사용하여 FOR TIMESTAMP AS OF 쿼리 힌트를 지정합니다. 쿼리는 타임스탬프에 존재했던 것과 정확하게 데이터를 반환하며, 로 지정됩니다 YYYY-MM-DDTHH:MM:SS[.fff]
. 예시:
SELECT *
FROM [dbo].[dimension_customer] AS DC
OPTION (FOR TIMESTAMP AS OF '2024-03-13T19:39:35.28'); --March 13, 2024 at 7:39:35.28 PM UTC
필요한 날짜/시간 형식은 스타일 126으로 CONVERT
구문을 사용합니다.
쿼리, 저장 프로시저, 뷰 등에 대한 절을 OPTION
사용하여 타임스탬프를 한 번만 지정할 수 있습니다. SELECT OPTION
문 내의 모든 항목에 적용됩니다.
샘플은 방법: 시간 여행을 사용하여 쿼리를 참조하세요.
데이터 보존
Microsoft Fabric에서 웨어하우스는 30일의 기본 보존 기간까지 다양한 버전의 데이터를 자동으로 보존하고 유지 관리합니다. 이렇게 하면 이전 특정 시점을 기준으로 테이블을 쿼리할 수 있습니다. 데이터 웨어하우스에 대한 모든 삽입, 업데이트 및 삭제는 유지됩니다. 보존은 웨어하우스가 만들어지는 순간부터 자동으로 시작됩니다. 만료된 파일은 보존 임계값 이후에 자동으로 삭제됩니다.
- 현재 쿼리 힌트가 있는
SELECT
문은FOR TIMESTAMP AS OF
최신 버전의 테이블 스키마를 반환합니다. - 삭제가 보존 기간 내에 있는 경우 삭제 전에 존재했던 것처럼 테이블에서 삭제된 모든 레코드를 쿼리할 수 있습니다.
- 테이블에서 열을 추가하거나 제거하는 것을 포함하지만 제한되지 않는 테이블의 스키마를 수정한 후에는 스키마를 변경하기 전에 쿼리할 수 없습니다. 마찬가지로 동일한 데이터를 사용하여 테이블을 삭제하고 다시 만들면 해당 기록이 제거됩니다.
시간 이동 시나리오
다음 시나리오에서는 이전 데이터로의 이동 시간을 고려할 수 있습니다.
안정적인 보고
ETL(추출, 변환 및 로드) 작업의 빈번한 실행은 끊임없이 변화하는 데이터 환경을 따라가기 위해 필수적입니다. 시간 이동 기능은 백그라운드 처리가 진행되는 동안 이전 저녁과 같이 과거 시점으로 반환된 쿼리 결과를 기반으로 보고서를 생성할 수 있는 유연성을 제공하면서 데이터 무결성을 보장함으로써 이 목표를 지원합니다.
ETL 활동은 동시에 실행될 수 있으며 이전 시점과 동일한 테이블을 쿼리할 수 있습니다.
기록 추세 및 예측 분석
시간 이동은 기록 데이터의 분석을 간소화하여 다양한 과거 시간 프레임에서 데이터를 쿼리하여 중요한 추세와 패턴을 파악하는 데 도움이 됩니다. 이를 통해 기록 데이터 세트를 실험하고 예측 모델을 학습하여 예측 분석을 용이하게 합니다. 향후 추세를 예측하는 데 도움이 되며, 정보에 입각한 데이터 기반 의사 결정을 내리는 데 도움이 됩니다.
분석 및 비교
시간 이동은 분석 및 비교를 위한 기록 렌즈를 제공하여 근본 원인의 식별을 용이하게 함으로써 효율적이고 비용 효율적인 문제 해결 기능을 제공합니다.
성능 분석
시간 이동은 웨어하우스 쿼리 초과 작업의 성능을 분석하는 데 도움이 될 수 있습니다. 이렇게 하면 쿼리를 최적화할 수 있는 성능 저하 추세를 식별할 수 있습니다.
감사 및 규정 준수
시간 이동은 감사자가 데이터 기록을 탐색할 수 있도록 하여 감사 및 규정 준수 절차를 간소화합니다. 이는 규정을 준수하는 데 도움이 될 뿐만 아니라 보증과 투명성을 향상시키는 데에도 도움이 됩니다.
기계 학습 모델
시간 이동 기능은 기록 데이터의 분석을 용이하게 하고 실제 시나리오를 시뮬레이션하여 기계 학습 모델의 결과를 재현하는 데 도움이 됩니다. 이렇게 하면 정확한 데이터 기반 의사 결정을 내릴 수 있도록 모델의 전반적인 안정성이 향상됩니다.
디자인 고려 사항
OPTION FOR TIMESTAMP AS OF 쿼리 힌트에 대한 고려 사항:
- 쿼리 힌트는
FOR TIMESTAMP AS OF
보존 기간 내의 이전 시점을 기준으로 보기를 만드는 데 사용할 수 없습니다. 보존 기간 내에 과거 시점을 기준으로 뷰를 쿼리하는 데 사용할 수 있습니다. - 쿼리 힌트는
FOR TIMESTAMP AS OF
문 내에서SELECT
한 번만 사용할 수 있습니다. - 쿼리 힌트는
FOR TIMESTAMP AS OF
저장 프로시저의SELECT
문 내에서 정의할 수 있습니다.
시간 이동에 대한 사용 권한
관리자, 멤버, 기여자 또는 뷰어 작업 영역 역할이 있는 모든 사용자는 과거 시점을 기준으로 테이블을 쿼리할 수 있습니다. 사용자가 테이블을 쿼리할 때 CLS(열 수준 보안), RLS(행 수준 보안) 또는 DDM(동적 데이터 마스킹)에 의해 적용되는 제한이 자동으로 적용됩니다.
제한 사항
타임스탬프에서 소수 자릿수 초의 최대 3자리를 제공합니다. 더 정밀도를 제공하면 오류 메시지가 표시됩니다
An error occurred during timestamp conversion. Please provide a timestamp in the format yyyy-MM-ddTHH:mm:ss[.fff]. Msg 22440, Level 16, State 1, Code line 29
.현재는 시간 이동에 UTC(협정 세계시) 표준 시간대만 사용됩니다.
현재 시간 이동 쿼리의 데이터 보존 기간은 30일입니다.
FOR TIMESTAMP AS OF
절의 값은OPTION
결정적이어야 합니다. 매개 변수화의 예는 저장 프로시저의 시간 이동을 참조하세요.시간 이동은 Lakehouse의 SQL 분석 엔드포인트에 대해 지원되지 않습니다.
구문은
OPTION FOR TIMESTAMP AS OF
문으로SELECT
시작하는 쿼리에서만 사용할 수 있습니다. 와 같은INSERT INTO SELECT
쿼리를CREATE TABLE AS SELECT
사용할OPTION FOR TIMESTAMP AS OF
수 없습니다. 대신 특정 시점에 웨어하우스 테이블을 복제하는 기능을 고려합니다.뷰 정의는 구문을 포함할
OPTION FOR TIMESTAMP AS OF
수 없습니다. 뷰는 구문을 사용하여SELECT .. FROM <view> ... OPTION FOR TIMESTAMP AS OF
쿼리할 수 있습니다. 그러나 뷰를 만들기 전의 뷰에 있는 테이블의 과거 데이터를 쿼리할 수는 없습니다.FOR TIMESTAMP AS OF
시간 이동 구문은 현재 Power BI Desktop Direct 쿼리 모드 또는 이 데이터 탐색 옵션에서 지원되지 않습니다.