Del via


Azure Cosmos DB v2 (beta)

Oversigt

Element Beskrivelse
Udgivelsestilstand Beta
Produkter Power BI (semantiske modeller)
Power BI (dataflow)
Fabric (Dataflow Gen2)
Understøttede godkendelsestyper Feednøgle

Forudsætninger

Understøttede egenskaber

  • Importér
  • DirectQuery (semantiske Power BI-modeller)
  • Avancerede indstillinger
    • Antal nye forsøg
    • Aktivér passdown for funktionen "AVERAGE"
    • Aktivér "SORT"-passdown for flere kolonner

Forbind til Azure Cosmos DB

Sådan opretter du forbindelse til Azure Cosmos DB-data:

  1. Start Power BI Desktop.

  2. På fanen Hjem skal du vælge Hent data.

  3. I søgefeltet skal du skrive Cosmos DB v2.

  4. Vælg Azure Cosmos DB v2 (beta), og vælg derefter Forbind.

    Screenshot showing Select Azure Cosmos DB v2 selection.

  5. Angiv URI'en for den Azure Cosmos DB-konto, du vil bruge, for Cosmos Endpoint på siden Azure Cosmos DB v2-forbindelse. I forbindelse med data Forbind ivitetstilstand skal du vælge en tilstand, der passer til din use case, ved at følge disse generelle retningslinjer:

    • For mindre datasæt skal du vælge Importér. Når du bruger importtilstand, arbejder Power BI sammen med Cosmos DB om at importere indholdet af hele datasættet til brug i dine visualiseringer.

    • DirectQuery-tilstand muliggør pushdown af forespørgsler til Cosmos DB-objektbeholderen til udførelse og forbedrer connectorens ydeevne. For partitionerede Cosmos DB-objektbeholdere overføres en SQL-forespørgsel med en aggregatfunktion til Cosmos DB, hvis forespørgslen også indeholder et filter (WHERE-delsætning) på partitionsnøglen. Hvis partitionsnøglen f.eks. er defineret til at være "Produkt", kan en SQL-forespørgsel, der kan overføres og udføres på Cosmos DB-serveren, være:

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

    Bemærk

    Brug Azure Synapse Link til Azure Cosmos DB , hvis du vil udføre tværgående partitionerede aggregeringsfunktioner mod Cosmos DB-objektbeholderen.

    Flere oplysninger:

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

  6. Angiv kontonøglen, når du bliver bedt om at konfigurere godkendelse af datakilden. Vælg derefter Forbind. Dit datakatalog, dine databaser og tabeller vises i dialogboksen Navigator .

  7. Markér afkrydsningsfeltet for det datasæt, du vil bruge, i ruden Visningsindstillinger .

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

  8. Den mest optimale måde at angive partitionsnøglefilteret på (så aggregeringsfunktionerne kan skubbes ned til Cosmos DB) er ved at bruge dynamiske M-parametre. Hvis du vil bruge dynamiske M-parametre, skal du oprette et datasæt med entydige partitionsnøgleværdier, oprette en parameter, tilføje den som et filter på hoveddatasættet, binde det til det entydige partitionsnøgledatasæt og bruge det som et udsnit for det primære datasæt. Brug følgende trin til at aktivere dynamiske M-parametre til filtrering af partitionsnøgle.

    a. Opret et datasæt med entydige partitionsnøgleværdier:

    I Navigator skal du vælge Transformér data i stedet for Indlæs for at få vist Power Query-editoren. Højreklik på datasættet forespørgsler, og vælg derefter Dupliker for at oprette et nyt datasæt.

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

    Omdøb den nye partitionsnøglemodel, og højreklik derefter på kolonnen Cosmos DB-partitionsnøgle. I dette eksempel er Product kolonnen Cosmos DB-partitionsnøgle. Vælg Fjern andre kolonner, og vælg derefter Fjern dubletter.

    Screenshot showing the unique Partition Keys in Power Query editor.

    b. Opret en parameter til dynamisk filtrering:

    I Power Query-editor skal du vælge Administrer parametre>Ny parameter. Omdøb den nye parameter, så den afspejler filterparameteren, og angiv en gyldig værdi som aktuel værdi.

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

    c. Anvend parameteriseret filter på hoveddatasættet:

    Vælg rullelisteikonet for kolonnen Partitionsnøgle, og vælg derefter Tekstfiltre>er lig med. Skift filtertypen fra Tekst til Parameter. Vælg derefter den parameter, der blev oprettet i trin b. Vælg Luk og anvend i øverste venstre hjørne af Power Query-editoren.

    Screenshot showing the steps to apply the parameterized filter.

    d. Opret udsnitsværktøjet Partitionsnøgleværdier med parameterbinding:

    Vælg fanen Model i Power BI. Vælg derefter feltet Partitionsnøgle. I ruden Egenskaber skal du vælge Avanceret>binding til parameter. Vælg den parameter, der blev oprettet i trin b.

    Screenshot showing the steps to bind the parameter.

    Vælg fanen Rapport, og tilføj et udsnit med den entydige partitionsnøgle.

    Screenshot of the slicer.

    e. Tilføj visualiseringer, og anvend partitionsnøglefilteret fra udsnittet:

    Da den valgte partitionsnøgleværdi i udsnittet er bundet til parameteren (som udført i trin d), og det parameteriserede filter anvendes på hoveddatasættet (som gjort i trin c), anvendes den valgte partitionsnøgleværdi som et filter på hoveddatasættet, og forespørgslen med partitionsnøglefilteret overføres til Cosmos DB i alle visualiseringer.

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

