Successfully reported this slideshow.
Your SlideShare is downloading. ×

.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .NET приложений

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 18 Ad

.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .NET приложений

При работе с реляционными СУБД структура данных должна быть определена перед началом работы с ними. Но иногда бывает необходимо сохранять и, что более важно, искать по частично-структурированным данным. А также было бы удобно использовать один и тот же интерфейс для доступа к структурированным и частично-структурированным данным. В рамках доклада будет рассмотрено использование Marten и JSONP для создания IQueryable хранилища документов, а также сравнение данного подхода с другими способами хранения и поиска документов для .NET приложений.

При работе с реляционными СУБД структура данных должна быть определена перед началом работы с ними. Но иногда бывает необходимо сохранять и, что более важно, искать по частично-структурированным данным. А также было бы удобно использовать один и тот же интерфейс для доступа к структурированным и частично-структурированным данным. В рамках доклада будет рассмотрено использование Marten и JSONP для создания IQueryable хранилища документов, а также сравнение данного подхода с другими способами хранения и поиска документов для .NET приложений.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to .NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .NET приложений (20)

Advertisement

More from NETFest (20)

Recently uploaded (20)

Advertisement

.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .NET приложений

  1. 1. Киев 2017 Только реальные кейсы. Только актуальные тренды. Marten as Document DB for .NET applications Konstantin Proskurdin
  2. 2. Marten as Document DB for .NET applications Киев 2017 Agenda • Microservices and data • Document Storage • Marten
  3. 3. Marten as Document DB for .NET applications Киев 2017 Microservices and data
  4. 4. Marten as Document DB for .NET applications Киев 2017 Microservices and data
  5. 5. Marten as Document DB for .NET applications Киев 2017 Microservices and data
  6. 6. Marten as Document DB for .NET applications Киев 2017 Document Storage • MongoDB • RavenDB • SQL Server • xml, XPath • JSON • Oracle • xml, XPath • JSON • PostgreSQL • Hstore • JSON • HStore2 • JSONB
  7. 7. Marten as Document DB for .NET applications Киев 2017 SQL:2016, ISO/IEC TR 19075- 6:2017: SQL support for JavaScript Object Notation (JSON) • December 2016 • Standard uses strings to store JSON data, standard defines functions that interpret strings as JSON data • <expr> is [not] json • json_object([key] <expr> value <expression> [,…]) • json_array([<expr>[,…]]) , json_array(<query>) • json_arrayagg(<expr> [order by …]) • json_objectagg([key] <expr> value <expression>) • json_exists(<json>, <path>) • json_value(<json>, <path> [returning <type>]) • json_query(<json>, <path> …) • json_table(<json>, <path> columns …) • JSON Path
  8. 8. Marten as Document DB for .NET applications Киев 2017 PostgreSQL JSON(B) Operators • -> Get JSON object field by key • ->> Get JSON object field as text • #> Get JSON object at specified path • #>> Get JSON object at specified path as text • @> Does the left JSON value contains the right JSON
  9. 9. Marten as Document DB for .NET applications Киев 2017 PostgreSQL vs MongoDB
  10. 10. Marten as Document DB for .NET applications Киев 2017 JSONB Demo
  11. 11. Marten as Document DB for .NET applications Киев 2017 Marten IQueryable provider for JSONB
  12. 12. Marten as Document DB for .NET applications Киев 2017 Marten Basics Demo
  13. 13. Marten as Document DB for .NET applications Киев 2017 Advanced features of Marten • Querying with PostgreSQL • Indexes • Expression Indexes • GIN Indexes • Extending Marten's LINQ Support • Profiling • Foreign Keys • Tenancy
  14. 14. Marten as Document DB for .NET applications Киев 2017 JSONB Indexes/Advanced Marten Demo
  15. 15. Marten as Document DB for .NET applications Киев 2017 Summary • Structured/Semi Structured data • Document storages • SQL:2016 JSON standard • PostgreSQL • Marten
  16. 16. Marten as Document DB for .NET applications Киев 2017 References • http://blog.christianposta.com/posts/ • http://standards.iso.org/ittf/PubliclyAvailableStandar ds/c067367_ISO_IEC_TR_19075-6_2017.zip • https://modern-sql.com/blog/2017-06/whats-new- in-sql-2016Document-oriented databases • https://www.postgresql.org/docs/current/static/func tions-json.html • https://jasperfx.github.io/marten/documentation/ • https://www.postgresql.org/docs/9.6/static/gin- intro.html • https://www.slideshare.net/profyclub_ru/postgres- vs-mongo-postgres-professional
  17. 17. Marten as Document DB for .NET applications Киев 2017 Contacts Konstantin Proskurdin Adver-Online kproskurdin@adver-online.nl
  18. 18. Marten as Document DB for .NET applications Киев 2017 That’s all

Editor's Notes

  • Short introduction + about myself
  • Short agenda
  • general microservices stuff
  • Local Data(Structured Data)
    * Data model explicitly determines the structure of data
    * Schema is fixed
    * Easy to visualize
    * A lot of Math
    * Ready-made query language, SQL
  • Shared data(Semi-structured Data)
    * Self-describing structure
    * The schema can easily be changed
    * Helps to not worry about object-relational impedance mismatch
    * Support for nested or hierarchical data
    * Support for lists of objects
    * Can represent the information of some data sources that cannot be constrained by schema
    * Flexible format for data exchange between different types of databases
  • Overview and choose of document db
    * Why not xml, json in SQL/Oracle - speed
    * Why not RavenDB – not usable
    * Why not Mongo – too complicated in configuration
  • Standard for JSON in RDMS from ISO
    Only Oracle and partially SQL Server support parts of standart
  • non standard json operators but with native jsonb
  • Oleg Bartunov(Бартунов)
    RIT++ 2017
    Yahoo! Cloud Serving Benchmark
  • show how jsonb works
    everything is good with JOSNB except it is not supported by EF
  • One standard(IQueryable) for access both local data and shared data
    PostgreSQL 9.5+
    .NET 4.6+
    how it works in short
    Document Database & Event store
  • start up with marten
    set up storage
    write data
    read data
  • Advanced features of Marten
  • B-Tree and GIN indexes, how to use it in Marten
  • Shot summary
    Live experience of using Marten in company
    Amount of data that we used

×