Hvordan bruke mongoDB med tidsserier

Hvordan bruke mongoDB med tidsserier

"Sett inn, oppdater, lokaliser, slett og aggregat er alle operasjoner som kan utføres på en tidsseriesamling, akkurat som de er på en standardsamling. Bak gardinen eksisterer den grunnleggende forskjellen. Når du setter inn data i MongoDB, konverteres de til et optimalt lagringsformat. En tidsserie er enklere og mer spørringseffektiv enn en vanlig samling.

Tidsseriekolleksjoner blir behandlet som ikke-materialisert Writable Views i MongoDB. Dataene lagres mer effektivt, bevarer skiveplass, og en tidsbasert intern indeks bygges automatisk. I stedet for snappy, brukes ZSTD -algoritmen som standard for å komprimere dataene. Den nye komprimeringen har et høyere forhold, krever mindre CPU -kraft, og er spesielt godt egnet for tidsserieanalyse med mindre forskjeller mellom dokumenter.

Det er mulig å endre kompresjonsalgoritmen i fremtiden, selv om dette ikke er oppmuntret. Når du setter inn et dokument, bygges ikke en tidsseriekolleksjon automatisk som andre samlinger. Det må opprettes uttrykkelig.”

Hva er tidsserie i MongoDB i Ubuntu 20.04?

En tidsseriedatabase er en tilpasset database som er bygget for lagring av data opprettet fra en konstant strøm av verdier kombinert med en tidsstempel effektivt. Den vanligste applikasjonen er å lagre data fra sensorisk utstyr som leverer datapunkter med jevne mellomrom, men de er nå ansatt for å tjene et langt bredere spekter av applikasjoner.

Følgende er noen eksempler på mulige applikasjoner:

  • Data fra tingenes internett
  • Netttjenester, apper og infrastruktur er alle under konstant overvåking.
  • Estimering av salg
  • Økonomiske trender forståelse
  • Data fra selvkjørende biler eller andre fysiske gjenstander blir behandlet.

En tidsserie spesialisert database bruker komprimeringsteknologier for å redusere mengden plass som trengs, samtidig som du gir tilgangskanaler for å grave dypere i dataene. Dette forbedrer datainnhenting og aggregeringsytelse når du bruker tidsområdet filtre. De er mer kostnadseffektive enn å bruke en tradisjonell relasjonsdatabase.

Verdiene i en tidsserie skal vanligvis ikke endres når de er spilt inn; Derfor er de bare utpekt som innsats eller uforanderlige datapunkter. Oppdateringshandlingen er ekstremt sjelden når dataene er lagret.

Retningslinjer for MongoDB -tidsserie datalagring i Ubuntu 20.04

Vi har noen retningslinjer for tidsserie-data i MongoDB, som er skissert nedenfor.

  • Tenk på datafunksjonene og spørringsmønstrene mens du innstiller dataene dine for passende Metafield og Timefield.
  • Når det er mulig, kan du kombinere tidsseriedata og tidsserie-samlinger.
  • Individuelle målinger eller sett med målinger bør lagres som ett dokument og legges til i partier når du bruker en tidsseriesamling.
  • Tilpass våre data granularitet om attributtverdiene til vår metafield, eller de distinkte sammenkoblingene av vårt unike metafield, basert på vårt datainntakstempo.

Hvordan bruke tidsserie mongoDB i Ubuntu 20.04

Når du jobber med tidsserie-data, trenger du vanligvis mer enn bare lagring; Du trenger også hurtiglest og skrive funksjonalitet så vel som avanserte spørringsmuligheter. MongoDB håndterer nå tidsserie-data innfødt, som av MongoDB 5.0. Følgende alternativer skal spesifiseres når du gir en tidsserie-samling i MongoDB:

CreateCollection () -kommandoen kan brukes til å starte en ny tidsseriesamling.

Timefield: Timefield -alternativet må brukes når du oppretter en tidsseriesamling. Timefield betegner beskrivelsen av eiendommen i hvert dokument som inneholder datoen. Vi bør også vurdere følgende alternativer:

Metafield: Metafieldet spesifiserer navnet på kolonnen i hvert dokument som inneholder metadata. Metafield fungerer som en etikett eller etikett som lar tidssamlingssamlinger identifisere en tidsseriekilde. Dette feltet skal ikke, og skal bare, endre seg over tid.

Detaljnivå: Hvis en matchende metafield leveres, spesifiserer granularitetsattributtet det tidsmessige gapet mellom dokumenter. Standard granularitet er "Seconds", som indikerer en høyfrekvent inntakshastighet for hver tidsserie definert av Metafield. Granularitet kan justeres til "sekunder", "minutter" eller "timer", og det kan endres når som helst for å gjøre det verre. Men fordi du ikke kan endre granulariteten fra "minutter" til "sekunder", er det best å starte med finere granularitet og jobbe deg opp til en tøffere granularitet.

Utløpsrekunder: Til slutt, hvis du har tenkt å slette data etter en spesifisert periode, kan vi inkludere utløp.

Sett inn dokumenter med tidsserier i MongoDB

I det minste må hvert dokument lagt til i tidsseriesamlingen definere timefeltet. Datoen er timefeltet i illustrasjonsdokumentet nedenfor. Det er verdt å merke seg at tidsfeltet kan betegnes som du vil, så lenge det er av BSON -typen eller en dato. Noen av teknikkene for å sette inn dokumenter i andre MongoDB -samlinger kan brukes til å legge til dokumenter i en tidsseriesamling. For dette har vi laget en samling av "webvisitors" som følger:

En enkelt måling skal inkluderes i hvert dokument vi setter inn. Bruk følgende kommando for å sette inn mange dokumenter samtidig:

Henting av tidsserie-data i MongoDB i Ubuntu 20.04

Tidsseriedokumenter kan spørres som dokumentene fra andre samlinger av MongoDB. For eksempel, med MongoDB -skallet, har vi brukt en FindOne for å se etter et dokument i WebVisitors Collection () som følger.

Den foregående spørringen viser følgende resultater, som du kan se:

Aggregering på tidsserie-data i MongoDB i Ubuntu 20.04

Her har vi brukt en samlet rørledning, for eksempel å legge til mer spørringsfunksjonalitet. Følgende eksempel på aggregeringsrørledning kombinerer alle dokumenter med måledata og leverer deretter gjennomsnittet av alle besøkende målinger som er tatt på den dagen av et nettsted:

Når vi utfører aggregeringsrørledningen på samlingen WebSITEVISITORS, genererte output gjennomsnittet av besøkende dokument fra samlingen “WebSITeVisitors” som følger:

Konklusjon

Det er mye tidsserie-data, men å opprettholde og få tilgang til det kan være vanskelig. MongoDB fikk innfødt støtte for tidsserier, og gjorde arbeid med tidsserie-data betydelig enklere, raskere og rimeligere. Vi har gitt en kort introduksjon med noen retningslinjer for bruk av tidsserier i MongoDB. Vi har noen illustrasjoner av tidsserier som demonstrerer hvordan vi kan bruke tidsserier i MongoDB -samlingen på noen mulige måter.