Skapa och redigera elastiska tabeller

En elastisk tabell är en tabell som hanteras av Microsoft Dataverse. Elastiska tabeller har samma välkända användarupplevelse och API som standardtabeller. De delar många aspekter och alternativ med standardtabeller, men de har sina egna unika funktioner som drivs av Azure Cosmos DB.

Precis som med standardtabeller ingår tabellerna i användningen av Dataverse-databaskapacitet.

Titta på den här videon för att lära dig mer om elastiska tabeller.

När bör du överväga Dataverse elastiska tabeller?

Elastiska tabeller är utformade för att hantera stora mängder data i realtid. Med elastiska tabeller kan du importera, lagra och analysera stora mängder data utan skalbarhet, problem relaterade till prestanda.

Elastiska tabeller har unika funktioner för flexibel schema, horisontell skalning och automatisk borttagning av data efter en tidsperiod.

Elastiska tabeller skalas automatiskt till tiotals miljoner rader varje timme. Bakgrundsprocesser kan sortera IoT-processen, uppfylla underhållskrav och proaktivt schemalägga tekniker.

Tänk dig ett scenario där Contoso är återförsäljare med miljoner befintliga kunder. Contoso har en stor databas med kunder och vill öka försäljningen samtidigt som kunderna bevaras. Baserat på tidigare kundhistorik vill de ha ett 24 timmars utförsäljningsevenemang med olika reklamevenemang som riktar sig till kunder och produkter. De har uppskattat att det antal reklamkampanjer som krävs kommer att vara 100 miljoner plus per utförsäljningskampanj. Marknadsföring planerar att köra flera 24-timmarskampanjer som riktar sig till olika kundsegment.

Kravet för Contoso marknadsföringsapp är att den ska kunna samla in upp till 100 miljoner eller fler kupongdetaljer inom några timmar, läsa miljontals kuponger per timme och skicka kuponger till kunder.

Elastiska tabeller skalas automatiskt för detta scenario med hög genomflöde.

Till exempel, i scenariot ovan, namnges en elastisk tabell Kupong med miljoner poster associeras med Dataverse standardtabeller som Kontakt (kundinformation) och Erbjudande (en anpassad standardtabell). Eftersom tabellerna är isolerade från standardtabellerna påverkas inte prestanda för det övergripande marknadsföringsprogrammet negativt. Dessutom tid till publicering-förmåga med elastisk tabell (Kupong i detta scenario) tillåter borttagning av data automatiskt efter bestämda perioder och säkerställer optimering av lagringskapacitet.

Använd elastiska tabeller när:

  • Dina data kan vara ostrukturerade eller semistrukturerade, eller om datamodellen ständigt kan ändras.
  • Du behöver automatisk horisontell skalning.
  • Du måste hantera en stor mängd läs- och skrivförfrågningar.

Använd standardtabeller när:

  • För ditt program krävs en enhetlig konsekvens.
  • Ditt program kräver relationsmodellering och behöver transaktionskapacitet över tabeller och under plugin-körningsfaser.
  • Programmet kräver komplexa kopplingar.

Tabellens urval ska baseras på programmets specifika behov. En kombination av båda typerna av tabeller kan vara lämpliga.

Horisontell skalning och prestanda

Allt eftersom dina affärsdata växer ger tabellerna obegränsat med automatisk skalbarhet utifrån din programlast, både för lagringsstorlek och genomflöde, till exempel antalet poster som skapas, uppdateras eller tas bort inom en viss tidsram.

Om det krävs mycket stora mängder dataskrivningar i ditt affärsscenario kan apptillverkare använda Dataverse flera förfrågningar API:er, t.ex. CreateMultiple, UpdateMultiple och DeleteMultiple till exempel, och för att få mer genomflöde inom Dataverse begränsningsgränsen. Mer information: Utvecklarguide: Meddelanden om massåtgärd och optimera prestanda för massåtgärder

Data tas automatiskt bort

Tid till publicering (TTL) garanterar att du alltid arbetar med den allra senaste och korrekta informationen, samtidigt som du optimerar resurserna och minskar riskerna. TTL-livevärdet anges i sekunder på en post och det anges som ett delta från den tid en post senast ändrades.

Flexibelt schema med JSON-kolumner

Med elastiska tabeller kan du lagra och fråga på data med olika strukturer, utan att det krävs fördefinierade scheman eller migreringar. Du behöver inte skriva anpassad kod för att mappa importerade data till ett fast schema. Mer information: Utvecklarguide: Fråga efter JSON-kolumner i elastiska tabeller Elastiska tabeller gör att du kan lagra och fråga data med olika strukturer, utan behov av fördefinierade scheman eller migrering. Du behöver inte skriva anpassad kod för att mappa importerade data till ett fast schema. Mer information: Utvecklarguide: Fråga efter JSON-kolumner i elastiska tabeller

Att tänka på när du använder elastiska tabeller

