Odświeżanie przyrostowe i dane w czasie rzeczywistym dla modeli semantycznych

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.

Graphic representing a rolling window pattern.

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 zazwyczaj jest to kolumna 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 — 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 aplikacji Szczegółowe informacje:

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ż następuje natychmiast po Sql.Database kroku, 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 jest wymagane składanie ostatecznej obsługi zapytań . 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 zasada w trybie czystego importu bez danych w czasie rzeczywistym, aparat mashupu zapytań może zrekompensować i zastosować filtr lokalnie, co wymaga pobrania wszystkich wierszy 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.

Screenshot of the query folding warning

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 RangeStartRangeEnd 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 intensywnie korzystają 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 poniższe wyrażenie używa funkcji dostępu do danych programu SQL Server, aby ustawić wartość CommandTimeout na 2 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

Bieżąca data i godzina jest oparta na dacie systemowej w czasie odświeżania. Jeśli zaplanowane odświeżanie jest włączone dla modelu w usłudze, określona strefa czasowa jest brana pod uwagę podczas określania bieżącej daty i godziny. Zarówno indywidualne, jak i zaplanowane odświeżanie za pośrednictwem usługi obserwuj strefę czasową, jeśli jest dostępna. Na przykład odświeżanie, które występuje o godzinie 18:00 czasu pacyficznego (STANY ZJEDNOCZONE i Kanada) z określoną strefą czasową określa bieżącą datę i godzinę na podstawie czasu pacyficznego, a nie koordynowanego czasu uniwersalnego (UTC), co zwróci następny dzień. Operacje odświeżania nie są wywoływane za pośrednictwem usługa Power BI, takich jak polecenie odświeżania TMSL, nie uwzględniają zaplanowanej strefy czasowej odświeżania.

Screenshot of Scheduled refresh dialog showing the Time zone input field

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 dla modeli semantycznych.

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.

Screenshot of the Manage Parameters dialog showing the RangeStart and RangeEnd parameters.

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.

Screenshot of column context menu with Custom Filter selected

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ń.

Screenshot of the Incremental refresh and real-time data dialog showing the Incrementally refresh this table option on.

Table

Pole listy Wybierz tabelę domyślnie do tabeli wybranej w widoku Dane. 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 zaplanowane odświeżanie nie jest skonfigurowane dla strefy czasowej innej niż UTC, operacje odświeżania w usłudze są uruchamiane w czasie UTC, co może określać datę obowiązującą i pełne 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 podczas 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 dodatkowo 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 przekracza limitów rozmiaru, włączając format magazynu dużego modelu 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.

Refresh

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: