Introduction to NoSQL • Martin Fowler • GOTO 2012

Поделиться
HTML-код
  • Опубликовано: 19 июл 2024
  • This presentation was recorded at GOTO Aarhus 2012. #gotocon #gotoaar
    gotocon.com
    Martin Fowler - Author, Speaker, Consultant & General Loud-mouth on Software Development
    ABSTRACT
    Martin gives a rapid introduction to NoSQL databases: where they came from, the nature of the data models they use, and the different way you have to think about consistency. From this he outlines what kinds of circumstances you should consider using them, why they will not make relational databases obsolete, and the important consequence of polyglot persistence.
    TIMECODES
    00:00 Intro
    00:42 History of NoSQL databases
    07:51 Definition of NoSQL
    09:36 Data model
    10:04 Key-value data model
    10:37 Document data model
    17:36 Column-family data model
    20:20 Graph data model
    25:47 NoSQL and consistency
    40:28 CAP theorem
    44:40 When and why to use a NoSQL database
    50:52 Is NoSQL the future of databases?
    RECOMMENDED BOOKS
    Martin Fowler & Pramod Sadalage • NoSQL Distilled • amzn.to/3ChIpu7
    Martin Fowler • Patterns of Enterprise Application Architecture • amzn.to/3lp4sIq
    Martin Fowler • Domain-Specific Languages • amzn.to/3nzOIFk
    Martin Fowler • UML Distilled • amzn.to/3kahjyA
    Martin Fowler • Analysis Patterns • amzn.to/3Emabar
    / gotocon
    / gotoconference
    #NoSQL #PolyglotPersistence #Programming
    Looking for a unique learning experience?
    Attend the next GOTO Conference near you! Get your ticket at gotocon.com
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    ruclips.net/user/GotoConf... #GOTOcon #GOTO #Programming #SoftwareEngineering
    Looking for a unique learning experience?
    Attend the next GOTO conference near you! Get your ticket at gotopia.tech
    Sign up for updates and specials at gotopia.tech/newsletter
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    ruclips.net/user/GotoConf...
  • НаукаНаука

