Odświeżanie przyrostowe i dane w czasie rzeczywistym dla modeli semantycznych
Odświeżanie przyrostowe i dane w czasie rzeczywistym dla modeli semantycznych w usłudze Power BI zapewniają wydajne sposoby obsługi danych dynamicznych i poprawy wydajności odświeżania modelu. Automatyzując tworzenie partycji i zarządzanie nimi, odświeżanie przyrostowe zmniejsza ilość danych, które należy odświeżyć i umożliwia włączenie danych w czasie rzeczywistym. W tym artykule opisano sposób konfigurowania i używania funkcji odświeżania przyrostowego w usłudze Power BI w celu przechwytywania szybko poruszających się danych i zwiększania wydajności.
Odświeżanie przyrostowe rozszerza zaplanowane operacje odświeżania, zapewniając automatyczne tworzenie partycji i zarządzanie tabelami modelu semantycznego, które często ładują nowe i zaktualizowane dane. W przypadku większości modeli co najmniej jedna tabela zawiera dane transakcji, które często zmieniają się i mogą rosnąć wykładniczo, na przykład tabelę faktów w schemacie relacyjnej bazy danych lub gwiazdy. Zasady odświeżania przyrostowego do partycjonowania tabeli, odświeżania tylko najnowszych partycji importu i opcjonalnie przy użyciu innej partycji DirectQuery dla danych w czasie rzeczywistym mogą znacząco zmniejszyć ilość danych, które należy odświeżyć. Jednocześnie te zasady zapewniają, że najnowsze zmiany w źródle danych zostaną uwzględnione w wynikach zapytania.
W przypadku odświeżania przyrostowego i danych w czasie rzeczywistym:
- Wymagana jest mniejsza liczba cykli odświeżania dla szybko zmieniających się danych. Tryb DirectQuery pobiera najnowsze aktualizacje danych w miarę przetwarzania zapytań bez konieczności wysokiego tempa odświeżania.
- Odświeżanie jest szybsze. Należy odświeżyć tylko najnowsze dane, które uległy zmianie.
- Odświeżanie jest bardziej niezawodne. Długotrwałe połączenia z nietrwałymi źródłami danych nie są konieczne. Zapytania dotyczące danych źródłowych działają szybciej, co zmniejsza ryzyko zakłócania problemów z siecią.
- Zużycie zasobów jest zmniejszane. Mniej danych do odświeżenia zmniejsza ogólne zużycie pamięci i innych zasobów zarówno w usłudze Power BI, jak i w systemach źródeł danych.
- Duże modele semantyczne są włączone. Semantyczne modele z potencjalnie miliardami wierszy mogą rosnąć bez konieczności pełnego odświeżania całego modelu przy użyciu każdej operacji odświeżania.
- Konfiguracja jest łatwa. Zasady odświeżania przyrostowego są definiowane w programie Power BI Desktop z zaledwie kilkoma zadaniami. Gdy program Power BI Desktop publikuje raport, usługa automatycznie stosuje te zasady przy każdym odświeżeniu.
Podczas publikowania modelu programu Power BI Desktop w usłudze każda tabela w nowym modelu ma jedną partycję. Ta pojedyncza partycja zawiera wszystkie wiersze dla tej tabeli. Jeśli tabela jest duża, powiedzmy z dziesiątkami milionów wierszy lub więcej, odświeżanie tej tabeli może zająć dużo czasu i zużywać nadmierną ilość zasobów.
W przypadku odświeżania przyrostowego usługa dynamicznie partycjonuje i oddziela dane, które muszą być często odświeżane z danych, które mogą być odświeżane rzadziej. Dane tabeli są filtrowane przy użyciu parametrów daty/godziny dodatku Power Query z zastrzeżonymi nazwami RangeStart
z uwzględnieniem wielkości liter i RangeEnd
. Podczas konfigurowania odświeżania przyrostowego w programie Power BI Desktop te parametry są używane do filtrowania tylko małego okresu danych załadowanych do modelu. Gdy program Power BI Desktop publikuje raport w usługa Power BI, przy pierwszej operacji odświeżania usługa tworzy przyrostowe odświeżanie i partycje historyczne oraz opcjonalnie partycję DirectQuery w czasie rzeczywistym na podstawie ustawień zasad odświeżania przyrostowego. Następnie usługa zastępuje wartości parametrów w celu filtrowania i wykonywania zapytań dotyczących danych dla każdej partycji na podstawie wartości daty/godziny dla każdego wiersza.
Po każdym kolejnym odświeżeniu filtry zapytania zwracają tylko te wiersze w okresie odświeżania dynamicznie zdefiniowanym przez parametry. Te wiersze z datą/godziną w okresie odświeżania są odświeżane. Wiersze z datą/godziną nie są już w okresie odświeżania, a następnie stają się częścią okresu historycznego, który nie jest odświeżany. Jeśli partycja DirectQuery w czasie rzeczywistym jest uwzględniona w zasadach odświeżania przyrostowego, jego filtr jest również aktualizowany tak, aby pobierał wszelkie zmiany występujące po okresie odświeżania. Zarówno okresy odświeżania, jak i historyczne są wprowadzane do przodu. W miarę tworzenia nowych partycji odświeżania przyrostowego partycje odświeżania nie są już w okresie odświeżania stają się partycjami historycznymi. W miarę upływu czasu partycje historyczne stają się mniej szczegółowe w miarę ich scalania. Gdy partycja historyczna nie znajduje się już w okresie historycznym zdefiniowanym przez zasady, zostanie całkowicie usunięta z modelu. To zachowanie jest nazywane wzorcem okna kroczącego.
Piękno odświeżania przyrostowego polega na tym, że usługa obsługuje wszystkie te elementy na podstawie zdefiniowanych zasad odświeżania przyrostowego. W rzeczywistości proces i partycje utworzone na jego podstawie nie są widoczne w usłudze. W większości przypadków dobrze zdefiniowane zasady odświeżania przyrostowego są niezbędne do znacznego zwiększenia wydajności odświeżania modelu. Jednak partycja DirectQuery w czasie rzeczywistym jest obsługiwana tylko w przypadku modeli w pojemnościach Premium. Usługa Power BI Premium umożliwia również bardziej zaawansowane scenariusze partycji i odświeżania za pośrednictwem punktu końcowego XML for Analysis (XMLA).
Wymagania
W następnych sekcjach opisano obsługiwane plany i źródła danych.
Obsługiwane plany
Odświeżanie przyrostowe jest obsługiwane w przypadku modeli usługi Power BI Premium, Premium na użytkownika, Power BI Pro i Power BI Embedded.
Pobieranie najnowszych danych w czasie rzeczywistym z trybem DirectQuery jest obsługiwane tylko w przypadku modeli usługi Power BI Premium, Premium na użytkownika i Power BI Embedded.
Obsługiwane źródła danych
Odświeżanie przyrostowe i dane w czasie rzeczywistym działają najlepiej w przypadku strukturalnych, relacyjnych źródeł danych, takich jak SQL Database i Azure Synapse, ale mogą również działać w przypadku innych źródeł danych. W każdym razie źródło danych musi obsługiwać następujące elementy:
Filtrowanie dat — źródło danych musi obsługiwać pewien mechanizm filtrowania danych według daty. W przypadku źródła relacyjnego jest to zazwyczaj kolumna dat typu danych daty/godziny lub liczby całkowitej w tabeli docelowej. Parametry RangeStart i RangeEnd, które muszą być typem danych daty/godziny, filtruj dane tabeli na podstawie kolumny daty. W przypadku kolumn dat kluczy zastępczych liczb całkowitych w postaci yyyymmdd
, można utworzyć funkcję, która konwertuje wartość daty/godziny w parametrach RangeStart i RangeEnd, aby dopasować klucze zastępcze liczby całkowitej kolumny daty. Aby dowiedzieć się więcej, zobacz Konfigurowanie odświeżania przyrostowego i danych czasu rzeczywistego — konwertowanie daty/godziny na liczbę całkowitą.
W przypadku innych źródeł danych parametry RangeStart i RangeEnd muszą być przekazywane do źródła danych w jakiś sposób, co umożliwia filtrowanie. W przypadku źródeł danych opartych na plikach, w których pliki i foldery są uporządkowane według daty, parametry RangeStart i RangeEnd mogą służyć do filtrowania plików i folderów w celu wybrania plików do załadowania. W przypadku internetowych źródeł danych parametry RangeStart i RangeEnd można zintegrować z żądaniem HTTP. Na przykład następujące zapytanie może służyć do przyrostowego odświeżania śladów z wystąpienia usługi AppInsights:
let
strRangeStart = DateTime.ToText(RangeStart,[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"]),
strRangeEnd = DateTime.ToText(RangeEnd,[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"]),
Source = Json.Document(Web.Contents("https://api.applicationinsights.io/v1/apps/<app-guid>/query",
[Query=[#"query"="traces
| where timestamp >= datetime(" & strRangeStart &")
| where timestamp < datetime("& strRangeEnd &")
",#"x-ms-app"="AAPBI",#"prefer"="ai.response-thinning=true"],Timeout=#duration(0,0,4,0)])),
TypeMap = #table(
{ "AnalyticsTypes", "Type" },
{
{ "string", Text.Type },
{ "int", Int32.Type },
{ "long", Int64.Type },
{ "real", Double.Type },
{ "timespan", Duration.Type },
{ "datetime", DateTimeZone.Type },
{ "bool", Logical.Type },
{ "guid", Text.Type },
{ "dynamic", Text.Type }
}),
DataTable = Source[tables]{0},
Columns = Table.FromRecords(DataTable[columns]),
ColumnsWithType = Table.Join(Columns, {"type"}, TypeMap , {"AnalyticsTypes"}),
Rows = Table.FromRows(DataTable[rows], Columns[name]),
Table = Table.TransformColumnTypes(Rows, Table.ToList(ColumnsWithType, (c) => { c{0}, c{3}}))
in
Table
Po skonfigurowaniu odświeżania przyrostowego wyrażenie dodatku Power Query zawierające filtr daty/godziny na podstawie parametrów RangeStart i RangeEnd jest wykonywane względem źródła danych. Jeśli filtr jest określony w kroku zapytania po początkowym zapytaniu źródłowym, ważne jest, aby składanie zapytań łączy początkowy krok zapytania z krokami odwołującymi się do parametrów RangeStart i RangeEnd. Na przykład w poniższym wyrażeniu zapytania zostanie złożone, Table.SelectRows
ponieważ natychmiast następuje krok Sql.Database
, a program SQL Server obsługuje składanie:
let
Source = Sql.Database("dwdev02","AdventureWorksDW2017"),
Data = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
#"Filtered Rows" = Table.SelectRows(Data, each [OrderDateKey] >= Int32.From(DateTime.ToText(RangeStart,[Format="yyyyMMdd"]))),
#"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each [OrderDateKey] < Int32.From(DateTime.ToText(RangeEnd,[Format="yyyyMMdd"])))
in
#"Filtered Rows1"
Nie ma potrzeby , aby ostateczne zapytanie obsługiwało składanie. Na przykład w poniższym wyrażeniu używamy niezginanego zapytania natywnego, ale integrujemy parametry RangeStart i RangeEnd bezpośrednio z bazą danych SQL:
let
Query = "select * from dbo.FactInternetSales where OrderDateKey >= '"& Text.From(Int32.From( DateTime.ToText(RangeStart,"yyyyMMdd") )) &"' and OrderDateKey < '"& Text.From(Int32.From( DateTime.ToText(RangeEnd,"yyyyMMdd") )) &"' ",
Source = Sql.Database("dwdev02","AdventureWorksDW2017"),
Data = Value.NativeQuery(Source, Query, null, [EnableFolding=false])
in
Data
Jeśli jednak zasady odświeżania przyrostowego obejmują pobieranie danych w czasie rzeczywistym za pomocą trybu DirectQuery, nie można używać przekształceń niezwiązanych. Jeśli jest to czysta zasada trybu importu bez danych w czasie rzeczywistym, aparat mashupu zapytań może zrekompensować i zastosować filtr lokalnie, co wymaga pobrania wszystkich wierszy dla tabeli ze źródła danych. Może to spowodować spowolnienie odświeżania przyrostowego, a proces może zabraknie zasobów w usługa Power BI lub w lokalnej bramie danych — skutecznie pokonując cel odświeżania przyrostowego.
Ponieważ obsługa składania zapytań różni się w przypadku różnych typów źródeł danych, należy przeprowadzić weryfikację, aby upewnić się, że logika filtru jest uwzględniona w zapytaniach uruchamianych względem źródła danych. W większości przypadków program Power BI Desktop próbuje przeprowadzić tę weryfikację podczas definiowania zasad odświeżania przyrostowego. W przypadku źródeł danych opartych na języku SQL, takich jak SQL Database, Azure Synapse, Oracle i Teradata, ta weryfikacja jest niezawodna. Jednak inne źródła danych mogą nie być w stanie zweryfikować bez śledzenia zapytań. Jeśli program Power BI Desktop nie może potwierdzić zapytań, w oknie dialogowym Konfiguracji zasad odświeżania przyrostowego zostanie wyświetlone ostrzeżenie.
Jeśli widzisz to ostrzeżenie i chcesz sprawdzić, czy występują niezbędne składanie zapytań, użyj funkcji diagnostyki Dodatku Power Query lub zapytań śledzenia przy użyciu narzędzia obsługiwanego przez źródło danych, takiego jak SQL Profiler. Jeśli składanie zapytań nie występuje, sprawdź, czy logika filtru jest uwzględniona w zapytaniu przekazywanym do źródła danych. Jeśli nie, prawdopodobnie zapytanie zawiera przekształcenie, które uniemożliwia składanie.
Przed skonfigurowaniem rozwiązania odświeżania przyrostowego należy dokładnie przeczytać i zrozumieć wskazówki dotyczące składania zapytań w programie Power BI Desktop i składania zapytań Power Query. Te artykuły mogą pomóc w ustaleniu, czy źródło danych i zapytania obsługują składanie zapytań.
Pojedyncze źródło danych
Podczas konfigurowania odświeżania przyrostowego i danych w czasie rzeczywistym przy użyciu programu Power BI Desktop lub konfigurowania zaawansowanego rozwiązania przy użyciu języka TMSL (Tabular Model Scripting Language) lub tabelarycznego modelu obiektów (TOM) za pośrednictwem punktu końcowego XMLA wszystkie partycje, zarówno import, jak i DirectQuery, muszą wysyłać zapytania o dane z jednego źródła.
Inne typy źródeł danych
Korzystając z bardziej niestandardowych funkcji zapytań i logiki zapytań, odświeżanie przyrostowe może być używane z innymi typami źródeł danych, jeśli filtry na podstawie i RangeStart
RangeEnd
mogą być przekazywane w jednym zapytaniu, podobnie jak w przypadku źródeł danych, takich jak pliki skoroszytu programu Excel przechowywane w folderze, plikach w programie SharePoint i kanałach informacyjnych RSS. Pamiętaj, że są to zaawansowane scenariusze, które wymagają dalszego dostosowywania i testowania poza opisem opisanym tutaj. Pamiętaj, aby zapoznać się z sekcją Społeczność w dalszej części tego artykułu, aby zapoznać się z sugestiami dotyczącymi sposobu używania odświeżania przyrostowego dla unikatowych scenariuszy.
Limity czasu
Niezależnie od odświeżania przyrostowego modele usługi Power BI Pro mają limit czasu odświeżania o dwie godziny i nie obsługują pobierania danych w czasie rzeczywistym za pomocą trybu DirectQuery. W przypadku modeli w pojemności Premium limit czasu wynosi pięć godzin. Operacje odświeżania są operacjami intensywnie korzystającymi z procesów i pamięci. Operacja pełnego odświeżania może używać nawet dwukrotnie większej ilości pamięci wymaganej przez sam model, ponieważ usługa utrzymuje migawkę modelu w pamięci do momentu zakończenia operacji odświeżania. Operacje odświeżania mogą być również intensywnie obciążające procesy, zużywając znaczną ilość dostępnych zasobów procesora CPU. Operacje odświeżania muszą również polegać na nietrwałych połączeniach ze źródłami danych oraz możliwości szybkiego zwracania danych wyjściowych zapytań. Limit czasu jest zabezpieczeniem w celu ograniczenia nadmiernego użycia dostępnych zasobów.
Uwaga
W przypadku pojemności Premium operacje odświeżania wykonywane za pośrednictwem punktu końcowego XMLA nie mają limitu czasu. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe za pomocą punktu końcowego XMLA.
Ponieważ odświeżanie przyrostowe optymalizuje operacje odświeżania na poziomie partycji w modelu, zużycie zasobów można znacznie zmniejszyć. Jednocześnie nawet w przypadku odświeżania przyrostowego, chyba że przechodzą przez punkt końcowy XMLA, operacje odświeżania są powiązane z tymi samymi dwugodzinnymi i pięciogodzinnymi limitami. Efektywne zasady odświeżania przyrostowego nie tylko zmniejszają ilość danych przetwarzanych przy użyciu operacji odświeżania, ale także zmniejsza ilość niepotrzebnych danych historycznych przechowywanych w modelu.
Zapytania mogą być również ograniczone domyślnie przez limit czasu dla źródła danych. Większość relacyjnych źródeł danych zezwala na zastępowanie limitów czasu w wyrażeniu Power Query M. Na przykład następujące wyrażenie używa funkcji dostępu do danych programu SQL Server, aby ustawić wartość CommandTimeout na dwie godziny. Każdy okres zdefiniowany przez zakresy zasad przesyła zapytanie obserwujące ustawienie limitu czasu polecenia:
let
Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2, 0, 0)]),
dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
#"Filtered Rows"
W przypadku bardzo dużych modeli w pojemnościach Premium, które prawdopodobnie zawierają miliardy wierszy, można uruchomić początkową operację odświeżania. Bootstrapping umożliwia usłudze tworzenie obiektów tabeli i partycji dla modelu, ale nie ładuje i nie przetwarza danych w żadnej z partycji. Za pomocą programu SQL Server Management Studio można ustawić partycje, które mają być przetwarzane indywidualnie, sekwencyjnie lub równolegle, aby zmniejszyć ilość danych zwracanych w jednym zapytaniu, a także pominąć pięciogodzinny limit czasu. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe — zapobieganie przekroczeniom limitu czasu podczas początkowego pełnego odświeżania.
Bieżąca data i godzina
Domyślnie bieżąca data i godzina jest określana na podstawie uniwersalnego czasu koordynowanego (UTC) w czasie odświeżania. W przypadku odświeżeń na żądanie, zaplanowanych i interfejsu API REST, można skonfigurować inną strefę czasową w sekcji "Odśwież", co zostanie uwzględnione przy określaniu bieżącej daty i godziny. Na przykład odświeżanie, które występuje o godzinie 18:00 czasu pacyficznego (STANY ZJEDNOCZONE i Kanada) ze skonfigurowaną strefą czasową, określa bieżącą datę i godzinę na podstawie czasu pacyficznego, a nie czasu UTC, co zwróci następny dzień.
Operacje odświeżania nie są wywoływane za pośrednictwem usługi Power BI, takie jak polecenia odświeżania TMSL XMLA, nie należy uwzględniać konfiguracji strefy czasowej i wartości domyślnej utc.
Konfigurowanie odświeżania przyrostowego i danych w czasie rzeczywistym
W tej sekcji opisano ważne pojęcia dotyczące konfigurowania odświeżania przyrostowego i danych w czasie rzeczywistym. Gdy wszystko będzie gotowe do uzyskania bardziej szczegółowych instrukcji krok po kroku, zobacz Konfigurowanie odświeżania przyrostowego i danych w czasie rzeczywistym.
Konfigurowanie odświeżania przyrostowego odbywa się w programie Power BI Desktop. W przypadku większości modeli wymagane jest tylko kilka zadań. Trzeba mieć jednak na uwadze następujące kwestie:
- Po opublikowaniu w usługa Power BI nie można ponownie opublikować tego samego modelu z poziomu programu Power BI Desktop. Ponowne opublikowanie spowoduje usunięcie wszystkich istniejących partycji i danych już w modelu. Jeśli publikujesz w pojemności Premium, kolejne zmiany schematu metadanych można wprowadzić za pomocą narzędzi, takich jak zestaw narzędzi ALM Toolkit typu open source lub za pomocą języka TMSL. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe — wdrażanie tylko metadanych.
- Po opublikowaniu w usługa Power BI nie można pobrać modelu z powrotem jako pliku pbix do programu Power BI Desktop. Ponieważ modele w usłudze mogą rosnąć tak duże, niepraktyczne jest pobieranie i otwieranie ich na typowym komputerze stacjonarnym.
- W przypadku pobierania danych w czasie rzeczywistym za pomocą trybu DirectQuery nie można opublikować modelu w obszarze roboczym spoza warstwy Premium. Odświeżanie przyrostowe z danymi w czasie rzeczywistym jest obsługiwane tylko w usłudze Power BI Premium.
Tworzenie parametrów
Aby skonfigurować odświeżanie przyrostowe w programie Power BI Desktop, najpierw należy utworzyć dwa parametry daty/godziny dodatku Power Query z zastrzeżonymi nazwami RangeStart
uwzględniającymi wielkość liter i RangeEnd
. Te parametry zdefiniowane w oknie dialogowym Zarządzanie parametrami w Edytor Power Query są początkowo używane do filtrowania danych załadowanych do tabeli modelu programu Power BI Desktop w celu uwzględnienia tylko tych wierszy z datą/godziną w tym okresie.
RangeStart
reprezentuje najstarszą lub najwcześniejszą datę/godzinę i RangeEnd
reprezentuje najnowszą lub najnowszą datę/godzinę. Po opublikowaniu modelu w usłudze RangeStart
i RangeEnd
przesłonięcia automatycznie przez usługę zapytania o dane zdefiniowane przez okres odświeżania określony w ustawieniach zasad odświeżania przyrostowego.
Na przykład tabela źródła danych FactInternetSales średnio 10 000 nowych wierszy dziennie. Aby ograniczyć liczbę wierszy początkowo załadowanych do modelu w programie Power BI Desktop, określ dwudniowy okres między RangeStart
i RangeEnd
.
Filtrowanie danych
Po zdefiniowaniu RangeStart
parametrów i RangeEnd
stosujesz niestandardowe filtry dat w kolumnie daty tabeli. Zastosowane filtry wybierają podzbiór danych załadowanych do modelu po wybraniu pozycji Zastosuj.
W naszym przykładzie FactInternetSales po utworzeniu filtrów na podstawie parametrów i zastosowaniu kroków dwa dni danych (około 20 000 wierszy) są ładowane do modelu.
Definiowanie zasad
Po zastosowaniu filtrów i załadowaniu podzbioru danych do modelu należy zdefiniować zasady odświeżania przyrostowego dla tabeli. Po opublikowaniu modelu w usłudze zasady są używane przez usługę do tworzenia partycji tabel i zarządzania nimi oraz wykonywania operacji odświeżania. Aby zdefiniować zasady, należy użyć okna dialogowego Odświeżanie przyrostowe i dane w czasie rzeczywistym w celu określenia zarówno wymaganych, jak i opcjonalnych ustawień.
Table
Pole listy Wybierz tabelę domyślnie wskazuje na tabelę wybraną w widoku tabeli. Włącz odświeżanie przyrostowe dla tabeli za pomocą suwaka. Jeśli wyrażenie Dodatku Power Query dla tabeli nie zawiera filtru opartego na parametrach RangeStart
i RangeEnd
, przełącznik nie jest dostępny.
Wymagane ustawienia
Ustawienie Dane archiwum rozpoczynające się przed datą odświeżania określa okres historyczny, w którym wiersze z datą/godziną w tym okresie są uwzględniane w modelu, oraz wiersze dla bieżącego niekompletnego okresu historycznego oraz wiersze w okresie odświeżania do bieżącej daty i godziny.
Jeśli na przykład określisz pięć lat, tabela przechowuje ostatnie pięć lat danych historycznych w partycjach roku. Tabela będzie również zawierać wiersze dla bieżącego roku w partycjach kwartału, miesiąca lub dnia, maksymalnie do okresu odświeżania.
W przypadku modeli w pojemnościach Premium kopie zapasowe partycji historycznych można selektywnie odświeżać z dokładnością określoną przez to ustawienie. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe — partycje.
Ustawienie Odświeżanie przyrostowe danych rozpoczynające się przed datą odświeżania określa okres odświeżania przyrostowego, w którym wszystkie wiersze z datą/godziną w tym okresie są uwzględniane w partycjach odświeżania i odświeżane przy użyciu każdej operacji odświeżania.
Jeśli na przykład określisz okres odświeżania z trzema dniami, z każdą operacją odświeżania usługa zastępuje RangeStart
parametry i RangeEnd
w celu utworzenia zapytania dotyczącego wierszy z datą/godziną w okresie trzech dni, od początku i zakończenia zależnego od bieżącej daty i godziny. Wiersze z datą/godziną w ciągu ostatnich trzech dni do bieżącego czasu operacji odświeżania są odświeżane. W przypadku tego typu zasad można oczekiwać tabeli modelu FactInternetSales w usłudze, która wynosi średnio 10 000 nowych wierszy dziennie, aby odświeżyć około 30 000 wierszy przy użyciu każdej operacji odświeżania.
Określ okres zawierający tylko minimalną liczbę wierszy wymaganych do zapewnienia dokładnego raportowania. Podczas definiowania zasad dla więcej niż jednej tabeli te same RangeStart
parametry i RangeEnd
muszą być używane nawet wtedy, gdy dla każdej tabeli zdefiniowano różne okresy przechowywania i odświeżania.
Ustawienia opcjonalne
Ustawienie Pobieranie najnowszych danych w czasie rzeczywistym przy użyciu trybu DirectQuery (tylko wersja Premium) umożliwia pobieranie najnowszych zmian z wybranej tabeli w źródle danych poza okresem odświeżania przyrostowego przy użyciu trybu DirectQuery. Wszystkie wiersze z datą/godziną później niż okres odświeżania przyrostowego są uwzględniane w partycji DirectQuery i pobierane ze źródła danych z każdym zapytaniem modelu.
Jeśli na przykład to ustawienie jest włączone, z każdą operacją odświeżania usługa nadal zastępuje RangeStart
parametry i RangeEnd
w celu utworzenia zapytania dotyczącego wierszy z datą/godziną po okresie odświeżania, a początek zależy od bieżącej daty i godziny. Wiersze z datą/godziną po bieżącej godzinie operacji odświeżania są również uwzględniane. W przypadku tego typu zasad tabela modelu FactInternetSales w usłudze zawiera najnowsze aktualizacje danych.
Ustawienie Tylko odświeżanie pełnych dni gwarantuje, że wszystkie wiersze przez cały dzień zostaną uwzględnione w operacji odświeżania. To ustawienie jest opcjonalne, chyba że włączysz ustawienie Pobierz najnowsze dane w czasie rzeczywistym przy użyciu trybu DirectQuery (tylko wersja Premium). Załóżmy na przykład, że odświeżanie jest zaplanowane do uruchomienia o godzinie 4:00 każdego ranka. Jeśli nowe wiersze danych są wyświetlane w tabeli źródła danych w ciągu tych czterech godzin od północy do 4:00, nie chcesz ich uwzględniać. Niektóre metryki biznesowe, takie jak baryłki dziennie w przemyśle naftowym i gazowym, nie mają sensu z częściowymi dniami. Innym przykładem jest odświeżanie danych z systemu finansowego, w którym dane z poprzedniego miesiąca są zatwierdzane w dwunastym dniu kalendarzowym miesiąca. Okres odświeżania można ustawić na jeden miesiąc i zaplanować uruchomienie odświeżania w dwunastym dniu miesiąca. Po wybraniu tej opcji odśwież dane ze stycznia 12 lutego.
Należy pamiętać, że jeśli strefa czasowa w sekcji "Odśwież" nie jest skonfigurowana jako inna niż UTC, operacje odświeżania w usłudze działają według czasu UTC, co może ustalać datę wejścia w życie i całe okresy.
Ustawienie Wykryj zmiany danych umożliwia jeszcze bardziej selektywne odświeżanie. Możesz wybrać kolumnę daty/godziny służącą do identyfikowania i odświeżania tylko tych dni, w których dane uległy zmianie. To ustawienie zakłada, że taka kolumna istnieje w źródle danych, które jest zwykle przeznaczone do celów inspekcji. Ta kolumna nie powinna być tą samą kolumną używaną do partycjonowania danych za pomocą parametrów RangeStart
i RangeEnd
. Maksymalna wartość tej kolumny jest obliczana dla każdego z okresów w zakresie przyrostowym. Jeśli nie została zmieniona od ostatniego odświeżenia, nie ma potrzeby odświeżania okresu, co może potencjalnie jeszcze bardziej zmniejszyć liczbę dni odświeżania przyrostowego z trzech do jednego.
Bieżący projekt wymaga, aby kolumna wykrywała zmiany danych, jest utrwalana i buforowana w pamięci. Następujące techniki mogą służyć do zmniejszenia kardynalności i zużycia pamięci:
- Utrwali tylko maksymalną wartość kolumny w momencie odświeżania, na przykład za pomocą funkcji Power Query.
- Zmniejsz precyzję do akceptowalnego poziomu, biorąc pod uwagę wymagania dotyczące częstotliwości odświeżania.
- Zdefiniuj zapytanie niestandardowe do wykrywania zmian danych przy użyciu punktu końcowego XMLA i całkowicie unikaj utrwalania wartości kolumny.
W niektórych przypadkach włączenie opcji Wykryj zmiany danych można jeszcze bardziej zwiększyć. Na przykład możesz uniknąć utrwalania kolumny ostatniej aktualizacji w pamięci podręcznej lub włączyć scenariusze, w których tabela konfiguracji/instrukcji jest przygotowywana przez procesy wyodrębniania-transform-load (ETL) na potrzeby flagowania tylko tych partycji, które muszą zostać odświeżone. W takich przypadkach w przypadku pojemności Premium należy użyć TMSL i/lub TOM, aby zastąpić zachowanie wykrywania zmian danych. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe — zapytania niestandardowe do wykrywania zmian danych.
Publikowanie
Po skonfigurowaniu zasad odświeżania przyrostowego należy opublikować model w usłudze. Po zakończeniu publikowania można wykonać początkową operację odświeżania w modelu.
Uwaga
Semantyczne modele z zasadami odświeżania przyrostowego w celu pobrania najnowszych danych w czasie rzeczywistym z trybem DirectQuery można publikować tylko w obszarze roboczym Premium.
W przypadku modeli opublikowanych w obszarach roboczych przypisanych do pojemności Premium, jeśli uważasz, że model przekroczy 1 GB, możesz poprawić wydajność operacji odświeżania i upewnić się, że model nie przekroczy limitów rozmiaru, włączając ustawienie Formatu magazynu modelu dużego semantycznego przed wykonaniem pierwszej operacji odświeżania w usłudze. Aby dowiedzieć się więcej, zobacz Duże modele w usłudze Power BI Premium.
Ważne
Po opublikowaniu modelu w usłudze przez program Power BI Desktop nie można pobrać tego pliku pbix z powrotem.
Odśwież
Po opublikowaniu w usłudze należy wykonać początkową operację odświeżania w modelu. To odświeżanie powinno być odświeżaniem indywidualnym (ręcznym), aby można było monitorować postęp. Ukończenie początkowej operacji odświeżania może potrwać sporo czasu. Partycje muszą być tworzone, ładowane dane historyczne, obiekty, takie jak relacje i hierarchie, skompilowane lub ponownie skompilowane i obliczone obiekty.
Kolejne operacje odświeżania, indywidualne lub zaplanowane, są znacznie szybsze, ponieważ odświeżane są tylko partycje odświeżania przyrostowego. Inne operacje przetwarzania muszą nadal występować, takie jak scalanie partycji i ponowne obliczanie, ale zwykle trwa to znacznie mniej czasu niż odświeżanie początkowe.
Automatyczne odświeżanie raportu
W przypadku raportów korzystających z modelu z zasadami odświeżania przyrostowego w celu pobrania najnowszych danych w czasie rzeczywistym za pomocą trybu DirectQuery warto włączyć automatyczne odświeżanie stron w stałym interwale lub na podstawie wykrywania zmian, aby raporty zawierały najnowsze dane bez opóźnień. Aby dowiedzieć się więcej, zobacz Automatyczne odświeżanie strony w usłudze Power BI.
Zaawansowane odświeżanie przyrostowe
Jeśli model znajduje się w pojemności Premium z włączonym punktem końcowym XMLA, odświeżanie przyrostowe można dodatkowo rozszerzyć w przypadku zaawansowanych scenariuszy. Na przykład można użyć programu SQL Server Management Studio do wyświetlania partycji i zarządzania nimi, uruchamiania początkowej operacji odświeżania lub odświeżania kopii zapasowych partycji historycznych. Aby dowiedzieć się więcej, zobacz Zaawansowane odświeżanie przyrostowe za pomocą punktu końcowego XMLA.
Społeczność
Usługa Power BI ma żywą społeczność, w której specjaliści MVP, specjaliści bi i rówieśnicy dzielą się wiedzą w grupach dyskusyjnych, filmach wideo, blogach i nie tylko. Podczas poznawania odświeżania przyrostowego zapoznaj się z następującymi zasobami:
- Społeczność usługi Power BI
- Wyszukiwanie "Odświeżanie przyrostowe usługi Power BI" w usłudze Bing
- Wyszukaj frazę "Odświeżanie przyrostowe dla plików" w usłudze Bing
- Wyszukiwanie "Zachowaj istniejące dane przy użyciu odświeżania przyrostowego" w usłudze Bing