Big Ruby 2014

Modelado de datos para sistemas clave/valor

Hector Castro  · 

Presentación

Vídeo

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

alright so the talk is throw some keys on it data modeling for key value data stores by example my name is Hector Castro that's my handle pretty much everywhere disclaimer up front I work for bass show we make a distributed key valley database a quick

story about a quick back story here i was in mexico in mexico you'll run in scenarios where if you're sitting down in like an open cafe area a guy like this will approach you and he will put his hand on you and he won't make a sound and he'll

stay there until you pay him money if you're with someone else he will then do the same thing to them and stand there until you give them money so if software doesn't work out for any of us this is a nice professional to look forward to so how many

people have seen something like this like hanging on somebody's cube wall or somebody printing it out to try to explain what the database what relationships are between a bunch of different entities in a database so relational databases aren't all

bad right they give us things that are very attractive from a developer's perspective they give us they give us relationships you know establishing relationships between multiple entities when you're de normalizing give you transactions you're

trying to make modifications to multiple rows multiple objects the same time you want them to happen in an atomic way they give you schemas so you can define types against particular object so you can optimize you can say this is going to be a date for my

range query so he can make your range queries fastest as an integer the ability to extend existing schemas so if you want to alter a table you can do all these things in a relational database and the last thing probably one of the most important things is

that you can use ad hoc queries you can use sequel to access all the data inside of your database so then the question is you know what if your application doesn't need most of that for more importantly what if things like latency things like scale or

high availability Trump a lot of the features that you're getting out of relational database basically your application requires these more than it require some of those other features we want went through so this is where key value stores come into play

more specifically distributed key value stores so a couple of reasons why they're attractive so there's schema lists and we saw this in a couple of talks yesterday single access reads you're doing primary key reads so generally things are going

to be very fast if you're trying to do hi right workloads they're also pretty good for right heavy workloads a lot of times key value stores are append only so these rights can be very fast in general they're easier to scale if not simply because

you know you have a much more restricted API so there's a lot of things that you don't have to worry about if you're trying to scale key value data store not to worry about joins you don't have to worry about grouping data across multiple shards

and it's a familiar interface so it's just just a hash so a couple of examples here and Ruby if you have a hash or map you can assign a value to it and print it out you can assign a more complicated structure you can serialize that you can store it

there you can even just take image files and put them inside right so you can do a lot of these same things with key value stores because they're just storing binary data so a lot of times even even I did this is when you know you're presented with

[ ... ]

Nota: se han omitido las otras 1.771 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.