Dela via


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

  • Import
  • 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.

    Screenshot showing Select Azure Cosmos DB v2 selection.

  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 Data Anslut ivity mode (Data Anslut ivity mode) 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:

    Screenshot of the connection dialog box showing the Cosmos Endpoint entry and Data connectivity mode set to 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.

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

  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.

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

    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.

    Screenshot showing the unique Partition Keys in Power Query editor.

    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.

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

    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.

    Screenshot showing the steps to apply the parameterized filter.

    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.

    Screenshot showing the steps to bind the parameter.

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

    Screenshot of the slicer.

    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.

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

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 Anslut eller.

  • 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.

  • 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.