Azure Cosmos DB v2 (Beta)

Sammanfattning

Objekt beskrivning
Versionstillstånd Beta
Produkter Power BI (semantiska modeller)
Power BI (dataflöden)
Infrastrukturresurser (Dataflöde Gen2)
Autentiseringstyper som stöds Feednyckel

Förutsättningar

Funktioner som stöds

  • Importera
  • DirectQuery (Power BI-semantiska modeller)
  • Avancerade alternativ
    • Antal återförsök
    • Aktivera funktionen "AVERAGE" Passdown
    • Aktivera "SORT"-passdown för flera kolumner

Ansluta till Azure Cosmos DB

Så här ansluter du till Azure Cosmos DB-data:

  1. Starta Power BI Desktop.

  2. På fliken Start väljer du Hämta data.

  3. I sökrutan anger du Cosmos DB v2.

  4. Välj Azure Cosmos DB v2 (Beta) och välj sedan Anslut.

    Skärmbild som visar välj Azure Cosmos DB v2.

  5. På sidan Azure Cosmos DB v2-anslutning för Cosmos-slutpunkten anger du URI:n för det Azure Cosmos DB-konto som du vill använda. För dataanslutningsläge väljer du ett läge som är lämpligt för ditt användningsfall enligt dessa allmänna riktlinjer:

    • För mindre datamängder väljer du Importera. När du använder importläge fungerar Power BI med Cosmos DB för att importera innehållet i hela datauppsättningen för användning i dina visualiseringar.

    • DirectQuery-läget aktiverar push-nedtryckning av frågor till Cosmos DB-containern för körning och förbättrar anslutningsappens prestanda. För partitionerade Cosmos DB-containrar skickas en SQL-fråga med en mängdfunktion till Cosmos DB om frågan också innehåller ett filter (WHERE-sats) på partitionsnyckeln. Om partitionsnyckeln till exempel har definierats som "Produkt" kan en SQL-fråga som kan skickas och köras på Cosmos DB-servern vara:

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

    Kommentar

    Använd Azure Synapse Link för Azure Cosmos DB om du vill köra korspartitionerade mängdfunktioner mot Cosmos DB-containern.

    Mer information:

    Skärmbild av anslutningsdialogrutan som visar cosmos-slutpunktsinmatningen och dataanslutningsläget inställt på DirectQuery.

  6. Ange kontonyckeln i uppmaningen att konfigurera autentisering av datakälla. Välj sedan Anslut. Datakatalogen, databaserna och tabellerna visas i dialogrutan Navigatör .

  7. I fönstret Visningsalternativ markerar du kryssrutan för den datauppsättning som du vill använda.

    Skärmbild av navigatören som betonar de data som du har valt.

  8. Det mest optimala sättet att ange filtret Partitionsnyckel (så att aggregeringsfunktionerna kan push-överföras till Cosmos DB) är att använda dynamiska M-parametrar. Om du vill använda dynamiska M-parametrar skapar du en datauppsättning med unika partitionsnyckelvärden, skapar en parameter, lägger till den som ett filter på huvuddatauppsättningen, binder den till den unika datauppsättningen partitionsnyckel och använder den som utsnitt för huvuddatauppsättningen. Använd följande steg för att aktivera dynamiska M-parametrar för partitionsnyckelfiltrering.

    a. Skapa en datauppsättning med unika partitionsnyckelvärden:

    I Navigatör väljer du Transformera data i stället för Läs in för att hämta Power Query-redigeraren. Högerklicka på datauppsättningen för frågor och välj sedan Duplicera för att skapa en ny datauppsättning.

    Skärmbild som visar hur du väljer dubblett från din befintliga fråga i Power Query-redigeraren.

    Byt namn på den nya partitionsnyckelmodellen och högerklicka sedan på cosmos DB-partitionsnyckelkolumnen. I det här exemplet är Product partitionsnyckelkolumnen för Cosmos DB. Välj Ta bort andra kolumner och välj sedan Ta bort dubbletter.

    Skärmbild som visar de unika partitionsnycklarna i Power Query-redigeraren.

    b. Skapa en parameter för dynamisk filtrering:

    I Power Query-redigeraren väljer du Hantera parametrar>Ny parameter. Byt namn på den nya parametern så att den återspeglar filterparametern och anger ett giltigt värde som Aktuellt värde.

    Skärmbild som visar hur du skapar en parameter i Power Query-redigeraren.

    c. Tillämpa parameteriserat filter på huvuddatauppsättningen:

    Välj listruteikonen i kolumnen Partitionsnyckel och välj sedan Textfilter>är lika med. Ändra filtertypen från Text till Parameter. Välj sedan den parameter som skapades i steg b. Välj Stäng och använd i det övre vänstra hörnet i Power Query-redigeraren.

    Skärmbild som visar stegen för att tillämpa det parametriserade filtret.

    d. Skapa utsnitt för partitionsnyckelvärden med parameterbindning:

    I Power BI väljer du fliken Modell . Välj sedan fältet Partitionsnyckel. I fönstret Egenskaper väljer du Avancerad>bindning till parameter. Välj den parameter som skapades i steg b.

    Skärmbild som visar stegen för att binda parametern.

    Välj fliken Rapport och lägg till ett utsnitt med den unika partitionsnyckeln.

    Skärmbild av utsnittet.

    e. Lägg till visualiseringar och använd partitionsnyckelfilter från utsnittet:

    Eftersom det valda partitionsnyckelvärdet på utsnittet är bundet till parametern (som i steg d) och det parametriserade filtret tillämpas på huvuddatauppsättningen (som i steg c), tillämpas det valda partitionsnyckelvärdet som ett filter på huvuddatauppsättningen och frågan med partitionsnyckelfiltret skickas ned till Cosmos DB i alla visualiseringar.

    Skärmbild av visualiseringen efter att partitionsnyckelfiltret har tillämpats.

