Wykonywanie zapytań o dane, które istniały w przeszłości

Dotyczy:✅ końcowego punktu analizy SQL i magazynu danych w usłudze Microsoft Fabric

Microsoft Fabric oferuje możliwość wykonywania zapytań względem danych historycznych w stanie, w jakim istniały one w przeszłości, w elementach magazynu danych i punktu końcowego analizy SQL (wersja zapoznawcza). Możliwość wykonywania zapytań o dane z określonego znacznika czasu jest znana w branży magazynowania danych jako podróż w czasie.

  • Podróż w czasie ułatwia stabilne raportowanie, utrzymując spójność i dokładność danych w czasie.
  • Podróż w czasie umożliwia analizę trendów historycznych przez wykonywanie zapytań w różnych poprzednich punktach w czasie i pomaga przewidzieć przyszłe trendy.
  • Podróż w czasie upraszcza porównywanie niskich kosztów między poprzednimi wersjami danych.
  • Podróże w czasie pomagają w analizowaniu wydajności na przestrzeni czasu.
  • Podróż w czasie umożliwia organizacjom przeprowadzanie inspekcji zmian danych w czasie, często wymaganych do celów zgodności.
  • Podróż czasowa pomaga odtworzyć wyniki z modeli uczenia maszynowego.
  • Podróż czasowa może wysyłać zapytania do tabel, ponieważ istniały w określonym punkcie w czasie w wielu magazynach w tym samym obszarze roboczym.
  • Wskazówki dotyczące podróży w czasie można używać z tabelami tymczasowymi o zakresie sesji, które nie są dotknięte składnią TIMESTAMP.

Co to jest podróż w czasie?

Podróż w czasie w magazynie danych jest tanim i wydajnym rozwiązaniem umożliwiającym szybkie wykonywanie zapytań o wcześniejsze wersje danych.

Obecnie usługa Microsoft Fabric umożliwia pobieranie przeszłych stanów danych w następujący sposób:

Podróż w czasie za pomocą polecenia T-SQL FOR TIMESTAMP AS OF

Tabele można odpytywać za pomocą składni T-SQL OPTION FOR TIMESTAMP AS OF w celu pobrania danych z określonych momentów w przeszłości. Klauzula FOR TIMESTAMP AS OF ma wpływ na całą instrukcję, w tym wszystkie połączone tabele magazynu.

Wyniki uzyskane z zapytań dotyczących podróży czasowych są z natury tylko do odczytu. Operacje zapisu, takie jak INSERT, UPDATE i DELETE, nie mogą występować podczas używania podpowiedzi FOR TIMESTAMP AS OF w zapytaniu.

Użyj klauzuli OPTION, aby określić wskazówkę zapytania FOR TIMESTAMP AS OF. Zapytania zwracają dane dokładnie tak, jak istniały w znaczniku czasu określonym jako YYYY-MM-DDTHH:MM:SS[.fff]. Na przykład:

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

Składni CONVERT użyj do niezbędnego formatu daty/godziny ze stylem 126.

Znacznik czasu można określić tylko raz przy użyciu klauzuli OPTION dla zapytań, procedur składowanych, widoków itp. Element OPTION ma zastosowanie do wszystkich elementów w instrukcji SELECT .

Aby zapoznać się z przykładami, zobacz Instrukcje: wykonywanie zapytań przy użyciu podróży czasowej.

Przechowywanie danych w Fabric Data Warehouse

  • W przypadku Fabric Data Warehouse funkcja podróży w czasie jest ograniczona przez konfigurowalny okres przechowywania danych magazynu danych, który jest ustawiany automatycznie.
  • W przypadku punktu końcowego analizy SQL usługi Lakehouse podróż w czasie jest ograniczona na poziomie tabeli przez ustawienia przechowywania próżni. Konserwacja tabel usługi Lakehouse może być uruchamiana ręcznie w portalu Fabric lub jako zaplanowany i zorganizowany proces przy użyciu notesów, potoków lub interfejsu API REST.