Elastiska tabeller är bra för att hantera stora mängder förfrågningar i större skala, men fördelarna med detta är några få fördelar, som du bör komma ihåg:

  • Elastiska tabeller stöder inte transaktioner med flera poster. Det innebär att flera skrivåtgärder som sker som en del av en körning av en enskild förfrågan inte är transaktioner mellan dem. Till exempel, om du har ett synkront plugin-programsteg registrerat på PostOperation stadiet för Create message i en elastiskt tabell, kommer eventuella fel i ditt plugin-program inte att återställa den skapade posten i Dataverse. Valideringar i förplugin-program fungerar fortfarande som förväntat eftersom de körs före huvudstadiet.
  • Elastiska tabeller ger endast bättre enhetlighet i en logisk session. Kontexten för en extern session kanske inte ändras till en rad direkt. Mer information: Utvecklarhandbok: Konsekvensnivå
  • Elastiska tabeller stöder inte filter i relaterade tabeller när du skapar vyer, avancerad sökning eller någon fråga i allmänhet med hjälp av API. Om du ofta behöver filtrera på relaterade tabellkolumner rekommenderar vi att du denormaliserar kolumner från relaterade tabeller, som behöver filtreras i själva huvudtabellen. Se till att du är återförsäljare med två tabeller: kund och adress. En kund har många adresser. Du vill returnera frågeresultat för alla kunder från kundtabellen vars ortvärde i adresstabellen är New York. I det här exemplet vill du använda ett filter i ortkolumnen i den relaterade adresstabellen när du söker i kundtabellen. Detta stöds inte för elastiska tabeller. Ett sätt att göra detta arbete är att avnormalisera stadkolumnen i tabellen Kund så att alla kunders stadvärden finns i själva kundtabellen.

Stöd för elastiska tabeller

  • Skapa, hämta, uppdatera, ta bort (CRUD)-åtgärder inklusive API-flera åtgärder (för högt genomflöde), massborttagning och förfrågningar från plugin-program.
  • Relationer:
    • En till flera
    • Många-till-en när N-tabellen är en standardtabell
  • Registrera ägarskap, ändra spårning, granskning, mobile offline och Dataverse sökning.
  • Filkolumn med filtypattribut

Stöd för säkerhetsfunktioner

Elastiska tabeller följer Dataverse säkerhetsmodellen.

När du skapar en elastisk tabell kan du ange:

  • Antingen användar- eller organisationsägda
  • Säkerhet på fältnivå

Funktioner som för närvarande inte stöds med elastiska tabeller

Tabellfunktioner som för närvarande inte stöds med elastiska tabeller:

  • Affärsregler
  • Diagram
  • Affärsprocessflöden
  • En Dataverse anslutningsprogram för Power BI
  • Många till många-relationer (N:N) till standardtabeller
  • Alternativ nyckel
  • Dubblettidentifiering
  • Beräknade och samlade kolumner
  • Valutakolumner
  • Kolumnjämförelse i frågor
  • Tabelldelning
  • Sammansatta index
  • Kaskadåtgärder: Ta bort, Ändra om, Tilldela, Dela, Ta bort delning
  • Ordning på uppslagskolumner
  • Sammanlagda frågor:
    • Distinkt värde för attribute1 medan orderby för attribute2 värde
    • Sidnumrering när du har flera distinkta
    • Avgränsade med flera ordna efter
    • Ordna efter och gruppera efter tillsammans
    • Gruppera efter länkentitet (vänster ytterkoppling)
    • Distinkt vid användarägda tabeller 
  • Tabellanslutningar
  • Åtkomstteam
  • Köer
  • Bifogad fil

Kolumndatatyper är för närvarande inte tillgängliga med elastiska tabellerna:

  • Valuta
  • Formel
  • Format för heltal inget annat än Inget (Varaktighet, Språkkod och Tidszon)
  • Slå upp baserat på alternativet Kund

Skapa en elastisk tabell

Du skapar en elastiskt tabell precis som alla andra nya tabeller i Dataverse.

  1. Logga in på Power Apps och välj Tabeller i det vänstra navigeringsfönstret. Om objektet inte finns i sidopanelsfönstret väljer du ... Mer och markerar sedan det objekt du vill använda.
  2. Välj Ny tabell > Ny tabell i kommandofältet.
  3. Expandera i den högra egenskapsrutan Avancerade alternativ.
  4. Välj Elastisk som tabellen Typ. Välj Elastisk som tabellen Typ
  5. Markera de egenskaper du vill använda och välj Spara.

Kolumnen tid till publicering skapas automatiskt för en elastisk tabell. Du kan lägga till tidsperiodvärdet i sekunder efter behov. Data tas bort automatiskt efter den angivna tidsperioden.

Mer information om tabeller: Avancerade alternativ

Kända problem

  • När tid till publicering (TTL) används på en rad tas raden bort från tabellen när TTL har förfallit. Om den synkroniseras med en datasjö med Azure Synapse Link for Dataverse innan TTL upphör att gälla tas den inte bort från datasjön.
  • Tidpunktsåterställning återställer inte "uppdaterade" poster eftersom uppdateringar inte säkerhetskopieras. Endast skapade och raderade poster återställs.
  • Om en specifik kolumn i en elastisk tabell tas bort tas inte kolumnvärdet bort från tabellraderna om det har data. Innan du tar bort en specifik kolumn, radera data från alla rader för kolumnen.

Tabellerna med hög volym och hantering av Dataverse API-begränsningsgränsen

Använd meddelanden om massåtgärd. Detta gör att du kan uppnå tio gånger genomflödet med samma Dataverse API-begränsning. Utvecklare kan referera till fler länkar i avsnittet nedan.

För utvecklare

Snabeltabeller har olika funktionssätt och funktioner än standardtabeller när utvecklare använder dem med Dataverse API:er. Följande artiklar för utvecklare beskriver dessa skillnader:

Se även

Skapa och redigera tabeller med Power Apps