Samouczek: pisanie prawidłowego zapytania w celu dołączenia danych metryk
Ważne
Od 20 września 2023 r. nie będzie można tworzyć nowych zasobów usługi Metrics Advisor. Usługa Metrics Advisor jest wycofywana 1 października 2026 r.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Jak napisać prawidłowe zapytanie dołączania danych
- Typowe błędy i sposoby ich unikania
Wymagania wstępne
Tworzenie zasobu klasyfikatora metryk
Aby zapoznać się z możliwościami usługi Metrics Advisor, może być konieczne utworzenie zasobu klasyfikatora metryk w witrynie Azure Portal w celu wdrożenia wystąpienia usługi Metrics Advisor.
Wymagania dotyczące schematu danych
Azure AI Metrics Advisor to usługa służąca do wykrywania, diagnostyki i analizy szeregów czasowych. Jako usługa oparta na sztucznej inteligencji używa danych do trenowania używanego modelu. Usługa akceptuje tabele zagregowanych danych z następującymi kolumnami:
- Miara (wymagana): miara jest terminem podstawowym lub specyficznym dla jednostki i wartością kwantyfikalną metryki. Oznacza to, że co najmniej jedna kolumna zawiera wartości liczbowe.
- Sygnatura czasowa (opcjonalnie): zero lub jedna kolumna z typem
DateTime
lubString
. Jeśli ta kolumna nie jest ustawiona, sygnatura czasowa jest ustawiana jako godzina rozpoczęcia każdego okresu pozyskiwania. Sformatuj znacznik czasu w następujący sposób:yyyy-MM-ddTHH:mm:ssZ
. - Wymiar (opcjonalnie): wymiar jest co najmniej jedną wartością kategorii. Kombinacja tych wartości identyfikuje określony jednowariaty szereg czasowy (na przykład kraj/region, język i dzierżawa). Kolumny wymiarów mogą być dowolnym typem danych. Należy zachować ostrożność podczas pracy z dużą ilością kolumn i wartości, aby zapobiec przetwarzaniu nadmiernej liczby wymiarów.
Jeśli używasz źródeł danych, takich jak Azure Data Lake Storage lub Azure Blob Storage, możesz agregować dane w celu dopasowania ich do oczekiwanego schematu metryk. Wynika to z faktu, że te źródła danych używają pliku jako danych wejściowych metryk.
Jeśli używasz źródeł danych, takich jak Azure SQL lub Azure Data Explorer, możesz użyć funkcji agregacji, aby agregować dane w oczekiwanym schemacie. Dzieje się tak, ponieważ te źródła danych obsługują uruchamianie zapytania w celu pobrania danych metryk ze źródeł.
Jak działa pozyskiwanie danych w usłudze Metrics Advisor?
Podczas dołączania metryk do klasyfikatora metryk zazwyczaj istnieją dwa sposoby:
- Wstępnie zagreguj metryki do oczekiwanego schematu i zapisz dane w określonych plikach. Wypełnij szablon ścieżki podczas dołączania, a doradca metryk będzie stale pobierać nowe pliki ze ścieżki i przeprowadzać wykrywanie metryk. Jest to powszechna praktyka dla źródła danych, takiego jak Azure Data Lake i Azure Blob Storage.
- Jeśli pozyskujesz dane ze źródeł danych, takich jak Azure SQL Server, Azure Data Explorer lub inne źródła, które obsługują używanie skryptu zapytania, niż musisz upewnić się, że prawidłowo skonstruujesz zapytanie. W tym artykule dowiesz się, jak napisać prawidłowe zapytanie dotyczące dołączania danych metryk zgodnie z oczekiwaniami.
Co to jest interwał?
Metryki muszą być monitorowane na określonym poziomie szczegółowości zgodnie z wymaganiami biznesowymi. Na przykład kluczowe wskaźniki wydajności biznesowej (KPI) są monitorowane z dziennym stopniem szczegółowości. Jednak metryki wydajności usługi są często monitorowane w minutach/godzinach szczegółowości. Częstotliwość zbierania danych metryk ze źródeł różni się.
Usługa Metrics Advisor stale pobiera dane metryk w każdym interwale czasu, a interwał jest równy szczegółowości metryk. Za każdym razem doradca metryk uruchamia zapisane zapytanie pozyskuje dane w tym określonym interwale. Na podstawie tego mechanizmu pozyskiwania danych skrypt zapytania nie powinien zwracać wszystkich danych metryk, które istnieją w bazie danych, ale musi ograniczyć wynik do jednego interwału.
Jak napisać prawidłowe zapytanie?
Use @IntervalStart and @IntervalEnd to limit query results
Aby ułatwić osiągnięcie tego celu, dwa parametry zostały podane do użycia w zapytaniu: @IntervalStart i @IntervalEnd.
Za każdym razem, gdy zapytanie zostanie uruchomione i @IntervalStart @IntervalEnd zostanie automatycznie zaktualizowane do najnowszego znacznika czasu interwału i pobiera odpowiednie dane metryk. @IntervalEnd jest zawsze przypisywany jako @IntervalStart + 1 stopień szczegółowości.
Oto przykład prawidłowego użycia tych dwóch parametrów w programie Azure SQL Server:
SELECT [timestampColumnName] AS timestamp, [dimensionColumnName], [metricColumnName] FROM [sampleTable] WHERE [timestampColumnName] >= @IntervalStart and [timestampColumnName] < @IntervalEnd;
Pisząc skrypt zapytania w ten sposób, znaczniki czasu metryk powinny mieścić się w tym samym interwale dla każdego wyniku zapytania. Funkcja Metrics Advisor automatycznie dostosuje znaczniki czasu do stopnia szczegółowości metryk.
Używanie funkcji agregacji do agregowania metryk
Często zdarza się, że istnieje wiele kolumn w źródłach danych klientów, jednak nie wszystkie z nich mają sens, aby były monitorowane lub uwzględniane jako wymiar. Klienci mogą używać funkcji agregacji do agregowania metryk i dołączania tylko znaczących kolumn jako wymiarów.
Poniżej przedstawiono przykład, w którym istnieje więcej niż 10 kolumn w źródle danych klienta, ale tylko kilka z nich ma znaczenie i należy je uwzględnić i zagregować w metryce do monitorowania.
SFZ | Rynek | System operacyjny urządzenia | Kategoria | ... | Miara1 | Miara2 | Miara3 |
---|---|---|---|---|---|---|---|
2020-09-18T12:23:22Z | Nowy Jork | iOS | Okulary przeciwsłoneczne | ... | 43242 | 322 | 54546 |
2020-09-18T12:27:34Z | Pekin | Android | Torby | ... | 3333 | 126 | 67677 |
... |
Jeśli klient chce monitorować "Measure1" z godzinowym stopniem szczegółowości i wybrać pozycję "Rynek" i "Kategoria" jako wymiary, poniżej przedstawiono przykłady prawidłowego korzystania z funkcji agregacji w celu osiągnięcia tego celu:
Przykład SQL:
SELECT dateadd(hour, datediff(hour, 0, TS),0) as NewTS ,Market ,Category ,sum(Measure1) as M1 FROM [dbo].[SampleTable] where TS >= @IntervalStart and TS < @IntervalEnd group by Market, Category, dateadd(hour, datediff(hour, 0, TS),0)
Przykład usługi Azure Data Explorer:
SampleTable | where TS >= @IntervalStart and TS < @IntervalEnd | summarize M1 = sum(Measure1) by Market, Category, NewTS = startofhour(TS)
Uwaga
W powyższym przypadku klient chce monitorować metryki na poziomie godzinowym, ale nieprzetworzony znacznik czasu (TS) nie jest wyrównany. W ramach instrukcji agregacji proces znacznika czasu jest wymagany do wyrównania do godziny i wygenerowania nowej kolumny znacznika czasu o nazwie "NewTS".
Typowe błędy podczas dołączania
Błąd: Wiele wartości znacznika czasu można znaleźć w wynikach zapytania
Jest to typowy błąd, jeśli wyniki zapytania nie zostały ograniczone w ciągu jednego interwału. Jeśli na przykład monitorujesz metrykę z dziennym szczegółowością, ten błąd zostanie wyświetlony, jeśli zapytanie zwróci wyniki w następujący sposób:
Istnieje wiele wartości znacznika czasu i nie znajdują się one w tym samym interwale metryk (jeden dzień). Sprawdź , jak działa pozyskiwanie danych w usłudze Metrics Advisor? i dowiedz się, że doradca metryk pobiera dane metryk w każdym interwale metryk. Następnie upewnij się, że używasz @IntervalStart i @IntervalEnd w zapytaniu, aby ograniczyć wyniki w ciągu jednego interwału. Sprawdź Use @IntervalStart and @IntervalEnd to limit query results szczegółowe wskazówki i przykłady.
Błąd: Zduplikowane wartości metryk znajdują się w tej samej kombinacji wymiarów w jednym interwale metryk
W ciągu jednego interwału doradca metryk oczekuje tylko jednej wartości metryk dla tych samych kombinacji wymiarów. Jeśli na przykład monitorujesz metrykę z dziennym szczegółowością, ten błąd zostanie wyświetlony, jeśli zapytanie zwróci wyniki w następujący sposób:
Zobacz Używanie funkcji agregacji do agregowania metryk, aby uzyskać szczegółowe wskazówki i przykłady.
Następne kroki
Przejdź do następnego artykułu, aby dowiedzieć się, jak utworzyć.