Azure Data Explorer (Kusto)
Podsumowanie
Element | opis |
---|---|
Stan wydania | Ogólna dostępność |
Produkty | Excel Power BI (modele semantyczne) Power BI (przepływy danych) Sieć szkieletowa (Dataflow Gen2) Power Apps (przepływy danych) Dynamics 365 Customer Insights |
Obsługiwane typy uwierzytelniania | Konto organizacyjne |
Dokumentacja referencyjna funkcji | — |
Uwaga
Niektóre funkcje mogą być obecne w jednym produkcie, ale nie w innych ze względu na harmonogramy wdrażania i możliwości specyficzne dla hosta.
Wymagania wstępne
Subskrypcja platformy Azure. Przejdź do pozycji Uzyskaj bezpłatną wersję próbną platformy Azure.
Organizacyjne konto e-mail, które jest członkiem identyfikatora entra firmy Microsoft. W tym artykule użyto tego konta do nawiązania połączenia z przykładami klastra pomocy usługi Azure Data Explorer.
Obsługiwane funkcje
- Importuj
- Tryb DirectQuery (modele semantyczne usługi Power BI)
- Opcje zaawansowane
- Ogranicz liczbę rekordów wyników zapytania
- Ogranicz rozmiar danych wyników zapytania w bajtach
- Wyłączanie obcinania zestawu wyników
- Dodatkowe instrukcje zestawu
Połączenie do usługi Azure Data Explorer z poziomu programu Power Query Desktop
Aby nawiązać połączenie z usługą Azure Data Explorer z poziomu programu Power Query Desktop:
Wybierz pozycję Azure Data Explorer (Kusto) w środowisku pobierania danych. Środowisko pobierania danych w programie Power Query Desktop różni się między aplikacjami. Aby uzyskać więcej informacji na temat środowiska pobierania danych dla aplikacji w programie Power Query Desktop, zobacz Gdzie uzyskać dane.
W usłudze Azure Data Explorer (Kusto) podaj nazwę klastra usługi Azure Data Explorer. W tym przykładzie użyj polecenia
https://help.kusto.windows.net
, aby uzyskać dostęp do przykładowego klastra pomocy. W przypadku innych klastrów adres URL znajduje się w postaci https://< ClusterName.<>Region.kusto.windows.net>.Możesz również wybrać bazę danych hostowaną w klastrze, z którym nawiązujesz połączenie, oraz jedną z tabel w bazie danych lub zapytanie, takie jak
StormEvents | take 1000
.Jeśli chcesz użyć jakichkolwiek opcji z wyprzedzeniem, wybierz opcję i wprowadź dane do użycia z tej opcji. Więcej informacji: Połączenie przy użyciu opcji zaawansowanych
Uwaga
Może być konieczne przewinięcie w dół, aby wyświetlić wszystkie opcje zaawansowane i wybór łączności danych.
Wybierz tryb łączności danych Import lub DirectQuery (tylko program Power BI Desktop). Więcej informacji: Kiedy używać trybu importu lub zapytania bezpośredniego
Naciśnij OK, aby kontynuować.
Jeśli nie masz jeszcze połączenia z klastrem, wybierz pozycję Zaloguj się. Zaloguj się przy użyciu konta organizacyjnego, a następnie wybierz pozycję Połącz.
W nawigatorze wybierz żądane informacje o bazie danych, a następnie wybierz pozycję Załaduj, aby załadować dane lub Przekształć dane, aby kontynuować przekształcanie danych w edytorze Power Query. W tym przykładzie w bazie danych Samples wybrano pozycję StormEvents.
Połączenie do usługi Azure Data Explorer z poziomu usługi Power Query Online
Aby nawiązać połączenie z usługą Azure Data Explorer z poziomu usługi Power Query Online:
Wybierz opcję Azure Data Explorer (Kusto) w środowisku pobierania danych. Różne aplikacje mają różne sposoby uzyskiwania danych w usłudze Power Query Online. Aby uzyskać więcej informacji na temat sposobu uzyskiwania danych z aplikacji w usłudze Power Query Online, przejdź do obszaru Gdzie uzyskać dane.
W Połączenie do źródła danych podaj nazwę klastra usługi Azure Data Explorer. W tym przykładzie użyj polecenia
https://help.kusto.windows.net
, aby uzyskać dostęp do przykładowego klastra pomocy. W przypadku innych klastrów adres URL znajduje się w postaci https://< ClusterName.<>Region.kusto.windows.net>.Możesz również wybrać bazę danych hostowaną w klastrze, z którym nawiązujesz połączenie, oraz jedną z tabel w bazie danych lub zapytanie, takie jak
StormEvents | take 1000
.Jeśli chcesz użyć jakichkolwiek opcji z wyprzedzeniem, wybierz opcję i wprowadź dane do użycia z tej opcji. Więcej informacji: Połączenie przy użyciu opcji zaawansowanych
W razie potrzeby wybierz lokalną bramę danych w bramie danych.
Jeśli nie masz jeszcze połączenia z klastrem, wybierz pozycję Zaloguj się. Zaloguj się przy użyciu konta organizacyjnego.
Po pomyślnym zalogowaniu wybierz pozycję Dalej.
Na stronie Wybieranie danych wybierz żądane informacje o bazie danych, a następnie wybierz pozycję Przekształć dane lub Dalej, aby kontynuować przekształcanie danych w edytorze Power Query. W tym przykładzie w bazie danych Samples wybrano pozycję StormEvents.
Połączenie przy użyciu opcji zaawansowanych
Programy Power Query Desktop i Power Query Online udostępniają zestaw zaawansowanych opcji, które można dodać do zapytania w razie potrzeby.
W poniższej tabeli wymieniono wszystkie opcje zaawansowane, które można ustawić w programie Power Query Desktop i dodatku Power Query Online.
Opcja zaawansowana | opis |
---|---|
Ogranicz liczbę rekordów wyników zapytania | Maksymalna liczba rekordów do zwrócenia w wyniku. |
Ogranicz rozmiar danych wyników zapytania w bajtach | Maksymalny rozmiar danych w bajtach zwracany w wyniku. |
Wyłączanie obcinania zestawu wyników | Włącz lub wyłącz obcinanie wyników przy użyciu notruncation opcji żądania. |
Dodatkowe instrukcje zestawu | Ustawia opcje zapytania na czas trwania zapytania. Opcje zapytania kontrolują sposób wykonywania i zwracania wyników przez zapytanie. Wiele instrukcji Set można rozdzielić średnikami. |
Aby uzyskać informacje o dodatkowych opcjach zaawansowanych niedostępnych w interfejsie użytkownika dodatku Power Query, zobacz Konfigurowanie opcji łącznika usługi Azure Data Explorer w zapytaniu M.
Kiedy należy używać trybu importu lub zapytania bezpośredniego
W trybie importu dane są przenoszone do usługi Power BI. W trybie DirectQuery dane są odpytywane bezpośrednio z klastra.
Użyj trybu importu, gdy:
- Zestaw danych jest mały.
- Nie potrzebujesz danych niemal w czasie rzeczywistym.
- Dane są już agregowane lub agregowane w usłudze Kusto.
Użyj trybu DirectQuery, gdy:
- Zestaw danych jest bardzo duży.
- Potrzebujesz danych niemal w czasie rzeczywistym.
Aby dowiedzieć się więcej na temat korzystania z trybu DirectQuery, przejdź do tematu Informacje o korzystaniu z trybu DirectQuery w usłudze Power BI.
Porady dotyczące używania łącznika usługi Azure Data Explorer do wykonywania zapytań o dane
Poniższe sekcje zawierają porady i wskazówki dotyczące korzystania z języka zapytań Kusto w dodatku Power Query.
Złożone zapytania w usłudze Power BI
Złożone zapytania są łatwiej wyrażane w usłudze Kusto niż w dodatku Power Query. Powinny one być implementowane jako funkcje Kusto i wywoływane w usłudze Power BI. Ta metoda jest wymagana w przypadku używania zapytania bezpośredniego z instrukcjami let
w zapytaniu Kusto. Ponieważ usługa Power BI łączy dwa zapytania i let
instrukcje nie mogą być używane z operatorem join
, mogą wystąpić błędy składni. W związku z tym zapisz każdą część sprzężenia jako funkcję Kusto i zezwól usłudze Power BI na łączenie tych dwóch funkcji.
Jak symulować względny operator daty i godziny
Dodatek Power Query nie zawiera względnego operatora daty i godziny, takiego jak ago()
.
Aby zasymulować ago()
, użyj kombinacji funkcji DateTime.FixedLocalNow i #duration power query M.
Zamiast tego zapytania przy użyciu ago()
operatora :
StormEvents | where StartTime > (now()-5d)
StormEvents | where StartTime > ago(5d)
Użyj następującego równoważnego zapytania:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
#"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
#"Filtered Rows"
Konfigurowanie opcji łącznika usługi Azure Data Explorer w zapytaniu M
Opcje łącznika usługi Azure Data Explorer można skonfigurować za pomocą zaawansowanego edytora Power Query w języku zapytań M. Korzystając z tych opcji, możesz kontrolować wygenerowane zapytanie wysyłane do klastra usługi Azure Data Explorer.
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
Source
W zapytaniu M można użyć dowolnej z następujących opcji:
Opcja | Przykład | opis |
---|---|---|
MaxRows | [MaxRows=300000] |
Dodaje instrukcję truncationmaxrecords set do zapytania. Zastępuje domyślną maksymalną liczbę rekordów, które zapytanie może powrócić do obiektu wywołującego (obcinanie). |
MaxSize | [MaxSize=4194304] |
Dodaje instrukcję truncationmaxsize set do zapytania. Zastępuje domyślny maksymalny rozmiar danych, który zapytanie może wrócić do obiektu wywołującego (obcinanie). |
NoTruncate | [NoTruncate=true] |
Dodaje instrukcję notruncation set do zapytania. Włącza pomijanie obcinania wyników zapytania zwróconych do obiektu wywołującego. |
AdditionalSetStatements | [AdditionalSetStatements="set query_datascope=hotcache"] |
Dodaje podane instrukcje zestawu do zapytania. Te instrukcje służą do ustawiania opcji zapytania na czas trwania zapytania. Opcje zapytania kontrolują sposób wykonywania i zwracania wyników przez zapytanie. |
Bez uwzględniania wielkości liter | [CaseInsensitive=true] |
Sprawia, że łącznik generuje zapytania, które są bez uwzględniania wielkości liter — zapytania używają =~ operatora zamiast == operatora podczas porównywania wartości. |
ForceUseContains | [ForceUseContains=true] |
Sprawia, że łącznik generuje zapytania, które używają contains zamiast wartości domyślnej has podczas pracy z polami tekstowymi. Chociaż has jest o wiele bardziej wydajny, nie obsługuje podciągów. Aby uzyskać więcej informacji na temat różnicy między dwoma operatorami, przejdź do operatorów ciągów. |
Timeout | [Timeout=#duration(0,10,0,0)] |
Konfiguruje limit czasu klienta i serwera zapytania do podanego czasu. |
ClientRequestIdPrefix | [ClientRequestIdPrefix="MyReport"] |
Konfiguruje prefiks ClientRequestId dla wszystkich zapytań wysyłanych przez łącznik. Dzięki temu zapytania mogą być identyfikowane w klastrze jako pochodzące z określonego raportu i/lub źródła danych. |
Uwaga
Aby osiągnąć wymagane zachowanie, można połączyć wiele opcji: [NoTruncate=true, CaseInsensitive=true]
Osiąganie limitów zapytań Kusto
Zapytania Kusto zwracają domyślnie maksymalnie 500 000 wierszy lub 64 MB zgodnie z opisem w temacie Limity zapytań. Te wartości domyślne można zastąpić przy użyciu opcji zaawansowanych w oknie połączenia usługi Azure Data Explorer (Kusto):
Te opcje wystawiają instrukcje zestawu dla zapytania, aby zmienić domyślne limity zapytań:
- Ograniczanie liczby rekordów wyników zapytania generuje wartość
set truncationmaxrecords
- Ogranicz rozmiar danych wyniku zapytania w bajtach generuje
set truncationmaxsize
- Wyłączanie obcinania zestawu wyników powoduje wygenerowanie
set notruncation
Uwzględnij wielkość liter
Domyślnie łącznik generuje zapytania, które używają operatora uwzględniającego ==
wielkość liter podczas porównywania wartości ciągów. Jeśli dane są niewrażliwe na wielkość liter, nie jest to pożądane zachowanie. Aby zmienić wygenerowane zapytanie, użyj opcji łącznika CaseInsensitive
:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
#"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
#"Filtered Rows"
Używanie parametrów zapytania
Parametry zapytania umożliwiają dynamiczne modyfikowanie zapytania.
Używanie parametru zapytania w krokach zapytania
Możesz użyć parametru zapytania w dowolnym kroku zapytania, który go obsługuje. Na przykład przefiltruj wyniki na podstawie wartości parametru. W tym przykładzie wybierz menu rozwijane po prawej stronie State
kolumny w edytorze Power Query, wybierz pozycję Filtry tekstowe Równe, a następnie wybierz pozycję ALABAMA w obszarze Zachowaj wiersze>, w których znajduje się stan.
Podawanie parametrów funkcji usługi Azure Data Explorer
Funkcje Kusto to doskonały sposób obsługi złożonych zapytań język zapytań Kusto (KQL). Zalecamy używanie funkcji zamiast osadzania języka KQL w dodatku Power Query. Główną zaletą korzystania z funkcji jest to, że logika jest utrzymywana raz w środowisku, które jest łatwe do utworzenia i przetestowania.
Funkcje mogą również odbierać parametry, a tym samym zwiększyć elastyczność użytkownika usługi Power BI. Usługa Power BI ma wiele sposobów na wycinek danych. Jednak wszystkie filtry i fragmentatory są dodawane po oryginalnym KQL i w wielu przypadkach należy użyć filtrowania na wczesnym etapie zapytania. Używanie funkcji i parametrów dynamicznych to bardzo skuteczny sposób dostosowywania końcowego zapytania.
Tworzenie funkcji
Możesz utworzyć następującą funkcję w dowolnym klastrze usługi Azure Data Explorer, do którego masz dostęp, w tym w klastrze bezpłatnym. Funkcja zwraca tabelę SalesTable
z klastra pomocy przefiltrowaną pod kątem transakcji sprzedaży większej lub mniejszej niż liczba podana przez użytkownika raportu.
.create-or-alter function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
cluster("help").database("ContosoSales").SalesTable
| where (Op==">" and SalesAmount >= Cutoff) or (Op=="<" and SalesAmount <= Cutoff)
}
Po utworzeniu funkcji można ją przetestować przy użyciu:
LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Można go również przetestować przy użyciu:
LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Korzystanie z funkcji w usłudze Power BI
Połączenie do klastra, w którym została utworzona funkcja.
W nawigatorze Power Query wybierz funkcję z listy obiektów. Łącznik analizuje parametry i przedstawia je nad danymi po prawej stronie nawigatora.
Dodaj wartości do parametrów, a następnie wybierz pozycję Zastosuj.
Po wyświetleniu podglądu wybierz pozycję Przekształć dane.
Po przejściu do edytora Power Query utwórz dwa parametry— jeden dla wartości odciętej i jeden dla operatora.
Wróć do
LargeOrSmallSales
zapytania i zastąp wartości parametrami zapytania na pasku formuły.W edytorze utwórz dwie tabele statyczne (Wprowadź dane), aby udostępnić opcje dla dwóch parametrów. Na potrzeby cięcia można utworzyć tabelę z wartościami takimi jak 10, 50, 100, 200, 500, 1000, 2000. W przypadku tabeli
Op
z dwiema wartościami<
Tekst i>
.Dwie kolumny w tabelach muszą być powiązane z parametrami zapytania przy użyciu zaznaczenia powiązania z parametrami.
Raport końcowy będzie zawierać fragmentatory dla dwóch tabel statycznych i wszystkich wizualizacji z podsumowania sprzedaży.
Tabela podstawowa jest najpierw filtrowana, a następnie agregowana.
Używanie parametru zapytania w szczegółach połączenia
Użyj parametru zapytania, aby filtrować informacje w zapytaniu i zoptymalizować wydajność zapytań.
W Edytor zaawansowany:
Znajdź następującą sekcję zapytania:
Źródło = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])
Na przykład:
Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
Wstaw parametr zapytania do zapytania język zapytań Kusto (KQL).
Jeśli wklejysz zapytanie KQL bezpośrednio w oknie dialogowym połączenia, zapytanie będzie częścią kroku źródłowego w dodatku Power Query. Parametry można osadzić w ramach zapytania przy użyciu edytora zaawansowanego lub podczas edytowania instrukcji źródłowej na pasku formuły. Przykładowe zapytanie może mieć wartość
StormEvents | where State == ' " & State & " ' | take 100
.State
jest parametrem i w czasie wykonywania zapytanie będzie następujące:StormEvents | where State == 'ALABAMA' | take 100
Jeśli zapytanie zawiera znaki cudzysłowu, zakoduj je poprawnie. Na przykład następujące zapytanie w języku KQL:
"StormEvents | where State == "ALABAMA" | take 100"
pojawi się w Edytor zaawansowany w następujący sposób z dwoma cudzysłowami:
"StormEvents | where State == ""ALABAMA"" | take 100"
Jeśli używasz parametru, takiego jak
State
, należy go zastąpić następującym zapytaniem, które zawiera trzy znaki cudzysłowu:"StormEvents | where State == """ & State & """ | take 100"
Używanie elementu Value.NativeQuery dla funkcji usługi Azure Data Explorer
Aby użyć funkcji usługi Azure Data Explorer, która nie jest obsługiwana w dodatku Power Query, użyj metody Value.NativeQuery w dodatku Power Query M. Ta metoda wstawia fragment język zapytań Kusto wewnątrz wygenerowanego zapytania, a także może służyć do zapewniania większej kontroli nad wykonanym zapytaniem.
W poniższym przykładzie pokazano, jak używać percentiles
funkcji w usłudze Azure Data Explorer:
let
StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
Percentiles
Nie używaj harmonogramu odświeżania danych usługi Power BI do wydawania poleceń kontroli w usłudze Kusto
Usługa Power BI zawiera harmonogram odświeżania danych, który może okresowo wystawiać zapytania względem źródła danych. Ten mechanizm nie powinien służyć do planowania poleceń sterowania w usłudze Kusto, ponieważ usługa Power BI zakłada, że wszystkie zapytania są tylko do odczytu.