W Microsoft Fabric magazyn automatycznie zachowuje i przechowuje różne wersje danych na podstawie konfigurowanego okresu przechowywania. Domyślny okres przechowywania magazynu wynosi 30 dni kalendarzowych i można go skonfigurować na podstawie potrzeb organizacji. Umożliwia to wykonywanie zapytań dotyczących tabel zgodnie z poprzednim punktem w czasie w oknie przechowywania. Wszystkie wstawki, aktualizacje i usunięcia dokonane w magazynie są zachowywane.

Okres przechowywania rozpoczyna się automatycznie od momentu utworzenia magazynu. Wygasłe pliki są automatycznie usuwane po osiągnięciu progu przechowywania.

  • Obecnie instrukcja SELECT z FOR TIMESTAMP AS OF wskazówką zapytania zwraca najnowszą wersję schematu tabeli.
  • Wszystkie rekordy usunięte w tabeli są dostępne do odpytywania, ponieważ istniały przed usunięciem, jeśli usunięcie mieści się w okresie przechowywania.
  • Zapytanie podróży czasowej do punktu w czasie przed zmianą schematu powiedzie się tylko wtedy, gdy odwołuje się do kolumn, które już istniały w tym momencie w czasie, i kończy się niepowodzeniem, jeśli odwołuje się do kolumn wprowadzonych później.

Scenariusze podróży w czasie

Rozważ możliwość przechodzenia na czas do poprzednich danych w następujących scenariuszach:

Stabilne raportowanie

Częste wykonywanie zadań wyodrębniania, przekształcania i ładowania (ETL) jest niezbędne, aby nadążyć za stale zmieniającym się krajobrazem danych. Możliwość przenoszenia w czasie wspiera ten cel, zapewniając integralność danych i elastyczność generowania raportów na podstawie wyników zapytania, które są zwracane z wcześniejszego punktu w czasie, np. poprzedni wieczór, podczas gdy przetwarzanie w tle trwa.

Działania ETL mogą być uruchamiane współbieżnie, podczas gdy ta sama tabela jest badana co do wcześniejszego punktu w czasie.

Trend historyczny i analiza predykcyjna

Podróż w czasie upraszcza analizę danych historycznych, pomagając odkryć cenne trendy i wzorce poprzez wykonywanie zapytań dotyczących danych w różnych poprzednich przedziałach czasu. Ułatwia to analizę predykcyjną, umożliwiając eksperymentowanie z historycznymi zestawami danych i szkolenie modeli predykcyjnych. Pomaga ona w przewidywaniu przyszłych trendów i pomaga w podejmowaniu dobrze świadomych decyzji opartych na danych.

Analiza i porównanie

Podróże czasowe oferują wydajną i opłacalną możliwość rozwiązywania problemów, zapewniając historyczny obiektyw do analizy i porównania, ułatwiając identyfikację głównej przyczyny.

Analiza wydajności

Podróż w czasie może pomóc w analizie wydajności zapytań magazynu w nadgodzinach. Pomaga to zidentyfikować trendy spadku wydajności na podstawie tego, które zapytania można zoptymalizować.

Inspekcja i zgodność

Podróż w czasie usprawnia inspekcję i procedury zgodności, umożliwiając audytorom przechodzenie przez historię danych. Pomaga to nie tylko zachować zgodność z przepisami, ale także zwiększyć pewność i przejrzystość.

Modele uczenia maszynowego

Możliwości podróży w czasie pomagają odtworzyć wyniki modeli uczenia maszynowego, ułatwiając analizę danych historycznych i symulowanie rzeczywistych scenariuszy. Zwiększa to ogólną niezawodność modeli, dzięki czemu można podejmować dokładne decyzje oparte na danych.

Uwagi dotyczące projektowania

