Oprette og redigere elastiske tabeller
En elastisk tabel er en tabel, der administreres af Microsoft Dataverse. Elastiske tabeller har samme velkendte brugeroplevelse og API som standardtabeller. De deler mange aspekter og muligheder med standardtabellerne, men de leveres med deres helt egne funktioner, der drives af Azure Cosmos DB.
Som med standardtabeller inkluderes elastiske tabeller i Dataverse-databasens kapacitet.
Se denne video for at lære mere om fleksible tabeller.
Hvornår du skal overveje Dataverse elastiske tabeller?
Elastiske tabeller er udviklet til at håndtere store mængder data i realtid. Med elastiske tabeller kan du importere, gemme og analysere store mængder data uden problemer med skalerbarhed, ventetid eller ydeevne.
Fleksible tabeller har særlige funktioner til fleksibelt skema, vandret skalering og automatisk fjernelse af data efter en tidsperiode.
Elastiske tabeller skaleres automatisk til indtag af millioner af rækker hver time. I baggrundsprocesser kan der indsamles IoT-signaler, forudsiges vedligeholdelseskrav og proaktivt planlægges teknikere.
Overvej et scenario, hvor Contoso er forhandler med millioner af eksisterende kunder. Contoso har en stor database med kunder og søger at øge salget, samtidig med at kunderne bevares. På baggrund af den tidligere kundehistorik ser de frem til at få 24-timers lynsalgshændelser med forskellige kuponer, der retter sig mod deres kunder og produkter. De har anslået, at det krævede antal kuponer vil være mindst 100 millioner pr. lynsalgskampagne. Marketing har planer om at køre flere 24-timers kampagner, som er rettet mod forskellige kundesegmenter.
Kravet til Contoso's marketingprogram er, at det skal kunne indtage op til 100 millioner eller flere kuponoplysninger i løbet af få timer, læse millioner af kuponer i timen og sende kuponer til kunderne.
Elastiske tabeller skaleres automatisk til dette scenario med højt gennemløb.
I ovenstående scenario kan der f.eks. knyttes en elastisk tabel med navnet Kupon og millioner af poster til Dataverse-standardtabeller som Kontakt (kundeoplysninger) og Tilbud (en brugerdefineret standardtabel). Da de elastiske tabeller er isoleret fra standardtabellerne, påvirkes ydeevnen for det overordnede marketingprogram ikke negativt. Derudover gør tid til live-funktioner med en elastisk tabel (Kupon i dette scenarie) det muligt automatisk at fjerne data efter faste perioder og sikre optimering af lagerkapaciteten.
Brug elastiske tabeller, når:
- Dataene kan være ustrukturerede eller semistrukturerede, eller hvis datamodellen hele tiden ændres.
- Du skal bruge automatisk vandret skalering.
- Du skal håndtere en stor mængde læse- og skriveanmodninger.
Brug standardtabeller, når:
- Programmet kræver stor ensartethed.
- Dit program kræver relationsmodeller og skal have transaktionsfunktionalitet på tværs af tabeller og under faser i udførelse af plug-ins.
- Programmet kræver komplekse joinforbindelser.
Valget af tabel skal være baseret på de specifikke behov i programmet. En kombination af begge typer tabeller kan være passende.
Vandret skalering og ydeevne
Efterhånden som virksomhedsdataene vokser, giver elastiske tabeller ubegrænset automatisk skalerbarhed baseret på programbelastningen, både med hensyn til lagerstørrelse og gennemløb, f.eks. antallet af poster, der er oprettet, opdateret eller slettet i en bestemt tidsramme.
Hvis dit forretningsscenarie kræver meget store dataskrivninger, kan programudviklere bruge API'er i Dataverse med flere anmodninger, f.eks. CreateMultiple
, UpdateMultiple
og DeleteMultiple
, til at opnå et større gennemløb inden for Dataverse-begrænsninger. Flere oplysninger: Udviklervejledning: meddelelser om massehandling og Optimering af ydeevne i forbindelse med massehandlinger
Automatisk fjernelse af data
TTL-politikker (Tid til live) sikrer, at du altid arbejder med de mest opdaterede og nøjagtige oplysninger, samtidig med at du optimerer ressourcer og reducerer risikoen. TTL-live-værdien angives i sekunder på en post, og værdien opfattes som en delta fra det tidspunkt, hvor en post sidst blev ændret.
Fleksibelt skema med JSON-kolonner
Med elastiske tabeller kan du gemme og forespørge på data med forskellige strukturer uden behov for foruddefinerede skemaer eller overflytninger. Det er ikke nødvendigt at skrive brugerdefineret kode for at knytte de importerede data til et fast skema. Flere oplysninger: Udviklervejledning: Forespørge JSON-kolonner i elastiske tabeller Elastiske tabeller giver dig mulighed for at gemme og forespørge data med forskellige strukturer uden behov for foruddefinerede skemaer eller migreringer. Det er ikke nødvendigt at skrive brugerdefineret kode for at knytte de importerede data til et fast skema. Flere oplysninger: Udviklervejledning: Forespørge på JSON-kolonner i elastiske tabeller
Overvejelser, når du bruger elastiske tabeller
Selvom elastiske tabeller er fremragende til håndtering af store mængder forespørgsler på skalaen, giver fordelene et par overvejelser, som du skal huske på:
- Elastiske tabeller understøtter ikke transaktioner med flere poster. Det betyder, at flere skrivehandlinger, der udføres som en del af en enkelt anmodning, ikke er transaktionshandlinger med hinanden. Hvis du f.eks. har registreret et synkront plug-in-trin i
PostOperation
-fasen forCreate message
på en elastisk tabel, kan en fejl i plug-in'en ikke tibagefør den oprettede post i Dataverse. Validering i præplug-ins fungerer stadig som forventet, da de køres før hovedfasen. - Elastiske tabeller understøtter kun stor ensartethed i en logisk session. Uden for sessionens kontekst kan du muligvis ikke se ændringer af en række med det samme. Flere oplysninger: Udviklervejledning: Konsistensniveau
- Elastiske tabeller understøtter ikke filtre på relaterede tabeller, når du opretter visninger, avanceret søgning eller forespørgsler generelt ved hjælp af API. Hvis du ofte har brug for at filtrere på relaterede tabelkolonner, anbefales det, at du denormaliserer kolonner fra relaterede tabeller, som skal filtreres ind i selve hovedtabellen. Overvej en forhandler med to elastiske tabeller: kunde og adresse. Én kunde har mange adresser. Du vil returnere forespørgselsresultater for alle kunder fra den kundetabel, hvis byværdi i adressetabellen er New York. I dette eksempel vil du anvende et filter på bykolonnen i den relaterede adressetabel, når du forespørger om kundetabel. Dette understøttes ikke for elastiske tabeller. En måde at gøre dette arbejde på er at denormalisere bykolonnen i tabellen Kunde, så alle kunders byværdier findes i selve kundetabellen.
Understøttelse af funktioner til elastiske tabeller
- Opret, hent, opdater, slet (CRUD-handlinger), herunder API-flere handlinger (for højt gennemløb), massesletning og anmodninger fra plug-ins.
- Relationer:
- En til mange
- Mange-til-én når N-tabellen er en standardtabel
- Ejerskab af poster, sporing af ændringer, overvågning, mobil offline og Dataverse-søgning.
- Filkolonne med filtypeattribut
Understøttelse af sikkerhedsfunktioner
Elastiske tabeller overholder Dataverse-sikkerhedsmodellen.
Når du opretter en elastisk tabel, kan du angive følgende:
- Enten bruger- eller organisationsejet
- Sikkerhed på feltniveau
Funktioner, der i øjeblikket ikke understøttes med elastiske tabeller
Tabelfunktioner, der i øjeblikket ikke understøttes med elastiske tabeller:
- Forretningsregler
- Diagrammer
- Forretningsprocesflow
- Én Dataverse-connector til Power BI
- N:N-relationer (mange til mange) til standardtabeller
- Alternativ nøgle
- Registrering af dublet
- Beregnede kolonner og akkumuleringskolonner
- Valutakolonner
- Sammenligning af kolonner i forespørgsler
- Tabeldeling
- Sammensatte indekser
- Overlappe handlinger: Slet, Ny overordnet, Tildel, Del, Ophæv deling
- Sortering af opslagskolonner
- Aggregere forespørgsler:
- Særskilt værdi af
attribute1
og samtidig orderby påattribute2
værdi - Sidenummerering, når der er flere distinkte
- Adskille med flere orderby
- Sortere efter og gruppere efter sammen
- Gruppere efter på linkobjekt (venstre ydre joinforbindelse)
- Distinkt på brugerejede tabeller
- Særskilt værdi af
- Tabelforbindelser
- Adgangsteams
- Køer
- Vedhæftet fil
Kolonnedatatyper, der i øjeblikket ikke er tilgængelige med elastiske tabeller:
- Valuta
- Formula
- Andet helt talformat end Ingen (varighed, sprogkode og tidszone)
- Opslag baseret på indstillingen Kunde
Oprette en elastisk tabel
Du opretter en elastisk tabel ligesom alle andre nye tabeller i Dataverse.
- Log på Power Apps, og vælg derefter Tabeller i navigationsruden i venstre side. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.
- Vælg Ny tabel > Angiv avancerede egenskaber på kommandolinjen.
- Angiv et vist navn og et flertalsnavn i ruden med egenskaber til højre.
- Udvid Avancerede indstillinger, og vælg derefter Elastisk som tabellens type.
- Vælg de ønskede egenskaber, og vælg derefter Gem.
Kolonnen Levetid oprettes automatisk for en elastisk tabel. Du kan tilføje tidsperiodeværdien i sekunder efter behov. Dataene fjernes automatisk efter den angivne tidsperiode.
Flere oplysninger om tabeller: avancerede indstillinger
Kendte problemer
- Når Levetid (TTL) bruges på en række, slettes rækken fra den elastiske tabel, når TTL udløber. Hvis den er synkroniseret med en datasø ved hjælp af Azure Synapse Link for Dataverse inden TTL-udløb, slettes den ikke fra datasøen.
- Gendannelse til bestemt tidspunkt gendanner ikke "opdaterede" poster, da opdateringer ikke sikkerhedskopieres. Kun oprettede og slettede poster gendannes.
- Hvis en specifik kolonne i en elastisk tabel slettes, fjernes kolonneværdien ikke fra tabelrækkerne, hvis den har data. Før du sletter en bestemt kolonne, skal du slette dataene fra alle rækker for kolonnen.
Fleksible tabeller med stor mængde og administration af Dataverse API-grænser
Brug Meddelelser om massehandlinger. Det giver dig mulighed for at opnå 10 gange flere gennemløb med de samme Dataverse-API-begrænsninger. Udviklere kan henvise til flere links i afsnittet nedenfor.
For udviklere
Fleksible tabeller har andre funktioner end standardtabeller, når udviklere bruger dem med Dataverse API'er. I følgende artikler til udviklere beskrives disse forskelle:
- Fleksible tabeller
- Oprette elastiske tabeller med kode
- Bruge elastiske tabeller med kode
- Forespørge JSON-kolonner i elastiske tabeller
- Meddelelser om massehandlinger (forhåndsversion)
- Eksempelkode til elastisk tabel
- Sende parallelle anmodninger
- API'er for tjenestebeskyttelsesgrænser