Azure Cosmos DB v2 (beta verze)

Shrnutí

Item Popis
Stav vydání Beta
Produkty Power BI (sémantické modely)
Power BI (toky dat)
Prostředky infrastruktury (Tok dat Gen2)
Podporované typy ověřování Klíč datového kanálu

Požadavky

Podporované funkce

  • Importovat
  • DirectQuery (sémantické modely Power BI)
  • Upřesnit možnosti
    • Počet opakování
    • Povolení předání funkce PRŮMĚR
    • Povolení předání "SORT" pro více sloupců

Připojení ke službě Azure Cosmos DB

Připojení k datům Azure Cosmos DB:

  1. Spusťte Power BI Desktop.

  2. Na kartě Domů vyberte Získat data.

  3. Do vyhledávacího pole zadejte Cosmos DB v2.

  4. Vyberte Azure Cosmos DB v2 (beta verze) a pak vyberte Připojení.

    Screenshot showing Select Azure Cosmos DB v2 selection.

  5. Na stránce připojení ke službě Azure Cosmos DB v2 zadejte pro koncový bod služby Cosmos DB identifikátor URI účtu služby Azure Cosmos DB, který chcete použít. V případě režimu Připojení ivity dat zvolte režim, který je vhodný pro váš případ použití, a to podle těchto obecných pokynů:

    • U menších datových sad zvolte Importovat. Při použití režimu importu power BI spolupracuje se službou Cosmos DB na import obsahu celé datové sady pro použití ve vizualizacích.

    • Režim DirectQuery umožňuje odesílání dotazů do kontejneru Cosmos DB ke spuštění a zlepšuje výkon konektoru. U dělených kontejnerů Cosmos DB se dotaz SQL s agregační funkcí předává službě Cosmos DB, pokud dotaz obsahuje také filtr (klauzuli WHERE) pro klíč oddílu. Pokud je například klíč oddílu definovaný jako "Product", pak dotaz SQL, který se dá předat a spustit na serveru Cosmos DB, může být následující:

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

    Poznámka:

    Pokud chcete spouštět agregované agregační funkce napříč oddíly s kontejnerem Cosmos DB, použijte Azure Synapse Link pro službu Azure Cosmos DB .

    Další informace:

    Screenshot of the connection dialog box showing the Cosmos Endpoint entry and Data connectivity mode set to DirectQuery.

  6. Na výzvu ke konfiguraci ověřování zdroje dat zadejte klíč účtu. Pak vyberte Připojení. Katalog dat, databáze a tabulky se zobrazí v dialogovém okně Navigátor .

  7. V podokně Možnosti zobrazení zaškrtněte políčko pro datovou sadu, kterou chcete použít.

    Screenshot of the Navigator emphasizing the data you've selected.

  8. Nejoptimálnější způsob, jak zadat filtr klíče oddílu (aby bylo možné agregační funkce odeslat do služby Cosmos DB), je použít dynamické parametry M. Pokud chcete použít dynamické parametry M, vytvoříte datovou sadu s jedinečnými hodnotami klíče oddílu, vytvoříte parametr, přidáte ho jako filtr pro hlavní datovou sadu, svážete ji s jedinečnou datovou sadou klíče oddílu a použijete ji jako průřez pro hlavní datovou sadu. Pomocí následujícího postupu povolte dynamické parametry M pro filtrování klíče oddílu.

    a. Vytvoření datové sady s jedinečnými hodnotami klíče oddílu:

    V navigátoru vyberte Možnost Transformovat data místo načtení , aby se vyvolil editor Power Query. Klikněte pravým tlačítkem myši na sadu dat dotazů a pak výběrem možnosti Duplikovat vytvořte novou sadu dat.

    Screenshot showing how to select duplicate from your existing query in the Power Query editor.

    Přejmenujte nový model klíče oddílu a klikněte pravým tlačítkem na sloupec klíče oddílu Cosmos DB. V tomto příkladu je produkt sloupcem klíče oddílu cosmos DB. Vyberte Odebrat ostatní sloupce a pak vyberte Odebrat duplicity.

    Screenshot showing the unique Partition Keys in Power Query editor.

    b. Vytvoření parametru pro dynamické filtrování:

    V editoru Power Query vyberte Spravovat parametry>Nový parametr. Přejmenujte nový parametr tak, aby odrážel parametr filtru a zadal platnou hodnotu jako Aktuální hodnota.

    Screenshot showing how to create a parameter in the Power Query editor.

    c. Použití parametrizovaného filtru v hlavní sadě dat:

    Vyberte ikonu rozevíracího seznamu ve sloupci Klíč oddílu a pak vyberte Filtry>textu se rovná. Změňte typ filtru z Text na Parametr. Pak zvolte parametr, který byl vytvořen v kroku b. V levém horním rohu editoru Power Query vyberte Zavřít a použít .

    Screenshot showing the steps to apply the parameterized filter.

    d. Vytvoření průřezu hodnot klíče oddílu s vazbou parametrů:

    V Power BI vyberte kartu Model . Pak vyberte pole Klíč oddílu. V podokně Vlastnosti vyberte možnost Upřesnit>vazbu k parametru. Zvolte parametr, který byl vytvořen v kroku b.

    Screenshot showing the steps to bind the parameter.

    Vyberte kartu Sestava a přidejte průřez s jedinečným klíčem oddílu.

    Screenshot of the slicer.

    e. Přidání vizualizací a použití filtru klíče oddílu z průřezu:

    Vzhledem k tomu, že vybraná hodnota klíče oddílu v průřezu je svázaná s parametrem (stejně jako v kroku d) a parametrizovaný filtr se použije u hlavní datové sady (jak je to v kroku c), vybraná hodnota klíče oddílu se použije jako filtr pro hlavní sadu dat a dotaz s filtrem klíče oddílu se předává do Cosmos DB ve všech vizualizacích.

    Screenshot of the visualization after the partition key filter is applied.

