Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
SQL Server 2019 i starsze usługi Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Ważne
Funkcja wyszukiwania danych została uznana za przestarzałą w usługach SQL Server 2017 Analysis Services i została zakończona w usługach SQL Server 2022 Analysis Services. Dokumentacja nie jest aktualizowana dla przestarzałych i wycofanych funkcji. Aby dowiedzieć się więcej, zobacz zgodność z poprzednimi wersjami usług Analysis Services.
Celem typowego projektu wyszukiwania danych jest użycie modelu wyszukiwania w celu przewidywania. Możesz na przykład przewidzieć oczekiwany przestój dla określonego klastra serwerów lub wygenerować wynik wskazujący, czy segmenty klientów mogą reagować na kampanię reklamową. Aby wykonać wszystkie te czynności, należy utworzyć zapytanie przewidywania.
Funkcjonalnie istnieją różne typy zapytań przewidywania obsługiwanych w programie SQL Server, w zależności od typu danych wejściowych zapytania:
| Typ zapytania | Opcje zapytania |
|---|---|
| Zapytania predykcyjne singletona | Użyj pojedynczego zapytania, jeśli chcesz przewidzieć wyniki dla pojedynczego nowego przypadku lub wielu nowych przypadków. Podajesz wartości wejściowe bezpośrednio w zapytaniu, a zapytanie jest wykonywane jako pojedyncza sesja. |
| Przewidywania wsadowe | Użyj przewidywań wsadowych, gdy masz dane zewnętrzne, które mają zostać wprowadzone do modelu, aby użyć ich jako podstawy przewidywania. Aby przewidywać cały zestaw danych, należy zamapować dane w źródle zewnętrznym na kolumny w modelu, a następnie określić typ danych predykcyjnych, które mają zostać wyjściowe. Zapytanie dla całego zestawu danych jest wykonywane w jednej sesji, dzięki czemu ta opcja jest znacznie wydajniejsza niż wysyłanie wielu powtarzających się zapytań. |
| Przewidywania szeregów czasowych | Użyj zapytania szeregów czasowych, jeśli chcesz przewidzieć wartość w ciągu kilku przyszłych kroków. Funkcja wyszukiwania danych programu SQL Server udostępnia również następujące funkcje w zapytaniach szeregów czasowych: Istniejący model można rozszerzyć, dodając nowe dane w ramach zapytania i tworząc przewidywania na podstawie serii złożonej. Istniejący model można zastosować do nowej serii danych przy użyciu opcji REPLACE_MODEL_CASES. Można wykonać przewidywanie krzyżowe. |
W poniższych sekcjach opisano ogólną składnię zapytań przewidywania, różne typy zapytań przewidywania oraz sposób pracy z wynikami zapytań przewidywania.
Podstawowy projekt zapytania przewidywania
Podstawowy projekt zapytania przewidywania
Podczas tworzenia przewidywania zazwyczaj podajesz niektóre nowe dane i pytasz model o wygenerowanie przewidywania na podstawie nowych danych.
W zapytaniu przewidywania wsadowego model jest mapowany na zewnętrzne źródło danych przy użyciu sprzężenia przewidywania.
W zapytaniu przewidywania typu singleton wpisz jedną lub więcej wartości do użycia jako dane wejściowe. Można utworzyć wiele prognoz przy użyciu pojedynczego zapytania predykcyjnego. Jeśli jednak musisz utworzyć wiele przewidywań, wydajność jest lepsza podczas korzystania z zapytania wsadowego.
Zapytania przewidywania pojedynczego i wsadowego używają składni PREDICTION JOIN do definiowania nowych danych. Różnica polega na tym, jak określono stronę wejściową sprzężenia przewidywania.
W zapytaniu przewidywania wsadowego dane pochodzą z zewnętrznego źródła danych określonego przy użyciu składni OPENQUERY.
W pojedynczym zapytaniu przewidywania dane są dostarczane bezpośrednio jako część zapytania.
W przypadku modeli szeregów czasowych dane wejściowe nie zawsze są wymagane; Istnieje możliwość tworzenia przewidywań przy użyciu tylko danych już w modelu. Jeśli jednak określisz nowe dane wejściowe, musisz zdecydować, czy nowe dane będą używane do aktualizowania i rozszerzania modelu, czy zastępowania oryginalnej serii danych używanych w modelu. Aby uzyskać więcej informacji na temat tych opcji, zobacz Przykłady zapytań modelu szeregów czasowych.
Dodawanie funkcji przewidywania
Oprócz przewidywania wartości można dostosować zapytanie przewidywania w celu zwrócenia różnych rodzajów informacji powiązanych z przewidywaniem. Jeśli na przykład przewidywanie tworzy listę produktów, które mają być zalecane dla klienta, możesz również zwrócić prawdopodobieństwo dla każdego przewidywania, aby można było je sklasyfikować i przedstawić tylko najważniejsze zalecenia dla użytkownika.
W tym celu dodasz funkcje przewidywania do zapytania. Każdy model lub typ zapytania obsługuje określone funkcje. Na przykład modele klastrowania obsługują specjalne funkcje przewidywania, które zapewniają dodatkowe szczegóły dotyczące klastrów utworzonych przez model, natomiast modele szeregów czasowych mają funkcje, które obliczają różnice w czasie. Istnieją również ogólne funkcje przewidywania, które współpracują z niemal wszystkimi typami modeli. Aby uzyskać listę funkcji przewidywania obsługiwanych w różnych typach zapytań, zobacz ten temat dokumentacji DMX: Ogólne funkcje przewidywania (DMX).
Tworzenie zapytań przewidywania jednostkowego
Zapytanie predykcyjne singletonowe jest przydatne, gdy chcesz szybko tworzyć przewidywania w czasie rzeczywistym. Typowym scenariuszem może być to, że uzyskano informacje od klienta, na przykład przy użyciu formularza w witrynie sieci Web, i chcesz przesłać te dane jako dane wejściowe do zapytania prognozującego. Na przykład gdy klient wybierze produkt z listy, możesz użyć tego wyboru jako danych wejściowych do zapytania, które przewiduje najlepsze produkty do rekomendowania.
Zapytania predykcji singletonów nie wymagają oddzielnej tabeli zawierającej dane wejściowe. Zamiast tego należy podać jeden lub wiele wierszy wartości jako dane wejściowe modelu, a przewidywania lub przewidywania są zwracane w czasie rzeczywistym.
Ostrzeżenie
Pomimo nazwy zapytania przewidywania jednotonowego nie tylko tworzą pojedyncze przewidywania — można wygenerować wiele przewidywań dla każdego zestawu danych wejściowych. Należy podać wiele przypadków wejściowych, tworząc instrukcję SELECT dla każdego przypadku wejściowego i łącząc je z operatorem UNION.
Podczas tworzenia pojedynczego zapytania przewidywania należy podać nowe dane do modelu w postaci funkcji PREDICTION JOIN. Oznacza to, że chociaż nie odwzorowujesz w rzeczywistej tabeli, musisz upewnić się, że nowe dane są zgodne z istniejącymi kolumnami w modelu eksploracji danych. Jeśli nowe kolumny danych i nowe dane są dokładnie zgodne, usługi SQL Server Analysis Services zamapują kolumny. Jest to nazywane NATURAL PREDICTION JOIN. Jeśli jednak kolumny nie są zgodne lub nowe dane nie zawierają tego samego rodzaju i ilości danych znajdujących się w modelu, musisz określić kolumny na mapie modelu na nowe dane lub określić brakujące wartości.
Zapytania predykcji wsadowej
Zapytanie przewidywania wsadowego jest przydatne, gdy masz dane zewnętrzne, których chcesz użyć podczas tworzenia przewidywań. Możesz na przykład utworzyć model, który kategoryzuje klientów według ich aktywności online i historii zakupów. Możesz zastosować ten model do listy nowo pozyskanych potencjalnych klientów, utworzyć prognozy sprzedaży lub zidentyfikować cele dla proponowanych kampanii.
Aby wykonać połączenie predykcyjne, należy zamapować kolumny modelu do kolumn w nowym źródle danych. W związku z tym źródło danych wybrane dla danych wejściowych musi być nieco podobne do danych w modelu. Nowe informacje nie muszą być dokładnie zgodne i mogą być niekompletne. Załóżmy na przykład, że model został wytrenowany przy użyciu informacji o dochodach i wieku, ale lista klientów używana do przewidywania ma wiek, ale nic o dochodach. W tym scenariuszu nadal można mapować nowe dane na model i utworzyć przewidywanie dla każdego klienta. Jeśli jednak dochód był ważnym predyktorem dla modelu, brak pełnych informacji wpłynie na jakość przewidywań.
Aby uzyskać najlepsze wyniki, należy dołączyć jak najwięcej pasujących kolumn między nowymi danymi a modelem. Jednak zapytanie powiedzie się, nawet jeśli nie ma dopasowań. Jeśli żadna kolumna nie zostanie połączona, zapytanie zwróci marginalną prognozę, która jest równoważna instrukcji SELECT <predictable-column> FROM <model> bez klauzuli PREDICTION JOIN.
Po pomyślnym zamapowania wszystkich odpowiednich kolumn należy uruchomić zapytanie, a usługi SQL Server Analysis Services tworzą przewidywania dla każdego wiersza w nowych danych na podstawie wzorców w modelu. Wyniki można zapisać z powrotem do nowej tabeli w widoku źródła danych, który zawiera dane zewnętrzne, lub skopiować i wkleić dane, gdy używasz narzędzi SQL Server Data Tools lub PROGRAMU SQL Server Management Studio.
Ostrzeżenie
Jeśli używasz projektanta w narzędziach SQL Server Data Tools, zewnętrzne źródło danych musi najpierw zostać zdefiniowane jako widok źródła danych.
Jeśli używasz języka DMX do tworzenia złączenia predykcyjnego, możesz określić zewnętrzne źródło danych przy użyciu poleceń OPENQUERY, OPENROWSET lub SHAPE. Domyślna metoda dostępu do danych w szablonach DMX to OPENQUERY. Aby uzyskać informacje o tych metodach, zobacz <zapytanie dotyczące> danych źródłowych.
Przewidywania w modelach analizy szeregów czasowych
Modele szeregów czasowych różnią się od innych typów modeli; Możesz użyć modelu w taki sposób, aby utworzyć przewidywania, lub podać nowe dane do modelu w celu zaktualizowania modelu i utworzenia przewidywań na podstawie ostatnich trendów. Jeśli dodasz nowe dane, możesz określić sposób użycia nowych danych.
Rozszerzenie przypadków modelu oznacza dodanie nowych danych do istniejącej serii danych w modelu szeregów czasowych. W związku z tym przewidywania są oparte na nowej, połączonej serii. Ta opcja jest dobra, gdy chcesz po prostu dodać kilka punktów danych do istniejącego modelu.
Załóżmy na przykład, że masz istniejący model szeregów czasowych, który został wytrenowany na danych sprzedaży z poprzedniego roku. Po zebraniu kilku miesięcy nowych danych sprzedaży decydujesz się zaktualizować prognozy sprzedaży w bieżącym roku. Możesz utworzyć sprzężenie przewidywania, które aktualizuje model, dodając nowe dane i rozszerzając model w celu tworzenia nowych przewidywań.
Zastąpienie przypadków modelu oznacza, że zachowujesz wytrenowany model, ale zastępujesz bazowe przypadki nowym zestawem danych przypadków. Ta opcja jest przydatna, gdy chcesz zachować trend w modelu, ale zastosować go do innego zestawu danych.
Na przykład oryginalny model mógł zostać wytrenowany na zestawie danych z bardzo dużymi ilościami sprzedaży; po zastąpieniu danych bazowych nową serią (być może z sklepu o niższym wolumenie sprzedaży) zachowasz trend, ale przewidywania zaczynają się od wartości w serii zastępczej.
Niezależnie od tego, które podejście jest używane, punktem wyjścia dla przewidywań jest zawsze koniec oryginalnej serii.
Aby uzyskać więcej informacji na temat tworzenia sprzężeń przewidywania w modelach szeregów czasowych, zobacz Time Series Model Query Examples or PredictTimeSeries (DMX).
Praca z wynikami zapytania przewidywania
Opcje zapisywania wyników zapytania przewidywania wyszukiwania danych różnią się w zależności od sposobu tworzenia zapytania.
Podczas tworzenia zapytania przy użyciu narzędzia Prediction Query Builder w programie SQL Server Management Studio lub SQL Server Data Tools można zapisać wyniki zapytania przewidywania w istniejącym źródle danych usług SQL Server Analysis Services. Aby uzyskać więcej informacji, zobacz Wyświetlanie i zapisywanie wyników zapytania przewidywania.
Podczas tworzenia zapytań przewidywania przy użyciu narzędzia DMX w okienku Zapytania programu SQL Server Management Studio można użyć opcji danych wyjściowych zapytania, aby zapisać wyniki w pliku lub w okienku Wyniki zapytania jako tekst lub w siatce. Aby uzyskać więcej informacji, zobacz Query and Text Editors (SQL Server Management Studio).
Po uruchomieniu zapytania przewidywania przy użyciu składników usług Integration Services zadania umożliwiają zapisywanie wyników w bazie danych przy użyciu dostępnego menedżera połączeń ADO.NET lub menedżera połączeń OLEDB. Aby uzyskać więcej informacji, zobacz Zadanie zapytania wyszukiwania danych.
Ważne jest, aby zrozumieć, że wyniki zapytania przewidywania nie są podobne do wyników zapytania w relacyjnej bazie danych, która zawsze zwraca jeden wiersz powiązanych wartości. Każda funkcja przewidywania DMX dodana do zapytania zwraca własny zestaw wierszy. W związku z tym podczas przewidywania pojedynczego przypadku wynik może być przewidywaną wartością wraz z kilkoma kolumnami zagnieżdżonych tabel zawierających dodatkowe szczegóły.
Jeśli połączysz wiele funkcji w jednym zapytaniu, zwracane wyniki są łączone jako hierarchiczny zestaw wierszy. Załóżmy na przykład, że używasz modelu szeregów czasowych do przewidywania przyszłych wartości dla wartości sprzedaży i ilości sprzedaży, używając zapytania takiego jak ta instrukcja DMX:
SELECT
PredictTimeSeries([Forecasting].[Amount]) as [PredictedAmount]
, PredictTimeSeries([Forecasting].[Quantity]) as [PredictedQty]
FROM
[Forecasting]
Wyniki tego zapytania to dwie kolumny: jedna dla każdej przewidywanej serii, gdzie każdy wiersz zawiera zagnieżdżoną tabelę z przewidywanymi wartościami.
PredictedAmount
| $TIME | Kwota |
|---|---|
| 201101 | 172067.11 |
| $TIME | Kwota |
|---|---|
| 201102 | 363390.68 |
PredictedQty
| $TIME | Ilość |
|---|---|
| 201101 | 77 |
| $TIME | Ilość |
|---|---|
| 201102 | 260 |
Jeśli dostawca nie może obsłużyć hierarchicznych zestawów wierszy, możesz spłaszczać wyniki przy użyciu słowa kluczowego FLATTEN w zapytaniu przewidywania. Aby uzyskać więcej informacji, w tym przykłady spłaszczonych zestawów wierszy, zobacz także SELECT (DMX).
Zobacz też
Zapytania dotyczące zawartości (wyszukiwania danych)
Zapytania definicji danych (wyszukiwanie danych)