Комментарии • 388

  • @kirankartheek5858
    @kirankartheek5858 10 месяцев назад +8

    Its just mindboggling to imagine about the level of clarity Martin speaks with. There are some people who attract you with their oratary skills and I pledge this guy is one such kind

  • @nikitadrozdovskii2140
    @nikitadrozdovskii2140 2 года назад +48

    I wish I could add an extra "like" every time I agree with what he is saying or he blows my mind with how he puts all the concepts I learned separately into one global picture.

  • @hynjus001
    @hynjus001 7 лет назад +93

    Martin Fowler is just amazing

  • @hnasr
    @hnasr 7 лет назад +47

    21:40 most important part of the presentation. How to make a choice between relational and nosql...

  • @delpher1983
    @delpher1983 6 месяцев назад +5

    It's 2024 already but it feels like we're still don't know mush on how to actually use nosql properly.

  • @TheMako101
    @TheMako101 Месяц назад +1

    Amazing that 11 years later his talk is still massively helpful and a great intro to NoSQL DBs

  • @giorgosargyriou5856
    @giorgosargyriou5856 9 лет назад +157

    I don't know if I am young or new in the subject, but that's what I call "perfect teaching". This guy is amazing!
    For many years I was disappointed from my professors and their (in)ability to teach contagiously. This man justifies my (so called) nagging.

    • @jameswainwright5217
      @jameswainwright5217 8 лет назад

      +Giorgos Argyriou He's very impressive.

    • @NJ-wb1cz
      @NJ-wb1cz 8 лет назад +4

      +Giorgos Argyriou You have to keep in mind, that he is not only teaching, but also promoting. As in, he sort of glosses over the fact that the vast vast majority of your real projects will never ever need NoSQL as your primary data storage, and using NoSQL database where you really need something relational is a far more expensive mistake, than the other way around.

    • @NJ-wb1cz
      @NJ-wb1cz 8 лет назад +4

      ***** Yeah, he promotes NoSQL in general, not as a replacement - but that's what people inevitably take out of such well constructed presentations. The fact is, most developers already use relational DBs for everything and to insert NoSQL in your workflow you have to replace SQL in some way.
      Now, if you are using filesystem or in-memory hash table as your storage engine - then yeah, NoSQL could extend your horizons with very little performance hit. Otherwise you are incurring these massive penalties on architecture or feature set or extendability or stability of your applications in the name of mythical features or performance levels that you don't actually need.
      He doesn't spend much time explaining, which NEW problems are now solvable, and which of the old ones are definitely NOT - he spends most of the time straight out praising NoSQL.

    • @NJ-wb1cz
      @NJ-wb1cz 8 лет назад

      ***** See, you're doing it even worse.
      People think "fast and scalable? well duh, I need fast and scalable everywhere!" Except you don't mention, that "fast" could mean "slower than MySQL or Postres on real workloads", and "scalable" could mean "scalable far beyond what you'll ever need or use", and you also don't mention "forcing simple data structures", "rigidity of data representation", "inability to make deep changes", "inability to use any sort of advanced cross-cutting analytics", "unpredictable performance on very similar tasks from business perspective", etc.
      So no, if the purpose is truly to have a fast and scalable database, then you have to return to planning stage and completely change your decision process to better reflect actual needs of your application and not some generic marketing-talk.

    • @NJ-wb1cz
      @NJ-wb1cz 8 лет назад

      ***** So... why then reply at all if your answer is misleading and incomplete, and people shouldn't take it into consideration?

  • @andriinikitin6139
    @andriinikitin6139 3 года назад +6

    This video gave me more than 2 days reading articles and watching other vids non-stop

  • @cliveboulton
    @cliveboulton 10 лет назад +10

    The best NoSQL talk I've come across.

  • @marcdraco2189
    @marcdraco2189 8 лет назад +33

    Just great! What a gift to be so fluid and yet so comprehensive.

  • @kevinzhang8974
    @kevinzhang8974 8 лет назад +19

    Excellent presentation. Simple, plain English and examples to help understand the basics of NoSQL concept. Thank you Martin! Kevin

  • @pawel753
    @pawel753 4 года назад +19

    40:40 the best explanation of CAP theorem I've ever heard (+ previous example of booking a hotel room at 37:52)

  • @saggie1984
    @saggie1984 7 лет назад +3

    Glad that I found this video. Explains almost everything you need to know about NoSQL. Speech is absolutely perfect.

  • @nagaraj-ol3xe
    @nagaraj-ol3xe 7 лет назад +6

    One of the best intro about NoSQL Dbs and especially the CAP theorem

  • @slavikzorin6906
    @slavikzorin6906 10 лет назад +5

    Martin is the most lucid speaker on pretty much any complex topic in computing. I love this 50 minute talk. A great intro into the NoSQL movement. I did think that the explanation as to why NoSQL may succeed where OODBS failed was no so convincing and would have loved to hear more on this particular topic. Highly recommended!

  • @MoizRaja
    @MoizRaja 9 лет назад +8

    Martin Fowler is very good at "distilling" complex stuff into easy to understand concepts. Excellent talk!

  • @brandonhunter3036
    @brandonhunter3036 Год назад +3

    10 years later and this was very accurate.

  • @decki86
    @decki86 8 лет назад +41

    if only everyone teaches like this...

  • @EssamAlmuqri
    @EssamAlmuqri 10 лет назад +3

    It's been sometime since I started looking for what is NoSQL and what the fuzz all about. I think this video is simply my answer.

  • @lalanashree3962
    @lalanashree3962 4 месяца назад +1

    Wholesome video, which covers every topic of NOSQL !!!

  • @parishchic97
    @parishchic97 2 года назад +6

    This was a fantastic presentation! I am fairly ignorant to all of these concepts, and I am walking away with a better understanding of each. Thank you!

  • @vijayamurugand6407
    @vijayamurugand6407 10 лет назад +4

    Martin your talk made me understand a hell a lot about NoSQL Which can't even gained after 2 years of practical experience. If someone had kind of presentation for SQL it might have been used better in the industry. It's best!!

  • @DoNuT_1985
    @DoNuT_1985 10 лет назад +5

    I was just thrown into NoSQL for a project a week ago and found this very interesting, as well as entertaining.
    It's really hard to get rid of all these ORM-related paradigms first, but I love the relief that comes with simplicity.

  • @shrutighughal8171
    @shrutighughal8171 8 лет назад +4

    That's much better explanation of CAP theorem than what you typically find online...

  • @anandakumarsanthinathan4740
    @anandakumarsanthinathan4740 2 года назад

    Brilliant presentation. Today is the 16th of December. His birthday is two days from now. Happy birthday, Martin Fowler.

  • @Sebastinator
    @Sebastinator 2 года назад +1

    This dude is amazing! Will watch all his conferences!

  • @TheOceanLoader
    @TheOceanLoader 10 лет назад

    Great explanation of the different models of NoSQL databases. Martin Fowler does his usual breakdown of complicated subjects into informative presentations.

  • @nishikanttayade7446
    @nishikanttayade7446 3 года назад +2

    He is THE BEST teacher I ever had!

  • @brynncurry6112
    @brynncurry6112 8 лет назад

    Great breakdown of NoSQL. I appreciate the part of the talk where you show the graphic of using multiple data storage types to meet a systems needs using polyglot persistence. This video has made me think even deeper about the full systems interaction between the different data stores.

  • @pdxholmes
    @pdxholmes 10 лет назад +1

    Great introductory talk. The best part of it was that he didn't take a giant steaming dump on relational models which a) still pay most of our bills in direct or indirect ways, and b) still absolutely have a place in the world of data. I think his premise of 'polyglot persistence' is absolutely where things are headed. I've already seen some pretty neat implementations using RDBMS as the final authoritative backing store, but having clustered MongoDB instances as mostly-fresh satellite caches.

  • @westfield90
    @westfield90 5 лет назад +1

    I found this to be one of the best presentations I’ve ever seen. It was very clearly explained. I wish he would do a follow up now 6 years later and revisit this space and how has it changed or is it still pretty much back where it was in 2012, As a complete Noob I’m wondering what has changed in the past six years.

  • @FeelsDonkMan
    @FeelsDonkMan 4 года назад +1

    Fantastic talk, really interesting. Going through something similar now. I think one of the other things about aggregate databases is that because there's no explicit schema, documents can end up in unexpected states, unless you verify everything before an update via the implicit schema which is not very feasible. You basically can't tell how something went wrong in your documents at that point which is pretty worrying.

  • @PlatformsLLC
    @PlatformsLLC 10 лет назад

    Martin Fowler has done more to help me be a better coder than anyone else alive. His book on refactoring is the single most useful practical programming text I've ever read. Thank you sir!

  • @ZFlyingVLover
    @ZFlyingVLover 7 лет назад +2

    If it's a 'strategic' or 'tactical' project you STILL need to consider how the data will be used. You don't just select NOSQL for the sake of using something new.
    If you select nosql for a stategic project w/o understanding how the data will be used you better line up your next job fast.

  • @sigmundkreuzer9655
    @sigmundkreuzer9655 10 лет назад

    A great presentation over the different NoSql approaches. Thanks for sharing.

  • @laexpearl
    @laexpearl 10 лет назад

    Great talk on NoSQL by Martin Fowler. Incredibly articulate.

  • @jayeshchandrapal
    @jayeshchandrapal 11 лет назад +1

    Very well thought out, and steady continuous stream of presentation. Thanks for sharing.

  • @jordanradkov2910
    @jordanradkov2910 10 лет назад

    Great Vid. I often find myself losing focus during such tech talks, but that was not the case here! Props to Mr. Fowler !

  • @MessiahTheMessengerOfGod
    @MessiahTheMessengerOfGod 6 лет назад

    Martin Fowler, is a great man. The conference is perfect !

  • @venknar
    @venknar 9 лет назад

    Awesome talk and good introduction to NoSQL storage solutions. Must watch for getting to know the basics of NoSQL

  • @srinivasanisetty6894
    @srinivasanisetty6894 8 лет назад

    Splendid method of introducing to the concept of NoSQL. Must watch for anyone new to this domain. Thankyou Martin.

  • @shikhashah8253
    @shikhashah8253 3 года назад +1

    Best explanation! Thank you for such good content!

  • @somethingrookie
    @somethingrookie 7 лет назад +1

    It was really great listening to this. Clear cut concept for a beginner. Thanks a ton :) and a down thumb for the audience.

  • @pinkylover911
    @pinkylover911 2 года назад +2

    not only an excellent instructor but also super funny

  • @ckakunje
    @ckakunje 6 лет назад

    Always feels good to listen from the Guru.

  • @pratheekn87
    @pratheekn87 8 лет назад +1

    Very well explained !! Cheers to Martin's energy ! :-)

  • @MrRahulKumarKandula
    @MrRahulKumarKandula 8 лет назад

    Such a Brilliant talk. Got the hang of NoSql databases. Thanks so much.

  • @anand94087
    @anand94087 10 лет назад

    WoW ..great explanation about NOSQL and I realized the importance of NOSQL vs RDBMS

  • @ghutchison1
    @ghutchison1 11 лет назад

    Awesome video. I was working on a talk about how to introduce database technology into a second course in Computer Science for High School teachers and Martin's talk gave me some excellent ideas.

  • @draco2848
    @draco2848 8 лет назад

    Thank you Martin for your awesome talk.

  • @sunilphanimanne
    @sunilphanimanne 6 лет назад

    The best ever session that I have seen!

  • @johnhammer8668
    @johnhammer8668 7 лет назад +1

    The problem is once I listened to the amazon engineer talk where he advised to use sql till u reach 10 million users as Postgres sql and MySQL are very stable and one will find all the answers to the problems since it has been for a long time. Thus I wonder which will save time.

  • @alvinkpoto2993
    @alvinkpoto2993 7 лет назад

    Beautiful Presentation and excellent demonstration of skills and knowledges

  • @SudarshanKrSingh
    @SudarshanKrSingh 6 лет назад +2

    Excellent introduction of NoSQL :)

  • @LucasKjaero
    @LucasKjaero 8 лет назад +1

    Good talk, and I agree that it's good to know multiple ways of storing data. He explains things well. However, I question the recommendation of using the immature and experimental technology for your mission critical systems: it's probably better the other way around.

  • @Selvanavy
    @Selvanavy 11 лет назад

    What a great presentation.. He absolutely knows what he talks..

  • @johnnyodonnell4952
    @johnnyodonnell4952 8 лет назад +11

    The king

  • @MrOptimystic
    @MrOptimystic 10 лет назад +1

    Great Talk. Highly recommended to spend an hour to learn some new stuff.

  • @helminenjuha
    @helminenjuha 10 лет назад

    You really wrapped it up. Thank you so much!

  • @xxy2109
    @xxy2109 9 лет назад +2

    Great intro. To sum up, NoSql is being used because of the big data and impedance problem of relational database. There are 4 categories: Key-value, document store, column family and graph. The first 3 are aggregate-oriented and all 4 are schemaless; NoSql are good for using one kind of aggregate constantly and it needs to handle trade off between consistency and availability(or response time), which usually is a business decision. NoSql is not only good for big data, also for easier development.

    • @indikaGreat
      @indikaGreat 8 лет назад

      +Xiangyang Xiao Nice summary. thanks

    • @robertshilt3431
      @robertshilt3431 7 лет назад

      This is great. I heard that UnitedHealth group is hiring a MarkLogic
      NOSQL Development role, let me know if you want to hear more.

  • @mitpifa
    @mitpifa 8 лет назад

    Impressive presentation. Thanks, Martin.

  • @user-zr1fk1mg9e
    @user-zr1fk1mg9e 11 лет назад

    Easy to understand and follow. Thank you! Mr.Fowler.

  • @NirdoshChouhan
    @NirdoshChouhan 11 лет назад

    I learned lot out of it. Earlier concept from what all option available really good.Thanks Martin fowler

  • @ohad7
    @ohad7 6 лет назад

    Excellent lecture. Thank you for sharing.

  • @csl1384
    @csl1384 4 года назад +9

    46:30 "I've got some friends who work at *The Guardian* newspaper ... the article for them is a natural aggregate ... for them spreading that article accross relational databases is a *pain in the neck* ..."
    Later: "some NoSQL databases are *immature* , we don't have the tools, the experience, the knowledge to work with them well; we've got decades of experience with sql databases"
    Fast forward to 2018 (www.theguardian.com/info/2018/nov/30/bye-bye-mongo-hello-postgres).
    The Guardian: " *Bye bye Mongo, Hello Postgres* ... We decided to purchase OpsManager - Mongo’s database management software - along with a Mongo support contract - to help with the cloud migration ... Due to editorial requirements, we needed to run the database cluster and OpsManager on our own infrastructure in AWS rather than using Mongo’s managed database offering. This was non-trivial, as *Mongo didn’t provide any tooling* for getting set up easily on AWS - we needed to hand write the cloudformation to define all the infrastructure, and on top of that we wrote hundreds of lines of ruby scripts to handle installation of monitoring/automation agents and orchestration of new DB instances ... Since migrating to AWS we’ve had two *significant outages due to database problems* , each preventing publication on theguardian.com for at least an hour. In both occasions *neither OpsManager nor Mongo’s support agents were able to help us much* , and we ended up solving the problem ourselves ... Automatically generating database indexes on application startup is probably a bad idea ... OpsManager *didn’t really deliver on its promise* of hassle-free database management. For instance, actually managing OpsManager itself - in particular upgrading from OpsManager 1 to 2 - was *very time consuming* , and required specialist knowledge about our OpsManager setup. It also *didn’t deliver on its “one-click upgrade” promise* , due to changes in the authentication schema between different versions of Mongo DB. We lost at least two months of engineering time a year doing this database management work. All of these problems, combined with the *hefty annual fee* we were paying for the support contract and OpsManager, left us looking for an alternative database option ... Since all our other services are running in AWS, the obvious choice was DynamoDB - Amazon’s NoSQL database offering. Unfortunately at the time *Dynamo didn’t support encryption at rest* . After waiting around nine months for this feature to be added, we ended up giving up and looking for something else, ultimately choosing to use Postgres on AWS RDS.
    “ *But postgres isn’t a document store!* ” I hear you cry. Well, no, it isn’t, but it does have a *JSONB column type, with support for indexes on fields within the JSON blob* . We hoped that by using the JSONB type, we could migrate off Mongo onto Postgres with minimal changes to our data model. In addition, if we wanted to move to a more relational model in future we’d have that option. Another *great thing about Postgres is how mature it is* : every question we wanted to ask had in most cases already been answered on Stack Overflow.
    Lesson learned, the hard way.

    • @user-ph4zo2sr5v
      @user-ph4zo2sr5v 4 года назад +1

      Start relational, stay relational. People really do love wasting time and money. There are obvious use-cases for non-relational databases, but it is very doubtful that's where you should begin when building out a domain. As noted, Postgres supports JSONB columns. Best of both worlds.

    • @craigbryant3191
      @craigbryant3191 4 года назад +1

      Yep. We're still here, us relational folks, and our stuff...just works. The world is full of developers who just want to hack away, and hate the discipline relational databases impose on them. We'll still be here when all their stuff breaks again, like it always does.

  • @rounakjain5774
    @rounakjain5774 3 года назад +1

    Thanks for the valuable insights!

  • @SimplilearnOfficial
    @SimplilearnOfficial 9 лет назад +8

    informative!!

  • @feraudyh
    @feraudyh 11 лет назад

    Very clear as usual with Martin Fowler

  • @onteigening
    @onteigening 10 лет назад

    Fowler is one of the best OOPSLA speakers I've heard.

  • @AriKhuu
    @AriKhuu 10 месяцев назад

    this talk is amazing thank you for sharing!

  • @scottgardner4421
    @scottgardner4421 11 лет назад +1

    Very clear presentation about the history of databases & comparing relational vs. NoSQL. It's entirely logical that one application should utilize separate database technologies to serve the various storage needs of the app, i.e., a relational database for transactional data (subject to diverse queries) & NoSQL for more linear aggregation (polyglot persistence). However, I think emerging from this will be individual solutions that, under the hood, utilize multiple persistence technologies.

  • @nitingupta82
    @nitingupta82 10 лет назад

    Very Nice Presentation on NoSQL, Thank You for Sharing.

  • @DorukDenizKutukculer
    @DorukDenizKutukculer 11 лет назад

    This talk is much more fun with subtitles on. Lovely :)

  • @ernestdrozdz1889
    @ernestdrozdz1889 4 года назад +1

    So great! Thank you! :D

  • @trozzonick77
    @trozzonick77 8 лет назад

    What a great explanation. Thanks for it.

  • @geethadilipkumar-cw7mq
    @geethadilipkumar-cw7mq 21 день назад +2

    Super delivery

  • @AndreasGalazis
    @AndreasGalazis 10 лет назад +1

    Nice. thanks for the talk!

  • @Kaysar777
    @Kaysar777 10 лет назад

    Very good explanation! Thank you.

  • @beach4me2007
    @beach4me2007 9 лет назад

    Thanks for posting the good lecture.

  • @fethiourghi
    @fethiourghi 4 года назад +1

    Martin Fowler, thanks you are the best

  • @ajay1124
    @ajay1124 4 года назад

    Fantastic lecture.

  • @eicoz
    @eicoz 2 года назад +2

    Nice presentation from past 👍🏻

  • @dwolthuis
    @dwolthuis 10 лет назад

    Thanks for this introduction to NoSQL Martin. Just FYI, this blog entry www.tincat-group.com/mewsings/2007/01/otlt-metadata-piece-not-apartheid.html shows a NoSQL graphic half-way down. It was written prior to the introduction of hash tags. It is conceivable that others came up with nosql independently after we did (Tom, Ashley and me) and had not seen our graphic prior to that point, but Tom has the domain names, so there is a thread of the NoSQL movement that arose just slightly earlier out of the NF2 (non-first normal form, pre-relational) world, recognizing we did not popularize it. We figured that we passed it into the UniVerse and it was picked up.

  • @guhsemar
    @guhsemar 10 лет назад

    Thanks for fantastic talk on NoSql.

  • @Anuj197612
    @Anuj197612 11 лет назад +1

    Very nice and neatly laid out

  • @afrooz4622
    @afrooz4622 11 лет назад

    I like it and learned a lot from it. Thanks a lot Martin Fowler.

  • @srinivasakadiyala7677
    @srinivasakadiyala7677 9 лет назад

    Thanks Martin for a nice orientation to NoSQL.

  • @reneetsielepi160
    @reneetsielepi160 9 лет назад

    Great overview - would love more detail but really great talk!

  • @Pjblabla2
    @Pjblabla2 2 года назад +1

    Very nicely explained

  • @manjulavikram
    @manjulavikram 10 лет назад

    Simply Awesome! Great Storyteller

  • @dineshb838
    @dineshb838 10 лет назад

    Very nicely explained by Martin

  • @KanomtomTH
    @KanomtomTH 8 лет назад

    Thank for such a great explanation

  • @barsvelioglu2276
    @barsvelioglu2276 3 года назад +1

    Brilliant talk

  • @gauravkataria1
    @gauravkataria1 8 лет назад

    Very informative talk, Thanks a lot

  • @IsidroMoran
    @IsidroMoran 11 лет назад

    Best noSQL intro ever seen

  • @zantrua
    @zantrua 11 лет назад

    I love the /dev/null database. It's so fast and web-scale.

  • @ThePythonist
    @ThePythonist 10 лет назад

    Awesome talk .. very informative .. thanks Martin.

  • @MihaiMoisei
    @MihaiMoisei 10 лет назад

    Very good Introduction to NoSQL

  • @sam271183
    @sam271183 8 лет назад

    That was a really good talk.. Thanks!

  • @ramizazadaliyev1210
    @ramizazadaliyev1210 Год назад

    @50:00 indeed, Excel is engine of the business. I don't know how many times developer complained "we should ban the use of excel in this company, the excel spreadsheet is not requirements"