Udostępnij za pośrednictwem


Azure Cosmos DB w wersji 2 (wersja beta)

Podsumowanie

Produkt opis
Stan wydania Beta
Produkty Power BI (modele semantyczne)
Power BI (przepływy danych)
Sieć szkieletowa (Dataflow Gen2)
Obsługiwane typy uwierzytelniania Klucz źródła strumieniowego

Wymagania wstępne

Obsługiwane funkcje

  • Importuj
  • Tryb DirectQuery (modele semantyczne usługi Power BI)
  • Opcje zaawansowane
    • Liczba ponownych prób
    • Włącz funkcję "AVERAGE" Passdown
    • Włącz "SORT" Passdown dla wielu kolumn

Łączenie z usługą Azure Cosmos DB

Aby nawiązać połączenie z danymi usługi Azure Cosmos DB:

  1. Uruchom program Power BI Desktop.

  2. Na karcie Narzędzia główne wybierz pozycję Pobierz dane.

  3. W polu wyszukiwania wprowadź Cosmos DB v2.

  4. Wybierz pozycję Azure Cosmos DB v2 (beta), a następnie wybierz pozycję Połącz.

    Zrzut ekranu przedstawiający wybieranie opcji Wybierz usługę Azure Cosmos DB w wersji 2.

  5. Na stronie połączenia usługi Azure Cosmos DB w wersji 2 w polu Punkt końcowy usługi Cosmos wprowadź identyfikator URI konta usługi Azure Cosmos DB, którego chcesz użyć. W przypadku trybu łączności danych wybierz tryb odpowiedni dla danego przypadku użycia, zgodnie z następującymi ogólnymi wytycznymi:

    • W przypadku mniejszych zestawów danych wybierz pozycję Importuj. W przypadku korzystania z trybu importu usługa Power BI współpracuje z usługą Cosmos DB w celu zaimportowania zawartości całego zestawu danych do użycia w wizualizacjach.

    • Tryb DirectQuery umożliwia wypychanie zapytań do kontenera usługi Cosmos DB na potrzeby wykonywania i poprawia wydajność łącznika. W przypadku partycjonowanych kontenerów usługi Cosmos DB zapytanie SQL z funkcją agregowaną jest przekazywane do usługi Cosmos DB, jeśli zapytanie zawiera również filtr (klauzulę WHERE) w kluczu partycji. Jeśli na przykład klucz partycji jest zdefiniowany jako "Produkt", zapytanie SQL, które można przekazać i wykonać na serwerze usługi Cosmos DB, może:

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    Uwaga

    Użyj usługi Azure Synapse Link dla usługi Azure Cosmos DB , jeśli chcesz wykonywać między partycjami funkcje agregujące względem kontenera usługi Cosmos DB.

    Więcej informacji:

    Zrzut ekranu przedstawiający okno dialogowe połączenia z wpisem punktu końcowego usługi Cosmos i trybem łączności danych ustawionym na tryb DirectQuery.

  6. Po wyświetleniu monitu o skonfigurowanie uwierzytelniania źródła danych wprowadź klucz konta. Następnie wybierz pozycję Połącz. Katalog danych, bazy danych i tabele są wyświetlane w oknie dialogowym Nawigator .

  7. W okienku Opcje wyświetlania zaznacz pole wyboru dla zestawu danych, którego chcesz użyć.

    Zrzut ekranu przedstawiający nawigator z podkreśleniami wybranych danych.

  8. Najbardziej optymalnym sposobem określenia filtru klucza partycji (tak aby można było wypchnąć funkcje agregujące do usługi Cosmos DB) jest użycie dynamicznych parametrów języka M. Aby użyć dynamicznych parametrów języka M, należy utworzyć zestaw danych z unikatowymi wartościami klucza partycji, utworzyć parametr, dodać go jako filtr dla głównego zestawu danych, powiązać go z unikatowym zestawem danych klucza partycji i użyć go jako fragmentatora głównego zestawu danych. Wykonaj poniższe kroki, aby włączyć dynamiczne parametry języka M dla filtrowania klucza partycji.

    a. Tworzenie zestawu danych z unikatowymi wartościami klucza partycji:

    W nawigatorze wybierz pozycję Przekształć dane zamiast załadować, aby wyświetlić edytor Power Query. Kliknij prawym przyciskiem myszy zestaw danych zapytań, a następnie wybierz polecenie Duplikuj , aby utworzyć nowy zestaw danych.

    Zrzut ekranu przedstawiający sposób wybierania duplikatu z istniejącego zapytania w edytorze Power Query.

    Zmień nazwę nowego modelu klucza partycji, a następnie kliknij prawym przyciskiem myszy kolumnę Klucz partycji usługi Cosmos DB. W tym przykładzie product to kolumna klucza partycji usługi Cosmos DB. Wybierz pozycję Usuń inne kolumny, a następnie wybierz pozycję Usuń duplikaty.

    Zrzut ekranu przedstawiający unikatowe klucze partycji w edytorze Power Query.

    b. Tworzenie parametru na potrzeby filtrowania dynamicznego:

    W edytorze Power Query wybierz pozycję Zarządzaj parametrami>Nowy parametr. Zmień nazwę nowego parametru, aby odzwierciedlić parametr filtru i wprowadzić prawidłową wartość jako Bieżąca wartość.

    Zrzut ekranu przedstawiający sposób tworzenia parametru w edytorze Power Query.

    c. Stosowanie filtru sparametryzowanego w głównym zestawie danych:

    Wybierz ikonę listy rozwijanej kolumny Klucz partycji, a następnie wybierz pozycję Filtry>tekstowe Równe. Zmień typ filtru z Text na Parametr. Następnie wybierz parametr utworzony w kroku b. Wybierz pozycję Zamknij i zastosuj w lewym górnym rogu edytora Power Query.

    Zrzut ekranu przedstawiający kroki stosowania filtru sparametryzowanego.

    d. Tworzenie fragmentatora wartości klucza partycji z powiązaniem parametrów:

    W usłudze Power BI wybierz kartę Model . Następnie wybierz pole Klucz partycji. W okienku Właściwości wybierz pozycję Zaawansowane>powiązanie z parametrem. Wybierz parametr utworzony w kroku b.

    Zrzut ekranu przedstawiający kroki powiązania parametru.

    Wybierz kartę Raport i dodaj fragmentator z unikatowym kluczem partycji.

    Zrzut ekranu przedstawiający fragmentator.

    e. Dodawanie wizualizacji i stosowanie filtru klucza partycji z fragmentatora:

    Ponieważ wybrana wartość klucza partycji we fragmentatorze jest powiązana z parametrem (zgodnie z instrukcją w kroku d), a filtr sparametryzowany jest stosowany w głównym zestawie danych (zgodnie z instrukcją w kroku c), wybrana wartość klucza partycji jest stosowana jako filtr głównego zestawu danych, a zapytanie z filtrem klucza partycji jest przekazywane do usługi Cosmos DB we wszystkich wizualizacjach.

    Zrzut ekranu przedstawiający wizualizację po zastosowaniu filtru klucza partycji.