Avancerade alternativ

Power Query innehåller en uppsättning avancerade alternativ som du kan lägga till i din fråga om det behövs.

I följande tabell visas alla avancerade alternativ som du kan ange i Power Query.

Avancerat alternativ beskrivning
Antal återförsök Hur många gånger du försöker igen om det finns HTTP-returkoder för 408 - Request Timeout, 412 - Precondition Failedeller 429 - Too Many Requests. Standardantalet för återförsök är 5.
Aktivera funktionen AVERAGE Passdown Anger om anslutningsappen tillåter att avg-mängdfunktionen skickas till Cosmos DB. Standardvärdet är 1 och anslutningsappen försöker som standard skicka ned avg-mängdfunktionen till Cosmos DB. Om argumentet innehåller sträng-, booleska eller null-värden för avg-mängdfunktionen returneras en odefinierad resultatuppsättning av Cosmos DB-servern. När värdet är 0 skickas inte avg-aggregeringsfunktionen till Cosmos DB-servern, och anslutningstjänsten hanterar själva AVG-aggregeringsåtgärden.
Aktivera SORT-passdown för flera kolumner Anger om anslutningsappen tillåter att flera kolumner skickas ned till Cosmos DB när de anges i ORDER BY-satsen i SQL-frågan. Standardvärdet är 0 och om mer än en kolumn anges i ORDER BY-satsen skickar anslutningsappen inte kolumnerna som standard och hanterar i stället själva beställningen. När det är inställt på värdet 1 försöker anslutningsappen skicka flera kolumner till Cosmos DB när de anges i ORDER BY-satsen i SQL-frågan. Om du vill tillåta att flera kolumner skickas ned till Cosmos DB ser du till att ha sammansatta index inställda på kolumnerna i respektive samlingar. För partitionerade samlingar skickas en SQL-fråga med ORDER BY endast till Cosmos DB om frågan innehåller ett filter på den partitionerade nyckeln. Om det finns fler än åtta kolumner som anges i ORDER BY-satsen skickar anslutningsappen inte ORDER BY-satsen och hanterar i stället själva beställningskörningen.

Kända problem och begränsningar

  • För partitionerade Cosmos DB-containrar skickas en SQL-fråga med en mängdfunktion till Cosmos DB om frågan också innehåller ett filter (WHERE-sats) på partitionsnyckeln. Om aggregeringsfrågan inte innehåller något filter på partitionsnyckeln utförs aggregeringen av anslutningsappen.

  • Anslutningsappen skickar inte en aggregeringsfunktion om den anropas efter att TOP eller LIMIT har tillämpats. Cosmos DB bearbetar TOP-åtgärden i slutet när en fråga bearbetas. I följande fråga tillämpas till exempel TOP i underfrågan, medan aggregeringsfunktionen tillämpas ovanpå den resultatuppsättningen:

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

  • Om DISTINCT tillhandahålls i en aggregeringsfunktion skickar anslutningsappen inte den aggregerade funktionen till Cosmos DB om en DISTINCT-sats tillhandahålls i en aggregeringsfunktion. När det finns i en aggregeringsfunktion stöds inte DISTINCT av Cosmos DB SQL API.

  • För sum-mängdfunktionen returnerar Cosmos DB odefinierat som resultatuppsättning om något av argumenten i SUM är sträng, booleskt eller null. Men om det finns null-värden skickar anslutningsappen frågan till Cosmos DB på ett sådant sätt att den ber datakällan att ersätta ett null-värde med noll som en del av SUM-beräkningen.

  • För funktionen AVG aggregate returnerar Cosmos DB odefinierad som resultatuppsättning om något av argumenten i SUM är sträng, booleskt eller null. Anslutningsappen exponerar en anslutningsegenskap för att inaktivera överföring av avg-mängdfunktionen till Cosmos DB om det här standardbeteendet för Cosmos DB måste åsidosättas. När AVG-passdown inaktiveras skickas den inte till Cosmos DB och anslutningsappen hanterar själva AVG-aggregeringsåtgärden. Mer information finns i "Aktivera genomsnittlig funktionspassdown" i Avancerade alternativ.

  • Azure Cosmos DB-containrar med stor partitionsnyckel stöds för närvarande inte i anslutningsappen.

  • Aggregeringspassdown har inaktiverats för följande syntax på grund av serverbegränsningar:

    • När frågan inte filtrerar på en partitionsnyckel eller när partitionsnyckelfiltret använder OR-operatorn med ett annat predikat på den översta nivån i WHERE-satsen.

    • När frågan har en eller flera partitionsnycklar visas i en IS NOT NULL-sats i WHERE-satsen.

  • V2-anslutningsappen stöder inte komplexa datatyper som matriser, objekt och hierarkiska strukturer. Vi rekommenderar funktionen Infrastrukturspegling för Azure Cosmos DB för dessa scenarier.

  • V2-anslutningsappen använder sampling av de första 1 000 dokumenten för att komma fram till det härledda schemat. Det rekommenderas inte för scenarier för schemautveckling när endast en del av dokumenten uppdateras. Ett exempel är att en nyligen tillagda egenskap i ett dokument i en container med thousants av dokument kanske inte är inlcuded i det härledda schemat. Vi rekommenderar funktionen Infrastrukturspegling för Azure Cosmos DB för dessa scenarier.

  • V2-anslutningsappen stöder för närvarande inte icke-strängvärden i objektegenskaper.

  • Filterpassdown har inaktiverats för följande syntax på grund av serverbegränsningar:

    • När frågan som innehåller en eller flera aggregeringskolumner refereras till i WHERE-satsen.