Określanie, kiedy utworzyć model DirectQuery
Model DirectQuery składa się z tabel, które mają właściwość trybu przechowywania ustawioną na tryb DirectQuery i należą do tej samej grupy źródłowej.
Grupa źródłowa to zestaw tabel modelu, które odnoszą się do źródła danych. Istnieją dwa typy:
- Import — reprezentuje wszystkie tabele trybu przechowywania importu, w tym tabele obliczeniowe. W modelu może istnieć tylko jedna grupa źródłowa importu.
- DirectQuery — reprezentuje wszystkie tabele trybu przechowywania DirectQuery, które odnoszą się do określonego źródła danych.
Uwaga
Model importu i model DirectQuery składają się tylko z jednej grupy źródłowej. Jeśli istnieje więcej niż jedna grupa źródłowa, struktura modelu jest nazywana modelem złożonym. Modele złożone opisano w lekcji 5.
Korzyści z modelu DirectQuery
Istnieje kilka korzyści związanych z opracowywaniem modelu DirectQuery.
Modelowanie dużych lub szybko zmieniających się źródeł danych
Model DirectQuery to doskonały wybór struktury, gdy dane źródłowe wykazują charakterystykę ilości i/lub szybkości. Ponieważ tabele trybu DirectQuery nie wymagają odświeżania, są one odpowiednie dla dużych magazynów danych, takich jak magazyn danych. Jest to niepraktyczne i nieefektywne, jeśli nie niemożliwe, importowanie całego magazynu danych do modelu. Gdy dane źródłowe szybko się zmieniają, a użytkownicy muszą zobaczyć bieżące dane, model DirectQuery może dostarczać wyniki zapytania niemal w czasie rzeczywistym.
Gdy raport wysyła zapytanie do modelu DirectQuery, usługa Power BI przekazuje te zapytania do bazowego źródła danych.
Wymuszanie źródłowej zabezpieczeń na poziomie wiersza
Zapytanie bezpośrednie jest również przydatne, gdy źródłowa baza danych wymusza zabezpieczenia na poziomie wiersza. Zamiast replikować reguły zabezpieczeń na poziomie wiersza w modelu usługi Power BI, źródłowa baza danych może wymuszać jego reguły. Takie podejście działa tylko w przypadku niektórych relacyjnych baz danych i obejmuje skonfigurowanie logowania jednokrotnego dla źródła danych zestawu danych. Aby uzyskać więcej informacji, zobacz Azure SQL Database with DirectQuery (Usługa Azure SQL Database z zapytaniem bezpośrednim).
Ograniczenia niezależności danych
Jeśli organizacja ma zasady zabezpieczeń ograniczające pozostawienie danych w środowisku lokalnym, nie jest możliwe zaimportowanie danych. Model DirectQuery, który łączy się z lokalnym źródłem danych, może być odpowiedni. (Możesz również rozważyć zainstalowanie Serwer raportów usługi Power BI do raportowania lokalnego).
Tworzenie wyspecjalizowanych zestawów danych
Zazwyczaj tryb DirectQuery obsługuje źródła relacyjnych baz danych. Dzieje się tak, ponieważ usługa Power BI musi tłumaczyć zapytania analityczne na zapytania natywne zrozumiałe dla źródła danych.
Istnieje jednak jeden potężny wyjątek. Możesz nawiązać połączenie z zestawem danych usługi Power BI (lub modelem usług Azure Analysis Services) i przekonwertować go na model lokalny DirectQuery. Model lokalny to względny termin opisujący relację modelu z innym modelem. W takim przypadku oryginalny zestaw danych jest modelem zdalnym, a nowy zestaw danych jest modelem lokalnym. Te modele są łańcuchowe, czyli termin używany do opisywania powiązanych modeli. W ten sposób można połączyć maksymalnie trzy modele.
Ta możliwość tworzenia łańcuchów modeli umożliwia personalizowanie i/lub rozszerzanie modelu zdalnego. Najprostszą rzeczą, którą można zrobić, jest zmiana nazwy obiektów, takich jak tabele lub kolumny, lub dodawanie miar do modelu lokalnego. Model można również rozszerzyć przy użyciu kolumn obliczeniowych lub tabel obliczeniowych albo dodać nowe tabele importu lub trybu DirectQuery. Jednak te rozszerzenia powodują utworzenie nowych grup źródłowych, co oznacza, że model staje się modelem złożonym. Ten scenariusz został opisany w lekcji 5.
Aby uzyskać więcej informacji, zobacz Using DirectQuery for Power BI datasets and Azure Analysis Services (Używanie trybu DirectQuery dla zestawów danych usługi Power BI i usług Azure Analysis Services).
Ograniczenia modelu DirectQuery
Istnieje wiele ograniczeń związanych z modelami DirectQuery, które należy wziąć pod uwagę. Oto główne ograniczenia:
Nie wszystkie źródła danych są obsługiwane. Zazwyczaj obsługiwane są tylko główne systemy relacyjnych baz danych. Obsługiwane są również zestawy danych usługi Power BI i modele usług Azure Analysis Services.
Wszystkie przekształcenia dodatku Power Query (M) nie są możliwe, ponieważ te zapytania muszą zostać przetłumaczone na zapytania natywne, które są zrozumiałe dla systemów źródłowych. Na przykład nie można użyć przekształceń przestawnych ani przestawnych.
Wydajność zapytań analitycznych może być niska, zwłaszcza jeśli systemy źródłowe nie są zoptymalizowane (z indeksami lub zmaterializowanymi widokami) lub nie ma wystarczających zasobów dla obciążenia analitycznego.
Zapytania analityczne mogą mieć wpływ na wydajność systemu źródłowego. Może to spowodować wolniejsze działanie wszystkich obciążeń, w tym operacji OLTP.
Zwiększanie wydajności modelu DirectQuery
Jeśli istnieje uzasadnienie opracowania modelu DirectQuery, można ograniczyć pewne ograniczenia na dwa sposoby.
Optymalizacje źródeł danych
Możesz zoptymalizować źródłową bazę danych, aby upewnić się, że oczekiwane obciążenie zapytań analitycznych działa prawidłowo. W szczególności można tworzyć indeksy i zmaterializowane widoki oraz zapewnić, że baza danych ma wystarczające zasoby dla wszystkich obciążeń.
Napiwek
Zalecamy, aby zawsze współpracować z właścicielem bazy danych. Ważne jest, aby zrozumieć dodatkowe obciążenie, które może umieścić model DirectQuery w bazie danych.
Tabele agregacji zdefiniowane przez użytkownika w trybie DirectQuery
Tabele agregacji zdefiniowane przez użytkownika można dodać do modelu DirectQuery. Tabele agregacji zdefiniowane przez użytkownika to specjalne tabele modelu, które są ukryte (od użytkowników, obliczeń i zabezpieczeń na poziomie wiersza). Działają najlepiej, gdy spełniają one zapytania analityczne o wyższym stopniu szczegółowość w przypadku dużych tabel faktów. Po ustawieniu tabeli agregacji tak, aby korzystała z trybu przechowywania DirectQuery, może wykonywać zapytania dotyczące zmaterializowanego widoku w źródle danych. Tabelę agregacji można również ustawić tak, aby korzystała z trybu przechowywania importu lub włączyć agregacje automatyczne, a te opcje opisano w lekcji 4.
Aby uzyskać więcej informacji, zobacz Wskazówki dotyczące modelu DirectQuery w programie Power BI Desktop.