Opcje zaawansowane

Dodatek Power Query udostępnia 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 dodatku Power Query.

Opcja zaawansowana opis
Liczba ponownych prób Ile razy należy ponowić próbę, jeśli istnieją kody powrotu 408 - Request TimeoutHTTP , 412 - Precondition Failedlub 429 - Too Many Requests. Domyślna liczba ponownych prób to 5.
Włączanie funkcji AVERAGE — przekazywanie Określa, czy łącznik zezwala na przekazywanie funkcji agregującej AVG do usługi Cosmos DB. Wartość domyślna to 1, a łącznik domyślnie próbuje przekazać funkcję agregacji AVG do usługi Cosmos DB. Jeśli argument zawiera ciąg, wartość logiczną lub wartości null dla funkcji agregującej AVG, niezdefiniowany zestaw wyników jest zwracany przez serwer usługi Cosmos DB. W przypadku ustawienia wartości 0 funkcja agregacji AVG nie jest przekazywana do serwera usługi Cosmos DB, a łącznik obsługuje wykonywanie samej operacji agregacji AVG.
Włączanie funkcji SORT — przekazywanie dla wielu kolumn Określa, czy łącznik umożliwia przekazywanie wielu kolumn do usługi Cosmos DB po określeniu w klauzuli ORDER BY zapytania SQL. Wartość domyślna to 0, a jeśli w klauzuli ORDER BY określono więcej niż jedną kolumnę, łącznik nie przekazuje kolumn domyślnie i zamiast tego obsługuje wykonywanie kolejności samodzielnie. W przypadku ustawienia wartości 1 łącznik próbuje przekazać wiele kolumn do usługi Cosmos DB, gdy jest określona w klauzuli ORDER BY zapytania SQL. Aby zezwolić na przekazywanie wielu kolumn do usługi Cosmos DB, upewnij się, że indeksy złożone są ustawione na kolumnach w odpowiednich kolekcjach. W przypadku kolekcji partycjonowanych zapytanie SQL z elementem ORDER BY zostanie przekazane do usługi Cosmos DB tylko wtedy, gdy zapytanie zawiera filtr klucza partycjonowanego. Ponadto jeśli w klauzuli ORDER BY określono więcej niż osiem kolumn, łącznik nie przekazuje klauzuli ORDER BY i zamiast tego obsługuje samo wykonanie zamówienia.