Avancerede indstillinger

Power Query indeholder et sæt avancerede indstillinger, som du kan føje til din forespørgsel, hvis det er nødvendigt.

I følgende tabel vises alle de avancerede indstillinger, du kan angive i Power Query.

Avanceret indstilling Beskrivelse
Antal nye forsøg Hvor mange gange, der skal prøves igen, hvis der er HTTP-returkoder for 408 - Request Timeout, 412 - Precondition Failedeller 429 - Too Many Requests. Standardantal forsøg er 5.
Aktivér passdown for funktionen AVERAGE Angiver, om connectoren tillader pass-down af AVG-aggregeringsfunktionen til Cosmos DB. Standardværdien er 1, og connectoren forsøger som standard at overføre avg-aggregeringsfunktionen ned til Cosmos DB. Hvis argumentet indeholder værdier af typen streng, boolesk eller null for avg-aggregeringsfunktionen, returneres et udefineret resultatsæt af Cosmos DB-serveren. Når den er angivet til værdien 0, overføres avg-aggregeringsfunktionen ikke til Cosmos DB-serveren, og connectorhåndtagene udfører selve AVG-sammenlægningshandlingen.
Aktivér SORT-passdown for flere kolonner Angiver, om connectoren tillader, at flere kolonner overføres til Cosmos DB, når den er angivet i ORDER BY-delsætningen i SQL-forespørgslen. Standardværdien er 0, og hvis der er angivet mere end én kolonne i ORDER BY-delsætningen, overfører connectoren ikke kolonnerne som standard og håndterer i stedet selve udførelsen af rækkefølgen. Når den er angivet til værdien 1, forsøger connectoren at overføre flere kolonner til Cosmos DB, når den er angivet i ORDER BY-delsætningen i SQL-forespørgslen. Hvis du vil tillade, at flere kolonner overføres til Cosmos DB, skal du sørge for, at der er angivet sammensatte indeks for kolonnerne i de respektive samlinger. I forbindelse med partitionerede samlinger overføres en SQL-forespørgsel med ORDER BY kun til Cosmos DB, hvis forespørgslen indeholder et filter på den partitionerede nøgle. Hvis der er angivet mere end otte kolonner i ORDER BY-delsætningen, overfører connectoren heller ikke ORDER BY-delsætningen og håndterer i stedet selve ordreudførelsen.

Kendte problemer og begrænsninger

  • For partitionerede Cosmos DB-objektbeholdere overføres en SQL-forespørgsel med en aggregatfunktion til Cosmos DB, hvis forespørgslen også indeholder et filter (WHERE-delsætning) på partitionsnøglen. Hvis den aggregerede forespørgsel ikke indeholder et filter på partitionsnøglen, udføres sammenlægningen af connectoren.

  • Connectoren overfører ikke en aggregeringsfunktion, hvis den kaldes, når TOP eller LIMIT er anvendt. Cosmos DB behandler TOP-handlingen til sidst, når en forespørgsel behandles. I følgende forespørgsel anvendes TOP f.eks. i underforespørgslen, mens aggregeringsfunktionen anvendes oven på resultatsættet:

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

  • Hvis DISTINCT er angivet i en aggregeringsfunktion, overfører connectoren ikke aggregeringsfunktionen til Cosmos DB, hvis der er angivet en DISTINCT-delsætning i en aggregeringsfunktion. Når DISTINCT findes i en aggregeringsfunktion, understøttes det ikke af Cosmos DB SQL-API'en.

  • For aggregeringsfunktionen SUM returnerer Cosmos DB udefineret som resultatsættet, hvis nogle af argumenterne i SUM er streng, boolesk eller null. Men hvis der er null-værdier, overfører connectoren forespørgslen til Cosmos DB på en sådan måde, at den beder datakilden om at erstatte en null-værdi med nul som en del af SUM-beregningen.

  • For aggregeringsfunktionen AVG returnerer Cosmos DB ikke-defineret som resultatsæt, hvis nogle af argumenterne i SUM er streng, boolesk eller null. Connectoren viser en forbindelsesegenskab for at deaktivere overførsel af AVG-aggregeringsfunktionen til Cosmos DB, hvis denne standardfunktionsmåde for Cosmos DB skal tilsidesættes. Når AVG-passdown er deaktiveret, overføres den ikke til Cosmos DB, og connectorhåndtagene, der udfører selve AVG-sammenlægningshandlingen. Du kan få flere oplysninger ved at gå til "Aktivér funktionen AVERAGE-passdown" under Avancerede indstillinger.

  • Azure Cosmos DB-objektbeholdere med en stor partitionsnøgle understøttes i øjeblikket ikke i Forbind or.

  • Adgangsliste til sammenlægning er deaktiveret for følgende syntaks på grund af serverbegrænsninger:

    • Når forespørgslen ikke filtrerer på en partitionsnøgle, eller når partitionsnøglefilteret bruger operatoren OR med et andet prædikat på øverste niveau i WHERE-delsætningen.

    • Når forespørgslen har en eller flere partitionsnøgler, vises den i en IS NOT NULL-delsætning i WHERE-delsætningen.

  • Filteradgangsliste er deaktiveret for følgende syntaks på grund af serverbegrænsninger:

    • Når der refereres til den forespørgsel, der indeholder en eller flere aggregeringskolonner, i WHERE-delsætningen.