Your SlideShare is downloading. ×
MongoDB: Repository for Web-scale metadata
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

MongoDB: Repository for Web-scale metadata

587

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
587
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. MONGODBŠkálovateľné ukladanie neštruktúrovaných metadát kdokumentom
  • 2. Problémová oblasť Anotácie (metadáta) na Webe  Web – veľký => Veľa metadát  Distribuované úložisko  Distribuované spracovanie dát  „Voľná“ štruktúra dát  Nevhodná relačná algebra  „Štandard“: Model Open Annotation (openannotation.org)  RDF  Dopytovanie prostredníctvom SPARQL
  • 3. Očakávané štandardné použitie Uloženie anotácie Aktualizácia anotácie Získanie konkrétnej anotácie Získanie histórie anotácie (historickej verzie) Získanie anotácií z dokumentu Dopytovanie nad anotáciami prostredníctvom SPARQL – kompatibilita s Open Annotation
  • 4. Zvažované DBMS Bigdata  Natívne RDF úložisko  Výkonné voči iným RDF DBMS, reálne stále pomalé Casandra  Dopytovanie po stĺpcoch  Apache Hadoop - MapReduce ChouchDB  JSON  MapReduce MongoDB  BSON  MapReduce
  • 5. Realizácia Kolekcia: Annotations  Objekty anotácií - ľubovoľná štruktúra dát s URI identifikátorom, spĺňajúca náležitosti modelu OA  Rýchly prístup ku konktrérnej anotácií  Pomalé získanie zoznamu anotácií dokumentu Kolekcia: Dokumenty  Objekty s fixnou štruktúrou – (ID, URI dokumentu – indexované, URI anotácie, platnosť anotácie)  Rýchle získanie zoznamu anotácií SPARQL – MapReduce s Finalize
  • 6. Bigdata vs. MongoDB600550500450400350300250200150100 50 0 1 21 41 61 81 101 121 141 161 181 201 221 241 261 281 301 321 Load Annotations Retrieve One Annotation Retrieve Uri List Retrieve Object List Execute SPARQL Query
  • 7. Práca s MongoDB Drivare pre jazyky  Priama podpora: C, C++, Erlang, Haskell, Java, Javascript, .NET (C# F#, PowerShell, etc), Perl, PHP, Python, Ruby, Scala  Podpora komunity: ActionScript3, Clojure, ColdFusion, D, Delphi, Entity, Factor, Go, Groovy, Lisp, Lua, MatLab, node.js, Objective C, Opa, PowerShell, Prolog, R, REST, Racket, Smalltalk REST addon JavaScript konzola
  • 8. C#using MongoDB.Bson; class Annotationusing MongoDB.Driver; {using MongoDB.Bson.Serialization; [BsonId]using MongoDB.Driver.Builders; public string Uri { get; set; }MongoServer server = MongoServer.Create(connectionString); public DateTime CreatedMongoDatabase database = { get; set; } server.GetDatabase(databaseName);var annotations = public bool IsDeleted database.GetCollection<Annotation> { get; set; } (collectionName);Annotation annotation = public ITarget[] HasTarget new Annotation() {…}; { get; set; }annotations.Insert(annotation); ...annotation = } annotations.FindOneById(uri);
  • 9. JavaScript Console> use Testswitched to db Test> db.Annotations.save({ _id: "http://fiit.sk/Anot2", IsDeleted: false})> db.Annotations.find().forEach(printjson){ "_id" : "http://fiit.sk/Anot1", "IsDeleted" : true}{ "_id" : "http://fiit.sk/Anot2", "IsDeleted" : false }> annot = db.Annotations.findOne({_id: "http://fiit.sk/Anot2"}){ "_id" : "http://fiit.sk/Anot1", "IsDeleted" : false }> annot.IsDeleted = truetrue> db.Annotations.save(annot)> db.Annotations.find().forEach(printjson){ "_id" : "http://fiit.sk/Anot1", "IsDeleted" : true}{ "_id" : "http://fiit.sk/Anot2", "IsDeleted" : true}

×