Znane problemy i ograniczenia

  • W przypadku partycjonowanych kontenerów usługi Cosmos DB zapytanie SQL z funkcją agregowaną jest przekazywane do usługi Cosmos DB, jeśli zapytanie zawiera również filtr (klauzulę WHERE) w kluczu partycji. Jeśli zapytanie agregacji nie zawiera filtru klucza partycji, agregacja jest wykonywana przez łącznik.

  • Łącznik nie przekazuje funkcji agregującej, jeśli jest wywoływana po zastosowaniu funkcji TOP lub LIMIT. Usługa Cosmos DB przetwarza operację TOP na końcu podczas przetwarzania zapytania. Na przykład w poniższym zapytaniu funkcja TOP jest stosowana w podzapytaniu, podczas gdy funkcja agregacji jest stosowana na podstawie tego zestawu wyników:

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • Jeśli funkcja distinct jest udostępniana w funkcji agregującej, łącznik nie przekazuje funkcji agregującej do usługi Cosmos DB, jeśli klauzula DISTINCT jest podana w funkcji agregującej. W przypadku obecności w funkcji agregującej funkcja DISTINCT nie jest obsługiwana przez interfejs API SQL usługi Cosmos DB.

  • W przypadku funkcji agregującej SUM usługa Cosmos DB zwraca wartość niezdefiniowaną jako zestaw wyników, jeśli którykolwiek z argumentów w funkcji SUM to ciąg, wartość logiczna lub wartość null. Jeśli jednak istnieją wartości null, łącznik przekazuje zapytanie do usługi Cosmos DB w taki sposób, aby prosiło źródło danych o zastąpienie wartości null wartością zero w ramach obliczenia SUM.

  • W przypadku funkcji agregującej AVG usługa Cosmos DB zwraca niezdefiniowane jako zestaw wyników, jeśli którykolwiek z argumentów w funkcji SUM to ciąg, wartość logiczna lub wartość null. Łącznik uwidacznia właściwość połączenia, aby wyłączyć przekazywanie funkcji agregującej AVG do usługi Cosmos DB w przypadku, gdy to domyślne zachowanie usługi Cosmos DB musi zostać zastąpione. Gdy przekazywanie AVG jest wyłączone, nie jest przekazywane do usługi Cosmos DB, a łącznik obsługuje wykonywanie samej operacji agregacji AVG. Aby uzyskać więcej informacji, przejdź do tematu "Włącz funkcję AVERAGE function Passdown" w obszarze Opcje zaawansowane.

  • Kontenery usługi Azure Cosmos DB z dużym kluczem partycji nie są obecnie obsługiwane w łączniku.

  • Przekazywanie agregacji jest wyłączone dla następującej składni z powodu ograniczeń serwera:

    • Jeśli zapytanie nie filtruje klucza partycji lub gdy filtr klucza partycji używa operatora OR z innym predykatem na najwyższym poziomie w klauzuli WHERE.

    • Jeśli zapytanie zawiera co najmniej jeden klucz partycji, znajduje się w klauzuli IS NOT NULL w klauzuli WHERE.

  • Łącznik w wersji 2 nie obsługuje złożonych typów danych, takich jak tablice, obiekty i struktury hierarchiczne. W tych scenariuszach zalecamy funkcję dublowania sieci szkieletowej dla usługi Azure Cosmos DB .

  • Łącznik w wersji 2 używa próbkowania pierwszych 1000 dokumentów, aby wymyślić wywnioskowany schemat. Nie jest zalecane w przypadku scenariuszy ewolucji schematu, gdy aktualizowana jest tylko część dokumentów. Na przykład nowo dodana właściwość do jednego dokumentu w kontenerze z wartościami dokumentów może nie zostać wywnioskowana w schemacie wywnioskowanym. W tych scenariuszach zalecamy funkcję dublowania sieci szkieletowej dla usługi Azure Cosmos DB .

  • Obecnie łącznik w wersji 2 nie obsługuje wartości innych niż ciąg we właściwościach obiektu.

  • Przekazywanie filtru jest wyłączone dla następującej składni z powodu ograniczeń serwera:

    • Gdy zapytanie zawierające co najmniej jedną kolumnę agregowaną jest przywoływana w klauzuli WHERE.