Azure Cosmos DB v2 (Beta)
Sammendrag
Element | Bekrivelse |
---|---|
Utgivelsestilstand | Beta |
Produkter | Power BI (semantiske modeller) Power BI (dataflyter) Stoff (Dataflyt gen2) |
Godkjenningstyper som støttes | Feednøkkel |
Forutsetning
Funksjoner som støttes
- Importer
- DirectQuery (semantiske Modeller for Power BI)
- Avanserte alternativer
- Antall nye forsøk
- Aktiver «GJENNOMSNITT»-funksjon Passdown
- Aktiver "SORTER" Passdown for flere kolonner
Koble til Azure Cosmos DB
Slik kobler du til Azure Cosmos DB-data:
Start Power BI Desktop.
Velg Hent data på Hjem-fanen.
Skriv inn Cosmos DB v2 i søkeboksen.
Velg Azure Cosmos DB v2 (Beta), og velg deretter Koble til.
Skriv inn URI-en for Azure Cosmos DB-kontoen du vil bruke, på azure Cosmos DB v2-tilkoblingssiden for Cosmos Endpoint. For datatilkoblingsmodus velger du en modus som passer for brukstilfellet, og følger disse generelle retningslinjene:
Velg Importer for mindre datasett. Når du bruker importmodus, fungerer Power BI med Cosmos DB for å importere innholdet i hele datasettet for bruk i visualiseringene.
DirectQuery-modus aktiverer pushdown for spørring til Cosmos DB-beholderen for kjøring og forbedrer ytelsen til koblingen. For partisjonerte Cosmos DB-beholdere sendes en SQL-spørring med en mengdefunksjon ned til Cosmos DB hvis spørringen også inneholder et filter (WHERE-setningsdelen) på partisjonsnøkkelen. Hvis for eksempel partisjonsnøkkelen er definert som «Produkt», kan en SQL-spørring som kan sendes ned og kjøres på Cosmos DB-server være:
SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'
Merk
Bruk Azure Synapse Link for Azure Cosmos DB hvis du vil utføre mengdefunksjoner på tvers av partisjonering mot Cosmos DB-beholderen.
Mer informasjon:
Angi kontonøkkelen ved ledeteksten for å konfigurere datakildegodkjenning. Velg deretter Koble til. Datakatalogen, databasene og tabellene vises i dialogboksen Navigator .
Merk av for datasettet du vil bruke, i ruten Visningsalternativer .
Den mest optimale måten å angi partisjonsnøkkelfilteret på (slik at mengdefunksjonene kan sendes ned til Cosmos DB) er å bruke dynamiske M-parametere. Hvis du vil bruke dynamiske M-parametere, oppretter du et datasett med unike partisjonsnøkkelverdier, oppretter en parameter, legger den til som et filter på hoveddatasettet, binder det til det unike partisjonsnøkkeldatasettet og bruker det som slicer for hoveddatasettet. Bruk følgende fremgangsmåte for å aktivere dynamiske M-parametere for partisjonsnøkkelfiltrering.
a. Opprette et datasett med unike partisjonsnøkkelverdier:
Velg Transformer data i stedet for Last inn i Navigator for å hente frem redigeringsprogrammet for Power Query. Høyreklikk på datasettet for spørringer, og velg deretter Dupliser for å opprette et nytt datasett.
Gi nytt navn til den nye partisjonsnøkkelmodellen, og høyreklikk på Cosmos DB-partisjonsnøkkelkolonnen. I dette eksemplet er Produktet cosmos DB-partisjonsnøkkelkolonnen. Velg Fjern andre kolonner, og velg deretter Fjern duplikater.
b. Opprette en parameter for dynamisk filtrering:
Velg Behandle parametere ny parameter> i redigeringsprogrammet for Power Query. Gi nytt navn til den nye parameteren for å gjenspeile filterparameteren og angi en gyldig verdi som gjeldende verdi.
c. Bruke parameterisert filter på hoveddatasettet:
Velg rullegardinikonet for Partisjonsnøkkel-kolonnen>, og velg deretter Tekstfiltre er lik. Endre filtertypen fra Tekst til Parameter. Velg deretter parameteren som ble opprettet i trinn b. Velg Lukk & Bruk øverst til venstre i redigeringsprogrammet for Power Query.
d. Opprett slicer for partisjonsnøkkelverdier med parameterbinding:
Velg Modell-fanen i Power BI. Velg deretter Partisjonsnøkkel-feltet. Velg Avansert>bind til parameter i Egenskaper-ruten. Velg parameteren som ble opprettet i trinn b.
Velg Rapport-fanen, og legg til en slicer med den unike partisjonsnøkkelen.
e. Legg til visualiseringer og bruk partisjonsnøkkelfilter fra sliceren:
Siden den valgte partisjonsnøkkelverdien på sliceren er bundet til parameteren (som gjort i trinn d) og det parameteriserte filteret brukes på hoveddatasettet (som gjort i trinn c), brukes den valgte partisjonsnøkkelverdien som et filter på hoveddatasettet, og spørringen med partisjonsnøkkelfilteret sendes ned til Cosmos DB i alle visualiseringer.
Avanserte alternativer
Power Query inneholder et sett med avanserte alternativer som du kan legge til i spørringen om nødvendig.
Tabellen nedenfor viser alle de avanserte alternativene du kan angi i Power Query.
Avansert alternativ | Bekrivelse |
---|---|
Antall nye forsøk | Hvor mange ganger du kan prøve på nytt hvis det finnes HTTP-returkoder 408 - Request Timeout for , 412 - Precondition Failed eller 429 - Too Many Requests . Standard antall nye forsøk er 5. |
Aktiver GJENNOMSNITT-funksjonen Passdown | Angir om koblingen tillater pass-down av AVG-mengdefunksjonen til Cosmos DB. Standardverdien er 1, og koblingen forsøker å sende ned AVG-mengdefunksjonen ned til Cosmos DB, som standard. Hvis argumentet inneholder streng-, boolske verdier eller nullverdier for AVG-mengdefunksjonen, returneres et udefinert resultatsett av Cosmos DB-serveren. Når den er satt til verdien 0, sendes ikke AVG-mengdefunksjonen ned til Cosmos DB-serveren, og koblingshåndtakene som utfører SELVE AVG-aggregasjonsoperasjonen. |
Aktiver SORTER nedlastning for flere kolonner | Angir om koblingen tillater at flere kolonner sendes ned til Cosmos DB når den er angitt i ORDER BY-setningsdelen i SQL-spørringen. Standardverdien er 0, og hvis mer enn én kolonne er angitt i ORDER BY-setningsdelen, sendes ikke koblingen nedover kolonnene som standard, og håndterer i stedet å utføre rekkefølgen av seg selv. Når den er satt til verdien 1, forsøker koblingen å sende flere kolonner til Cosmos DB når den er angitt i ORDER BY-setningsdelen i SQL-spørringen. Hvis du vil tillate at flere kolonner sendes ned til Cosmos DB, må du passe på at sammensatte indekser er angitt på kolonnene i de respektive samlingene. For partisjonerte samlinger sendes en SQL-spørring med ORDER BY ned til Cosmos DB bare hvis spørringen inneholder et filter på den partisjonerte nøkkelen. Hvis det er mer enn åtte kolonner angitt i ORDER BY-setningsdelen, sendes ikke koblingen ned ORDER BY-setningsdelen og håndterer i stedet selve bestillingskjøringen. |
Kjente problemer og begrensninger
For partisjonerte Cosmos DB-beholdere sendes en SQL-spørring med en mengdefunksjon ned til Cosmos DB hvis spørringen også inneholder et filter (WHERE-setningsdelen) på partisjonsnøkkelen. Hvis aggregeringsspørringen ikke inneholder et filter på partisjonsnøkkelen, utføres aggregasjonen av koblingen.
Koblingen sender ikke ned en mengdefunksjon hvis den er påkalt etter at TOP eller LIMIT er brukt. Cosmos DB behandler TOP-operasjonen på slutten når du behandler en spørring. I følgende spørring brukes for eksempel TOP i delspørringen, mens mengdefunksjonen brukes oppå resultatsettet:
SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E
Hvis DISTINCT er angitt i en mengdefunksjon, sender ikke koblingen mengdefunksjonen ned til Cosmos DB hvis en DISTINCT-setningsdel er angitt i en mengdefunksjon. Når den finnes i en mengdefunksjon, støttes ikke DISTINCT av Cosmos DB SQL API.
For SUM-mengdefunksjonen returnerer Cosmos DB udefinert som resultatsett hvis noen av argumentene i SUM er streng, boolsk eller null. Hvis det imidlertid finnes nullverdier, sender koblingen spørringen til Cosmos DB på en slik måte at den ber datakilden om å erstatte en nullverdi med null som en del av SUMMER-beregningen.
Cosmos DB returnerer udefinert som resultatsett hvis noen av argumentene i SUM er streng, boolsk eller null. Koblingen viser en tilkoblingsegenskap for å deaktivere overføring av AVG-mengdefunksjonen til Cosmos DB i tilfelle denne standard Cosmos DB-virkemåten må overstyres. Når AVG-passdown er deaktivert, sendes den ikke ned til Cosmos DB, og koblingshåndtakene som utfører selve AVG-aggregasjonen. Hvis du vil ha mer informasjon, kan du gå til Aktiver GJENNOMSNITT-funksjonen Passdown i Avanserte alternativer.
Azure Cosmos DB-beholdere med stor partisjonsnøkkel støttes for øyeblikket ikke i Connector.
Aggregasjonspassdown er deaktivert for følgende syntaks på grunn av serverbegrensninger:
Når spørringen ikke filtrerer på en partisjonsnøkkel eller når partisjonsnøkkelfilteret bruker OR-operatoren med et annet predikat på øverste nivå i WHERE-setningsdelen.
Når spørringen har én eller flere partisjonsnøkler vises i en IS NOT NULL-setningsdel i WHERE-setningsdelen.
V2-koblingen støtter ikke komplekse datatyper som matriser, objekter og hierarkiske strukturer. Vi anbefaler Fabric Mirroring for Azure Cosmos DB-funksjonen for disse scenariene.
V2-koblingen bruker sampling av de første 1000 dokumentene til å komme opp med det utsatte skjemaet. Det anbefales ikke for skjemautviklingsscenarioer når bare deler av dokumentene oppdateres. Som et eksempel kan det hende at en nylig lagt til egenskap i ett dokument i en beholder med thousants av dokumenter ikke er inlcuded i det utsatte skjemaet. Vi anbefaler Fabric Mirroring for Azure Cosmos DB-funksjonen for disse scenariene.
V2-koblingen støtter for øyeblikket ikke-strengverdier i objektegenskaper.
Filternedlasting er deaktivert for følgende syntaks på grunn av serverbegrensninger:
- Når spørringen som inneholder én eller flere aggregerte kolonner refereres til i WHERE-setningsdelen.