MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

Dateien in GridFS speichern und verwalten

Marc-David Militz
Experte
MongoDB speichert Daten standardmäßig als BSON Dokumente. Ein großer Vorteil von BSON (Binary JSON) ist es, daß auch Binärdaten abgespeichert werden können. Aus diesem Grund ist es in MongoDB auch möglich Dateien beliebiger Größe abzulegen.

MongoDB hat dafür ein eigenes Konstrukt mit dem Namen GridFS geschaffen. Die Dateien werden dabei auf zwei Collections aufgeteilt. Die Metadaten-Collection enthält alle Informationen zu den Dateien. In der Chunks-Collection wird die, in Chunks zerlegte, Datei selbst abgelegt.

Der Einsatz von GridFS ist vor allen dann sinnvoll wenn
  • man mehr Dateien hat, als das Dateisystem verwalten kann
  • man nur auf Teile einer sehr großen Datei zugreifen möchte, ohne diese komplett zu laden
  • man Dateien, und deren Meta-Daten, über mehrere Standorte synchronisieren möchte


    • Man sollte GridFS nicht einsetzen wenn
      • man viele atomare Updates auf sehr große Dokumente macht
      • die Dokumente kleiner als 16 MB sind


        • GridFS kann nur über einen Datenbanktreiber angesprochen werden und nicht direkt auf der Konsole (siehe Grafik). MongoDB bringt aber das Hilfsprogramm "mongofiles" mit um Dateien nach GridFS zu laden. Der Treiber ist für das Zerlegen und wieder zusammensetzen der Chunks zuständig.

          Beispiel für den Befehlsaufruf
          mongofiles -d gridfs put Nyan_Cat-15_Minutes.mp3


          Ist die Datei dann in GridFS geladen kann man in der Mongo Konsole die einzelnen Chunks sehen und kann auch darauf zugreifen.

          Beispiel für den Zugriff
          db.fs.files.find().pretty()
          db.fs.chunks.find({files_id:ObjectId(object_id)})
          db.fs.chunks.find({files_id:ObjectId(object_id)}).count()

Neueste Mitgliederaktivitäten

Diesen Community Beitrag weiterempfehlen