Zagadnienia dotyczące OPCJI SYGNATURY CZASOWEJ JAKO WSKAZÓWKI ZAPYTANIA:

  • Nie można używać wskazówki zapytania FOR TIMESTAMP AS OF do tworzenia widoków z jakiegokolwiek wcześniejszego punktu w okresie przechowywania. Może być używane do wykonywania zapytań o widoki na wcześniejszy moment w czasie, w ramach okresu przechowywania.
  • Wskazówka FOR TIMESTAMP AS OF zapytania może być zastosowana tylko raz w instrukcji SELECT.
  • Wskazówkę FOR TIMESTAMP AS OF zapytania można zdefiniować w instrukcji SELECT w procedurze składowanej.
  • Wskazówka dotycząca zapytania FOR TIMESTAMP AS OF nie wpływa na tabele tymczasowe o zasięgu sesji, takie jak #temp_table.

Uprawnienia do podróży w czasie

Każdy użytkownik, który ma rolę obszaru roboczego Administrator, Członek, Współpracownik lub Osoba przeglądająca, może wysyłać zapytania do tabel w odniesieniu do przeszłych punktów w czasie. Gdy użytkownicy wysyłają zapytania do tabel, ograniczenia nałożone przez zabezpieczenia na poziomie kolumny (CLS), zabezpieczenia na poziomie wiersza (RLS) lub dynamiczne maskowanie danych (DDM) są nakładane automatycznie.

Ograniczenia

  • Wszelkie modyfikacje wprowadzone w schemacie tabeli, w tym między innymi dodawanie lub usuwanie kolumn, można uwzględnić w zapytaniach dopiero od chwili wprowadzenia tej zmiany. Zapytanie podróży czasowej do punktu w czasie przed zmianą schematu powiedzie się tylko wtedy, gdy odwołuje się do kolumn, które już istniały w tym momencie w czasie, i kończy się niepowodzeniem, jeśli odwołuje się do kolumn wprowadzonych później. Podobnie usunięcie i ponowne utworzenie tabeli z tymi samymi danymi spowoduje usunięcie jego historii.
  • Podaj maksymalnie trzy cyfry sekund ułamkowych w znaczniku czasu. Jeśli podasz większą precyzję, zostanie wyświetlony komunikat 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 29o błędzie .
  • Obecnie tylko strefa czasowa koordynowanego czasu uniwersalnego (UTC) jest używana do podróży w czasie.
  • Obecnie przechowywanie danych dla zapytań dotyczących podróży czasowych można skonfigurować z zakresu od 1 do 120 dni kalendarzowych. Domyślny okres przechowywania wynosi trzydzieści dni kalendarzowych. Aby uzyskać więcej informacji, zobacz Konfigurowanie przechowywania danych.
  • FOR TIMESTAMP AS OF wartości w klauzuli OPTION muszą być deterministyczne. Aby zapoznać się z przykładem parametryzacji, zobacz Podróż w czasie w procedurze składowanej.
  • Wskazówka zapytania OPTION FOR TIMESTAMP AS OF może być używana tylko w zapytaniach rozpoczynających się od instrukcji SELECT.
  • Definicje widoków nie mogą zawierać OPTION FOR TIMESTAMP AS OF składni języka T-SQL. Do widoku można wykonywać zapytania przy użyciu SELECT .. FROM <view> ... OPTION FOR TIMESTAMP AS OF składni języka T-SQL. Nie można jednak wykonywać zapytań dotyczących poprzednich danych z tabel w widoku przed utworzeniem widoku.
  • Składnia języka T-SQL do podróży w czasie FOR TIMESTAMP AS OF nie jest obecnie obsługiwana w trybie DirectQuery w programie Power BI Desktop ani w opcji Eksploruj te dane.
  • Obecnie podróż w czasie dla punktów końcowych analizy SQL jest włączona tylko dla punktów końcowych analizy SQL utworzonych za pomocą włączonej nowej synchronizacji metadanych (wersja zapoznawcza).

Następny krok