Rozšířené možnosti

Power Query poskytuje sadu rozšířených možností, které můžete v případě potřeby přidat do dotazu.

V následující tabulce jsou uvedeny všechny pokročilé možnosti, které můžete nastavit v Power Query.

Upřesnit možnosti Popis
Počet opakování Kolikrát se má opakovat, pokud existují návratové kódy 408 - Request TimeoutHTTP , 412 - Precondition Failednebo 429 - Too Many Requests. Výchozí počet opakování je 5.
Povolení předání funkce PRŮMĚR Určuje, jestli konektor umožňuje předávat agregační funkci AVG do cosmos DB. Výchozí hodnota je 1 a konektor se ve výchozím nastavení pokusí předat agregační funkci AVG do cosmos DB. Pokud argument obsahuje řetězcové, logické nebo nulové hodnoty pro agregační funkci AVG, server Cosmos DB vrátí nedefinovanou sadu výsledků. Pokud je nastavená hodnota 0, agregační funkce AVG se nepředává na server Cosmos DB a konektor zpracovává provádění samotné agregační operace AVG.
Povolení předávání SORT pro více sloupců Určuje, jestli konektor umožňuje předání více sloupců službě Cosmos DB, pokud je zadáno v klauzuli ORDER BY dotazu SQL. Výchozí hodnota je 0 a pokud je v klauzuli ORDER BY zadáno více než jeden sloupec, konektor ve výchozím nastavení nepředává sloupce a místo toho zpracovává pořadí samotné. Pokud je nastavená hodnota 1, konektor se pokusí předat více sloupců do Cosmos DB, pokud je zadána v klauzuli ORDER BY dotazu SQL. Pokud chcete povolit předávání více sloupců do cosmos DB, ujistěte se, že jsou ve sloupcích v příslušných kolekcích nastavené složené indexy. U dělených kolekcí se dotaz SQL s ORDER BY předá službě Cosmos DB pouze v případě, že dotaz obsahuje filtr na dělený klíč. Pokud je v klauzuli ORDER BY zadáno více než osm sloupců, konektor nepředává klauzuli ORDER BY a místo toho zpracovává samotné řazení.

Známé problémy a omezení

  • U dělených kontejnerů Cosmos DB se dotaz SQL s agregační funkcí předává službě Cosmos DB, pokud dotaz obsahuje také filtr (klauzuli WHERE) pro klíč oddílu. Pokud agregační dotaz neobsahuje filtr pro klíč oddílu, agregace se provede konektorem.

  • Konektor nepředává agregační funkci, pokud je volána po použití funkce TOP nebo LIMIT. Cosmos DB zpracovává operaci TOP na konci při zpracování dotazu. Například v následujícím dotazu se top použije v poddotazu, zatímco agregační funkce se použije nad danou sadu výsledků:

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

  • Pokud je v agregační funkci k dispozici funkce DISTINCT, konektor nepředá agregační funkci do Cosmos DB, pokud je v agregační funkci k dispozici klauzule DISTINCT. Pokud je k dispozici v agregační funkci, rozhraní SQL API služby Cosmos DB nepodporuje funkce DISTINCT.

  • Pro agregační funkci SUMA vrátí Cosmos DB nedefinovanou jako sadu výsledků, pokud některý z argumentů v funkci SUMA je řetězec, logická hodnota nebo null. Pokud však existují hodnoty null, konektor předá dotaz do Cosmos DB takovým způsobem, že požádá zdroj dat o nahrazení hodnoty null nulou jako součást výpočtu SUMA.

  • Pro agregační funkci AVG vrátí Cosmos DB nedefinovanou jako sadu výsledků, pokud některý z argumentů v argumentu SUMA je řetězec, logická hodnota nebo null. Konektor zveřejňuje vlastnost připojení, která zakáže předání agregační funkce AVG službě Cosmos DB v případě, že je potřeba přepsat toto výchozí chování služby Cosmos DB. Když je zakázaný přístupový seznam AVG, nepředává se do cosmos DB a konektor zpracovává provádění samotné operace agregace AVG. Další informace najdete v části Povolení předávání funkce PRŮMĚR v rozšířených možnostech.

  • Kontejnery Azure Cosmos DB s velkým klíčem oddílu se v současné době v Připojení or nepodporují.

  • Předání agregace je zakázané pro následující syntaxi kvůli omezením serveru:

    • Pokud dotaz nefiltruje klíč oddílu nebo když filtr klíče oddílu používá operátor OR s jiným predikátem na nejvyšší úrovni klauzule WHERE.

    • Pokud dotaz obsahuje jeden nebo více klíčů oddílů, zobrazí se v klauzuli WHERE klauzule IS NOT NULL.

  • Předání filtru je zakázané pro následující syntaxi z důvodu omezení serveru:

    • Pokud dotaz obsahující jeden nebo více agregačních sloupců odkazuje v klauzuli WHERE.