sql >> Database teknologi >  >> NoSQL >> MongoDB

Azure Table vs MongoDB på Azure

Table Storage er en kernefunktion i Windows Azure, designet til at være skalerbar (100TB 200TB 500 TB pr. konto), holdbar (tredobbelt replikeret i datacenteret, eventuelt georepliceret til et andet datacenter) og skemaløs (hver række kan indeholde alle egenskaber, du ønsker). En række er lokaliseret ved partitionstast + rækketast, hvilket giver meget hurtigt opslag. Al Table Storage-adgang sker via en veldefineret REST API, der kan bruges gennem ethvert sprog (med SDK'er, bygget oven på REST API'erne, allerede på plads til .NET, PHP, Java, Python og Ruby).

MongoDB er en dokumentorienteret database. For at køre det i Azure, skal du installere MongoDB på en web-/arbejderroller eller Virtual Machine, pege på et cloud-drev (derved give et drevbogstav) eller tilsluttet disk (til Windows/Linux Virtual Machines), eventuelt aktivere journalføring (hvilket jeg vil anbefale), og eventuelt definere et eksternt slutpunkt til din brug (eller få adgang til det via virtuelt netværk). Cloud-drevet/tilknyttede disk er i øvrigt faktisk gemt i en Azure Blob, hvilket giver dig den samme holdbarhed og georeplication som Azure Tables.

Når du sammenligner de to, skal du huske, at Table Storage er Storage-as-a-Service:du får blot adgang til et velkendt REST-slutpunkt. Med MongoDB er du ansvarlig for at vedligeholde databasen (f.eks. når MongoDB Inc (tidligere 10gen) skubber en ny version af MongoDB ud, skal du opdatere din server i overensstemmelse hermed).

Angående MongoDB Inc's alfaversion, som jtoberon peger på:Hvis du ser nærmere på den, vil du se et par vigtige ting:

  • Opsætningen er til en Standalone mongodb-instans uden replika-sæt eller shards. Med hensyn til replika-sæt, får du stadig flere fordele ved at bruge Standalone-versionen på grund af den måde, Blob-lagring fungerer på.
  • For at give høj tilgængelighed kan du køre med flere forekomster. I dette tilfælde betjener kun én instans databasen, og den ene er en 'varm-standby', der starter mongod-processen, så snart den anden instans fejler (til vedligeholdelsesgenstart, hardwarefejl osv.).

Mens 10gens Windows Azure-indpakning stadig betragtes som 'alfa', er mongod.exe det ikke. Du kan starte mongod exe ligesom du ville starte enhver anden Windows exe. Det er kun ledelseskoden omkring lanceringen, og det er, hvad alpa-implementeringen demonstrerer.

EDIT 2011-12-8:Dette er ikke længere i alfatilstand. Du kan downloade det seneste MongoDB+Windows Azure-projekt her, som giver support til replikasæt.

For ydeevne, tror jeg, du bliver nødt til at lave nogle benchmarking. Når det er sagt, så overvej følgende:

  • Når du får adgang til enten Table Storage eller MongoDB fra f.eks. en webrolle, når du stadig ud til Windows Azure Storage-systemet.
  • MongoDB bruger masser af hukommelse til sin egen cache. Af denne grund er masser af højskala MongoDB-systemer implementeret til større instansstørrelser. For Table Storage-adgang har du ikke den samme hukommelsesstørrelse.

REDIGERING 7. april 2015 Hvis du vil bruge en dokumentbaseret database som en tjeneste, tilbyder Azure nu DocumentDB.



  1. Kan ikke finde modulet '../build/Release/bson'] kode:'MODULE_NOT_FOUND' } js-bson:Kunne ikke indlæse c++ bson-udvidelsen, ved brug af ren JS-version

  2. Find værdier, der ikke indeholder tal i SQL

  3. Kan ikke overskrive model, når først Mongoose er kompileret

  4. Indstilling af dynamisk sti i redis.conf ved hjælp af miljøvariablen