다음을 통해 공유


과거에 존재했던 데이터 쿼리

적용 대상:✅ Microsoft Fabric 내 웨어하우스

Microsoft Fabric의 웨어하우스는 과거와 마찬가지로 기록 데이터를 쿼리하는 기능을 제공합니다. 특정 타임스탬프에서 데이터를 쿼리하는 기능은 데이터 웨어하우징 업계에서 시간 이동이라고 합니다.

  • 시간 이동은 시간에 따른 데이터의 일관성과 정확도를 유지하여 안정적인 보고를 용이하게 합니다.
  • 시간 이동은 다양한 과거 시점을 쿼리하여 기록 추세 분석을 가능하게 하며 향후 추세를 예측하는 데 도움이 됩니다.
  • 시간 이동은 이전 버전의 데이터 간 저렴한 비교를 간소화합니다.
  • 시간 이동은 시간 경과에 따른 성능을 분석하는 데 도움이 됩니다.
  • 시간 이동을 통해 조직은 시간 경과에 따른 데이터 변경 내용을 감사할 수 있으며, 이는 규정 준수를 위해 필요한 경우가 많습니다.
  • 시간 이동은 기계 학습 모델의 결과를 재현하는 데 도움이 됩니다.
  • 시간 이동은 동일한 작업 영역의 여러 웨어하우스에서 특정 시점에 존재했던 테이블을 쿼리할 수 있습니다.

시간 이동이란?

Data 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, UPDATEDELETE와 같은 쓰기 작업은 발생할 수 없습니다.

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 절을 사용하여 타임스탬프를 한 번만 지정할 수 있습니다. OPTIONSELECT 문 내의 모든 항목에 적용됩니다.

샘플은 방법: 시간 이동을 사용한 쿼리를 참조하세요.

데이터 보존

Microsoft Fabric에서 웨어하우스는 30일의 기본 보존 기간까지 다양한 버전의 데이터를 자동으로 보존하고 유지 관리합니다. 이를 통해 이전 특정 시점을 기준으로 테이블을 쿼리할 수 있습니다. Data Warehouse에 대한 모든 삽입, 업데이트 및 삭제는 유지됩니다. 보존은 웨어하우스가 만들어지는 순간부터 자동으로 시작됩니다. 만료된 파일은 보존 임계값 이후에 자동으로 삭제됩니다.

  • 현재 FOR TIMESTAMP AS OF 쿼리 힌트가 있는 SELECT 문은 최신 버전의 테이블 스키마를 반환합니다.
  • 삭제가 보존 기간 내에 있는 경우 삭제 전에 존재했던 것처럼 테이블에서 삭제된 모든 레코드를 쿼리할 수 있습니다.
  • 테이블에서 열을 추가하거나 제거하는 작업을 포함하되 이에 국한되지 않는 테이블 스키마 수정 후에는 스키마를 변경하기 전에 쿼리할 수 없습니다. 마찬가지로 동일한 데이터를 사용하여 테이블을 삭제하고 다시 만들면 해당 기록이 제거됩니다.

시간 이동 시나리오

다음 시나리오에서는 이전 데이터로의 이동 시간을 고려할 수 있습니다.

안정적인 보고

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일입니다.

  • OPTION 절의 FOR TIMESTAMP AS OF 값은 결정적이어야 합니다. 매개 변수화의 예는 저장 프로시저의 시간 이동을 참조하세요.

  • 시간 이동은 Lakehouse의 SQL 분석 엔드포인트에 대해 지원되지 않습니다.

  • OPTION FOR TIMESTAMP AS OF 구문은 SELECT 문으로 시작하는 쿼리에서만 사용할 수 있습니다. INSERT INTO SELECTCREATE 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 쿼리 모드 또는 이 데이터 탐색 옵션에서 지원되지 않습니다.

다음 단계