Azure Cosmos DB v2 (bèta)
Samenvatting
Item | Beschrijving |
---|---|
Releasestatus | Bèta |
Producten | Power BI (Semantische modellen) Power BI (gegevensstromen) Fabric (Dataflow Gen2) |
Ondersteunde verificatietypen | Feedcode |
Vereisten
Ondersteunde mogelijkheden
- Importeren
- DirectQuery (semantische Power BI-modellen)
- Geavanceerde opties
- Aantal nieuwe pogingen
- Passdown van de functie GEMIDDELDE inschakelen
- Passdown sorteren inschakelen voor meerdere kolommen
Verbinding maken met Azure Cosmos DB
Verbinding maken met Azure Cosmos DB-gegevens:
Start Power BI Desktop.
Selecteer Gegevens ophalen op het tabblad Start.
Voer in het zoekvak Cosmos DB v2 in.
Selecteer Azure Cosmos DB v2 (bèta) en selecteer vervolgens Verbinding maken.
Voer op de verbindingspagina van Azure Cosmos DB v2 voor Cosmos Endpoint de URI in van het Azure Cosmos DB-account dat u wilt gebruiken. Kies voor de dataconnectiviteitsmodus een modus die geschikt is voor uw use-case, volgens de volgende algemene richtlijnen:
Kies Importeren voor kleinere gegevenssets. Wanneer u de importmodus gebruikt, werkt Power BI met Cosmos DB om de inhoud van de volledige gegevensset te importeren voor gebruik in uw visualisaties.
De DirectQuery-modus maakt het uitvoeren van query's naar de Cosmos DB-container mogelijk en verbetert de prestaties van de connector. Voor gepartitioneerde Cosmos DB-containers wordt een SQL-query met een statistische functie doorgegeven aan Cosmos DB als de query ook een filter (WHERE-component) op de partitiesleutel bevat. Als de partitiesleutel bijvoorbeeld is gedefinieerd als Product, kan een SQL-query die kan worden doorgegeven en uitgevoerd op de Cosmos DB-server zijn:
SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'
Notitie
Gebruik Azure Synapse Link voor Azure Cosmos DB als u functies voor meerdere partities wilt uitvoeren voor de Cosmos DB-container.
Meer informatie:
Voer bij de prompt om verificatie van gegevensbronnen te configureren de accountsleutel in. Selecteer vervolgens Connect. Uw gegevenscatalogus, databases en tabellen worden weergegeven in het dialoogvenster Navigator .
Schakel in het deelvenster Weergaveopties het selectievakje in voor de gegevensset die u wilt gebruiken.
De meest optimale manier om het partitiesleutelfilter op te geven (zodat de statistische functies naar Cosmos DB kunnen worden gepusht) is om dynamische M-parameters te gebruiken. Als u dynamische M-parameters wilt gebruiken, maakt u een gegevensset met unieke partitiesleutelwaarden, maakt u een parameter, voegt u deze toe als filter op de hoofdgegevensset, bindt u deze aan de unieke gegevensset partitiesleutel en gebruikt u deze als slicer voor de hoofdgegevensset. Gebruik de volgende stappen om dynamische M-parameters in te schakelen voor het filteren van partitiesleutels.
a. Een gegevensset maken met unieke partitiesleutelwaarden:
Selecteer in Navigator Transformatiegegevens in plaats van Laden om de Power Query-editor weer te geven. Klik met de rechtermuisknop op de gegevensset query's en selecteer Dupliceren om een nieuwe gegevensset te maken.
Wijzig de naam van het nieuwe partitiesleutelmodel en klik met de rechtermuisknop op de kolom met de cosmos DB-partitiesleutel. In dit voorbeeld is Product de partitiesleutelkolom van Cosmos DB. Selecteer Andere kolommen verwijderen en selecteer Duplicaten verwijderen.
b. Een parameter maken voor dynamisch filteren:
Selecteer In de Power Query-editor de optie Nieuwe parameter parameters>beheren. Wijzig de naam van de nieuwe parameter om de filterparameter weer te geven en voer een geldige waarde in als Huidige waarde.
c. Een geparameteriseerd filter toepassen op de hoofdgegevensset:
Selecteer het vervolgkeuzepictogram van de kolom Partitiesleutel en selecteer vervolgens Tekstfilters>gelijk aan. Wijzig het filtertype van Tekst in Parameter. Kies vervolgens de parameter die is gemaakt in stap b. Selecteer Sluiten en toepassen in de linkerbovenhoek van de Power Query-editor.
d. Slicer partitiesleutelwaarden maken met parameterbinding:
Selecteer in Power BI het tabblad Model . Selecteer vervolgens het veld Partitiesleutel. Selecteer in het deelvenster Eigenschappen de optie Advanced>Bind to parameter. Kies de parameter die is gemaakt in stap b.
Selecteer het tabblad Rapport en voeg een slicer toe met de unieke partitiesleutel.
e. Visualisaties toevoegen en partitiesleutelfilter toepassen vanuit de slicer:
Omdat de gekozen partitiesleutelwaarde op de slicer is gebonden aan de parameter (zoals uitgevoerd in stap d) en het geparameteriseerde filter wordt toegepast op de hoofdgegevensset (zoals in stap c), wordt de gekozen partitiesleutelwaarde toegepast als een filter op de hoofdgegevensset en wordt de query met het partitiesleutelfilter doorgegeven aan Cosmos DB in alle visualisaties.
Geavanceerde opties
Power Query biedt een set geavanceerde opties die u indien nodig aan uw query kunt toevoegen.
De volgende tabel bevat alle geavanceerde opties die u in Power Query kunt instellen.
Geavanceerde optie | Beschrijving |
---|---|
Aantal nieuwe pogingen | Hoe vaak u het opnieuw moet proberen als er HTTP-retourcodes van 408 - Request Timeout , 412 - Precondition Failed of 429 - Too Many Requests . Het standaardaantal nieuwe pogingen is 5. |
Passdown van de functie AVERAGE inschakelen | Hiermee geeft u op of de connector pass-down van de statistische functie AVG toestaat voor cosmos DB. De standaardwaarde is 1 en de connector probeert de statistische functie AVG standaard door te geven aan Cosmos DB. Als het argument tekenreeks-, booleaanse of null-waarden voor de statistische functie AVG bevat, wordt een niet-gedefinieerde resultatenset geretourneerd door de Cosmos DB-server. Als deze waarde is ingesteld op waarde 0, wordt de statistische functie AVG niet doorgegeven aan de Cosmos DB-server. De connector verwerkt het uitvoeren van de AVG-aggregatiebewerking zelf. |
SORTEREN-passdown inschakelen voor meerdere kolommen | Hiermee geeft u op of de connector meerdere kolommen toestaat om door te geven aan Cosmos DB wanneer deze is opgegeven in de ORDER BY-component van de SQL-query. De standaardwaarde is 0 en als meer dan één kolom is opgegeven in de ORDER BY-component, geeft de connector de kolommen niet standaard door en wordt in plaats daarvan de volgorde zelf verwerkt. Als deze is ingesteld op waarde 1, probeert de connector meerdere kolommen door te geven aan Cosmos DB wanneer deze is opgegeven in de ORDER BY-component van de SQL-query. Als u wilt toestaan dat meerdere kolommen worden doorgegeven aan Cosmos DB, moet u samengestelde indexen instellen op de kolommen in de respectieve verzamelingen. Voor gepartitioneerde verzamelingen wordt een SQL-query met ORDER BY alleen doorgegeven aan Cosmos DB als de query een filter op de gepartitioneerde sleutel bevat. Als er meer dan acht kolommen zijn opgegeven in de ORDER BY-component, geeft de connector de ORDER BY-component niet door en verwerkt in plaats daarvan de orderuitvoering zelf. |
Bekende problemen en beperkingen
Voor gepartitioneerde Cosmos DB-containers wordt een SQL-query met een statistische functie doorgegeven aan Cosmos DB als de query ook een filter (WHERE-component) op de partitiesleutel bevat. Als de statistische query geen filter op de partitiesleutel bevat, wordt de aggregatie uitgevoerd door de connector.
De connector geeft geen statistische functie door als deze wordt aangeroepen nadat TOP of LIMIT is toegepast. Cosmos DB verwerkt de TOP-bewerking aan het einde bij het verwerken van een query. In de volgende query wordt TOP bijvoorbeeld toegepast in de subquery, terwijl de statistische functie wordt toegepast boven op die resultatenset:
SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E
Als DISTINCT is opgegeven in een statistische functie, geeft de connector de statistische functie niet door aan Cosmos DB als er een DISTINCT-component is opgegeven in een statistische functie. Wanneer deze aanwezig is in een statistische functie, wordt DISTINCT niet ondersteund door de Cosmos DB SQL-API.
Voor de statistische functie SOM retourneert Cosmos DB niet-gedefinieerd als de resultatenset als een van de argumenten in SUM tekenreeks, booleaanse waarde of null is. Als er echter null-waarden zijn, geeft de connector de query door aan Cosmos DB op een zodanige manier dat de gegevensbron de gegevensbron vraagt een null-waarde te vervangen door nul als onderdeel van de BEREKENING SOM.
Voor de statistische functie AVG retourneert Cosmos DB niet-gedefinieerd als resultaatset als een van de argumenten in SUM tekenreeks, booleaanse waarde of null is. De connector maakt een verbindingseigenschap beschikbaar om het doorgeven van de statistische FUNCTIE AVG aan Cosmos DB uit te schakelen voor het geval dit standaardgedrag van Cosmos DB moet worden overschreven. Wanneer AVG-passdown is uitgeschakeld, wordt deze niet doorgegeven aan Cosmos DB en verwerkt de connector het uitvoeren van de AVG-aggregatiebewerking zelf. Ga naar 'Enable AVERAGE function Passdown' in Geavanceerde opties voor meer informatie.
Azure Cosmos DB-containers met een grote partitiesleutel worden momenteel niet ondersteund in de connector.
Aggregatiepassdown is uitgeschakeld voor de volgende syntaxis vanwege serverbeperkingen:
Wanneer de query niet filtert op een partitiesleutel of wanneer het partitiesleutelfilter de OPERATOR OR gebruikt met een ander predicaat op het hoogste niveau in de WHERE-component.
Wanneer de query een of meer partitiesleutels bevat in een IS NOT NULL-component in de WHERE-component.
De V2-connector biedt geen ondersteuning voor complexe gegevenstypen, zoals matrices, objecten en hiërarchische structuren. Voor deze scenario's raden we de functie Fabric Mirroring voor Azure Cosmos DB aan.
De V2-connector maakt gebruik van steekproeven van de eerste 1000 documenten om het uitgestelde schema te halen. Het wordt niet aanbevolen voor scenario's voor schemaontwikkeling wanneer slechts een deel van de documenten wordt bijgewerkt. Als voorbeeld kan een zojuist toegevoegde eigenschap aan één document in een container met gebruikers van documenten niet worden opgenomen in het afgeleid schema. Voor deze scenario's raden we de functie Fabric Mirroring voor Azure Cosmos DB aan.
Momenteel biedt de V2-connector geen ondersteuning voor niet-tekenreekswaarden in objecteigenschappen.
Filter passdown is uitgeschakeld voor de volgende syntaxis vanwege serverbeperkingen:
- Wanneer de query met een of meer statistische kolommen wordt verwezen in de WHERE-component.