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:

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

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

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

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

  5. Naciśnij OK, aby kontynuować.

    Zrzut ekranu przedstawiający okno dialogowe Azure Data Explorer (Kusto) z wprowadzonym adresem URL klastra.

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

    Zrzut ekranu przedstawiający okno dialogowe logowania dla usługi Azure Data Explorer z kontem organizacyjnym gotowym do zalogowania.

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

    Zrzut ekranu przedstawiający otwarty nawigator zawierający dane z bazy danych StormEvents w bazie danych Samples.

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:

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

    Zrzut ekranu przedstawiający okno pobierania danych z podkreślonej usługi Azure Data Explorer.

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

    Zrzut ekranu przedstawiający stronę Wybieranie źródła danych dla usługi Azure Data Explorer (Kusto) z wprowadzonym adresem URL klastra.

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

  4. W razie potrzeby wybierz lokalną bramę danych w bramie danych.

  5. Jeśli nie masz jeszcze połączenia z klastrem, wybierz pozycję Zaloguj się. Zaloguj się przy użyciu konta organizacyjnego.

  6. Po pomyślnym zalogowaniu wybierz pozycję Dalej.

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

    Zrzut ekranu przedstawiający stronę Wybieranie danych zawierającą dane z systemu StormEvents w bazie danych Samples.

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):

opcje zaawansowane.

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.

Filtrowanie wyników przy użyciu parametru.

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
  1. Połączenie do klastra, w którym została utworzona funkcja.

  2. W nawigatorze Power Query wybierz funkcję z listy obiektów. Łącznik analizuje parametry i przedstawia je nad danymi po prawej stronie nawigatora.

    Zrzut ekranu przedstawiający parametry Cutoff i Op wyświetlane powyżej danych w nawigatorze.

  3. Dodaj wartości do parametrów, a następnie wybierz pozycję Zastosuj.

  4. Po wyświetleniu podglądu wybierz pozycję Przekształć dane.

  5. Po przejściu do edytora Power Query utwórz dwa parametry— jeden dla wartości odciętej i jeden dla operatora.

  6. Wróć do LargeOrSmallSales zapytania i zastąp wartości parametrami zapytania na pasku formuły.

    Zrzut ekranu przedstawiający funkcję LargeOrSmallSales z naciskiem na parametry Cutoff_Param i Op_Param na pasku formuły.

  7. 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 Opz dwiema wartościami < Tekst i >.

  8. Dwie kolumny w tabelach muszą być powiązane z parametrami zapytania przy użyciu zaznaczenia powiązania z parametrami.

    Zrzut ekranu przedstawiający powiązanie operacji z parametrem Op_Param.

Raport końcowy będzie zawierać fragmentatory dla dwóch tabel statycznych i wszystkich wizualizacji z podsumowania sprzedaży.

Zrzut ekranu w usłudze Power BI z zaznaczonymi opcjami Wycinanie i Op obok tabeli.

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:

  1. 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", [])
    
  2. 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

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