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.

Elastiska tabeller ingår i loggkapacitetsanvändningen för Dataverse.

Om du vill veta mer om elastiska tabeller kan du titta på den här videon.

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 problem med skalbarhet, fördröjning eller 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 sammanställa IoT-signaler, förutsäga underhållsbehov och proaktivt schemalägga servicetekniker.

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 antalet kuponger som kommer att krävas blir över 100 miljoner per flash sale-kampanj. 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.

Elastic-tabeller skalas automatiskt för att hantera det här scenariot med hög genomströmning.

Till exempel kan i scenariot ovan en elastisk tabell med namnet Kupong med miljontals poster associeras med Dataverse-standardtabeller som Kontakt (kundinformation) och Erbjudande (en anpassad standardtabell). Eftersom de elastiska tabellerna är isolerade från standardtabellerna kommer prestandan för den övergripande marknadsföringsapplikationen inte att påverkas negativt. Dessutom gör time-to-live-funktionen med elastisk tabell (kupong i detta scenario) att data kan tas bort automatiskt efter fasta perioder och säkerställa att loggkapaciteten optimeras.

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:

  • Din applikation kräver stark konsistens.
  • 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

I takt med att dina affärsdata växer ger elastiska tabeller obegränsad automatisk skalbarhet baserat på programmets arbetsbelastning, både för storlek och dataflöde, till exempel antalet poster som skapas, uppdateras eller tas bort inom en viss tidsram.

Om ditt affärsscenario kräver en mycket stor volym dataskrivningar kan apputvecklare använda Dataverse-API:er för flera begäranden, till exempel CreateMultiple, UpdateMultiple och DeleteMultiple, för att uppnå högre genomströmning inom Dataverses begränsningsgränser. Mer information: Utvecklarguide: Meddelanden om massåtgärd och optimera prestanda för massåtgärder

Data tas automatiskt bort

TTL-policyer (Time to live) säkerställer att du alltid arbetar med den mest aktuella och korrekta informationen, samtidigt som du optimerar resursanvändningen 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

Även om elastiska tabeller är utmärkta för att hantera stora mängder begäranden i stor skala, medför fördelarna vissa kompromisser som bör beaktas:

  • Elastiska tabeller stöder inte transaktioner med flera poster. Det innebär att flera skrivåtgärder som sker vid körningen av en enskild begäran inte är transaktionella i förhållande till varandra. Till exempel, om du har registrerat ett synkront pluginsteg i steget PostOperation för Create message i en elastisk tabell, kommer eventuella fel i ditt plugin inte att rulla tillbaka 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. Utanför sessionskontexten kanske du inte ser ändringar i 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. Anta en återförsäljare med två elastiska tabeller: "customer" och "address". 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 funktionen elastiska tabeller

  • Skapa-, hämta-, uppdatera- och ta bort-åtgärder (CRUD), inklusive flera API-åtgärder (för hög genomströmning), massradering och begäranden från insticksprogram.
  • Relationer:
    • En-till-många
    • 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 attributet filtyp

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-anslutning för Power BI
  • Många-till-många-relationer (N:N) till standardtabeller
  • Alternativ nyckel
  • Identifiering av dubbletter
  • Beräknade och samlade kolumner
  • Valutakolumner
  • Jämförelse av kolumner i frågor
  • Delning av tabeller
  • Kompositindex
  • Kaskadåtgärder: Ta bort, Ändra om, Tilldela, Dela, Ta bort delning
  • Ordning på uppslagskolumner
  • Sammanlagda frågor:
    • Unikt värde för attribute1 vid sortering efter värdet för attribute2
    • Sidnumrering när du har flera distinkta
    • Avgränsade med flera ordna efter
    • Sortera efter och gruppera efter tillsammans
    • Gruppera efter länkentitet (vänster ytterkoppling)
    • Distinkt vid användarägda tabeller
  • Tabellkopplingar
  • Åtkomstteam
  • Köer
  • Bifogad fil
  • Import- och exportfunktioner för tabelldata.

Kolumndatatyper som för närvarande inte är tillgängliga för elastiska tabeller:

  • Valuta
  • Formel
  • Heltalsformat annat än Ingen (Varaktighet, Språkkod och Tidszon)
  • Sök utifrån kundalternativet

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 den vänstra navigeringsrutan. 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>Konfigurera avancerade egenskaper i kommandofältet.
  3. I höger egenskapsfönster anger du ett Visningsnamn och ett Pluralnamn.
  4. Expandera Avancerade alternativ och välj sedan Elastisk som tabellens typ. Välj Elastic som tabelltyp
  5. Markera de egenskaper du vill använda och välj Spara.

Kolumnen för tid att leva 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 livslängd (TTL) används på en rad tas raden bort från den elastiska tabellen när TTL-tiden löper ut. Om den synkroniseras till en datasjö med hjälp av Azure Synapse Link för 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.

Elastiska tabeller med hög volym och hantering av begränsningar för Dataverse-API:et

Använd meddelanden för massoperationer. Detta gör att du kan uppnå tio gånger högre genomströmning inom samma begränsningar för Dataverse-API:ets anropsbegränsning. Utvecklare kan referera till fler länkar i avsnittet nedan.

För utvecklare

Elastiska tabeller har andra beteenden och funktioner än standardtabeller när utvecklare använder dem via Dataverse-API:er. Följande artiklar för utvecklare beskriver dessa skillnader:

Se även

Skapa och redigera tabeller med Power Apps