Azure Cosmos DB v2 (beta verze)
Shrnutí
Položka | 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
- Import
- 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:
Spusťte Power BI Desktop.
Na kartě Domů vyberte Získat data.
Do vyhledávacího pole zadejte Cosmos DB v2.
Vyberte Azure Cosmos DB v2 (beta verze) a pak vyberte Připojit.
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í k datům 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:
Na výzvu ke konfiguraci ověřování zdroje dat zadejte klíč účtu. Pak vyberte Připojit. Katalog dat, databáze a tabulky se zobrazí v dialogovém okně Navigátor .
V podokně Možnosti zobrazení zaškrtněte políčko pro datovou sadu, kterou chcete použít.
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.
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.
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.
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 .
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.
Vyberte kartu Sestava a přidejte průřez s jedinečným klíčem oddílu.
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.
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 Timeout HTTP , 412 - Precondition Failed nebo 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 konektoru 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.
Konektor V2 nepodporuje složité datové typy, jako jsou pole, objekty a hierarchické struktury. Pro tyto scénáře doporučujeme používat funkci Zrcadlení prostředků infrastruktury pro službu Azure Cosmos DB .
Konektor V2 používá vzorkování prvních 1 000 dokumentů k vytvoření odvozeného schématu. Pro scénáře vývoje schématu se nedoporučuje, když se aktualizují jenom část dokumentů. Například nově přidaná vlastnost do jednoho dokumentu v kontejneru s thousanty dokumentů nemusí být v odvozené schéma. Pro tyto scénáře doporučujeme používat funkci Zrcadlení prostředků infrastruktury pro službu Azure Cosmos DB .
Konektor V2 v současné době nepodporuje hodnoty, které nejsou řetězcové ve vlastnostech objektu.
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.