Column vs Row Oriented Databases Explained

  Рет қаралды 79,130

Hussein Nasser

Hussein Nasser

Күн бұрын

Пікірлер
@DannyPhantumm
@DannyPhantumm 3 жыл бұрын
Clearly, you're a naturally gifted teacher. Great content.
@cutesiewow
@cutesiewow 10 ай бұрын
Love the way you teach. I almost didn't want the video to end.
@hnasr
@hnasr 4 жыл бұрын
#savetheducks
@SrivatsanVenkatesan
@SrivatsanVenkatesan Жыл бұрын
I understand this is one of your older videos, but wanted to mention that your content is first class! Thank you!
@PrashantZombade
@PrashantZombade 2 жыл бұрын
Most interesting way of teaching I have ever found, learning can't be more fun than this!
@adrianasensio4298
@adrianasensio4298 4 жыл бұрын
The content of this channel is superb.
@richboiii17
@richboiii17 Жыл бұрын
Incredible video. I was to solidify my understanding of the concept of columnar databases vs row based and this video not only made it easy to understand, but enjoyable too!
@muhammadfarhanmughal6101
@muhammadfarhanmughal6101 3 жыл бұрын
Your Accent and voiceovers make it more attractive to learn.
@OmarBela12
@OmarBela12 3 жыл бұрын
this dude is good, the channel is underrated
@HopeMlebe
@HopeMlebe 2 жыл бұрын
Visually clear, funny and interesting explanations, you are greatly talented.
@foxtrotbr
@foxtrotbr 3 жыл бұрын
One of the best explanations I had seen. Thanks man
@videosforthegoodlife2253
@videosforthegoodlife2253 Жыл бұрын
Great video man. I like a mix of column (for logging, source of truth) and table based RDBMS and also documented oriented (which could be either row or column) for quick trashy dirty data that makes you blush when you look at it too long. But I've seen columns used for quick trashy data - where sums or map reduce is the highest priority and it blows everything else away. I am digging ScyllaDB lately.
@vilewalker234
@vilewalker234 4 жыл бұрын
Youre very entertaining to watch, listen, and learn from
@hnasr
@hnasr 4 жыл бұрын
❤️❤️❤️
@adityasethi9794
@adityasethi9794 3 жыл бұрын
This just shows how much he loves what he does.
@azureabhik
@azureabhik 2 жыл бұрын
Amazing visualisation of concept keeping the technicalities agnostic along with equally simplified narration. The quality of your material and narration is inversely proportional to the jokes :)
@haoyuanhuang5098
@haoyuanhuang5098 3 жыл бұрын
Gives concrete examples of when column database operations are faster or slower than a row database. Thank you!
@swarajgupta3087
@swarajgupta3087 2 жыл бұрын
You opened my eyes :D
@vinny142
@vinny142 4 жыл бұрын
13:35 Aggregates read more than you need. Only if you don't have indexes on the columns you query and if your core business is querying that data then you will have that indexed anyway. Also: if the amount of reads becomes a problem the first thing you do is de-normalize that value into a separate table. This is where database monitorring becomes essential, a nice topic for a ten-part series that will blow your viewers minds :-) I'd change the pro's and con's to "what kind of applications benefit from this." because every point you mention has some serious vaceats, related issues and known workarounds.
@hnasr
@hnasr 4 жыл бұрын
Correct that is why didn’t include indexes in the mix. Thanks for the feedback as usual
@vmdcortes
@vmdcortes 6 ай бұрын
I love your explanation, awesome!!! 🎉
@muustafaaahmed9782
@muustafaaahmed9782 Жыл бұрын
I really loved your method in describing this topic .
@rajbansal3663
@rajbansal3663 Жыл бұрын
Cassandra (NoSQL) uses LSM Tree which makes it a better choice for heavy writes in comparison to SQL databases, any thoughts on this?
@nishantgarg7497
@nishantgarg7497 4 жыл бұрын
Really awesome content. A really good source for me who is looking to improve the backend concepts. Really thank you for such good content. Just subscribed for updates
@hnasr
@hnasr 4 жыл бұрын
Glad it was helpful! and welcome to the community
@timbui5556
@timbui5556 2 жыл бұрын
Could you please teach us how to do columnar partition in Postgres? It's easy to find lessons on horizontal partitioning, but I can't find writings on how to do vertical. Thank you!
@MercedeX7
@MercedeX7 Жыл бұрын
it's called horizontal partitioning. read about it on net
@sexypradeepkumar
@sexypradeepkumar 3 жыл бұрын
Which databases stores both rowbased and column based structures?
@ap207
@ap207 11 ай бұрын
Absolutely amazing video. Thank you
@MohammedOmarBalousha
@MohammedOmarBalousha 7 ай бұрын
Great explanation
@ameyapatil1139
@ameyapatil1139 4 жыл бұрын
"Lets confused everybody by new names" : hahahaha well said ! great video thanks
@md.imrulhasan8757
@md.imrulhasan8757 3 жыл бұрын
Sir.... Here you said when searching for first_name it automatically load the final block.... it escape first block of first_name..... How can it find it? Is it because the the row_number is indexed in the db table? if not then why not find the final block using ssn?
@lambdaboss5528
@lambdaboss5528 Жыл бұрын
Great video and explanation, thank you.
@praveenX
@praveenX Жыл бұрын
Funny and effective, loved it 👍
@andreabondanini2509
@andreabondanini2509 Жыл бұрын
Amazing content!
@srb1855
@srb1855 2 жыл бұрын
this was excellent it cleared up the fud👍 thanx!
@virendrabhati6685
@virendrabhati6685 3 жыл бұрын
Great information in so simple way..... It's clear the concept in best of best way 👍. I loves your all videos....
@hnasr
@hnasr 3 жыл бұрын
Thanks Virendra 🙏
@williamfelippedeschamps7050
@williamfelippedeschamps7050 3 жыл бұрын
Great video, well explained, fun and infomative. I loved that, thanks dude!
@maheshnarayan6440
@maheshnarayan6440 Жыл бұрын
Great video. QQ: For columnar DB, if DB stores all the metadata about which block has 1006, won't it also store metadata about social security number 666? So we would need only 2 jumps instead of 3 jumps right?
@reactorscience
@reactorscience Жыл бұрын
1006 is the row id(internal to the database). The db only knows in which blocks do these intern ids exist. It doesn't store any such metadata for the other columns
@vanigs8726
@vanigs8726 2 жыл бұрын
ur awesome man .great explanation
@madanmohanpachouly6135
@madanmohanpachouly6135 2 жыл бұрын
Nicely explained
@therealdrag0
@therealdrag0 2 жыл бұрын
This column store sounds similar to inverted indexes that search engines (eg elastic search) use. Are there key differences there?
@michaelgeorge6765
@michaelgeorge6765 2 жыл бұрын
Thank you Hussien. really simple, good and funny.
@gyhuj1235
@gyhuj1235 3 жыл бұрын
Why can't we just do SELECT Salary from emp? will that be efficient or will it result in the entire row read and then it will be filtered? The table can be indexed for ssn or name.
@prateekraj1084
@prateekraj1084 3 жыл бұрын
awesome explanation for both row and column oriented db's
@antonsizou9075
@antonsizou9075 4 жыл бұрын
Thanks. Good info. Never know how column dbs work
@yanfung7299
@yanfung7299 Жыл бұрын
If let's say in a row oriented db, from your explanation the commas does not exist but just for displaying, how will the engine knows where to start to look for first name etc?
Жыл бұрын
For instance, PostgreSQL stores these sequences of values in tuple storage, one for each column in the table. The values are serialised and packed together to form the tuple. When querying data from a table, PostgreSQL uses the stored column names in the system catalogs to interpret the tuples' content correctly. The column names are used by the query planner and executor to map the data values from the tuple storage to their respective columns based on their positions in the tuple.
@KaranRaina95
@KaranRaina95 2 жыл бұрын
Hey Hussein, wouldn't it be fair to say that to get the advantages of column db in row db, we end up making indexes in row db?
@bigdata_journey
@bigdata_journey Жыл бұрын
Thanks bro, very useful
@Juasbhu
@Juasbhu 3 жыл бұрын
Question, column oriented is the same with family column Db?
@hnasr
@hnasr 3 жыл бұрын
Yes same name. Columnar and column store are other names.
@RandomShowerThoughts
@RandomShowerThoughts 2 жыл бұрын
another banger of a video
@natem889
@natem889 3 жыл бұрын
How do you work on 1 or less column table?? 🤔
@murugesanrm
@murugesanrm 3 жыл бұрын
Thank you very much for making this video with a real-time example. Much appreciated
@tirthpatel8364
@tirthpatel8364 3 жыл бұрын
Great explanation.
@sudharshantr8757
@sudharshantr8757 3 жыл бұрын
at 21:58 1006 was found directly using some "tricks".. Then why can't we use the same tricks to find 666:1006 in the first try?
@harshitagrawal8556
@harshitagrawal8556 2 жыл бұрын
Thank you so much for explaining this concept so beautifully and in such a great depth...I am a fan of your teaching.....
@abderrahmanemabroukmerabet9274
@abderrahmanemabroukmerabet9274 3 жыл бұрын
Really good video bro, I like what you do
@OfferoC
@OfferoC 3 жыл бұрын
nice explanation thank you
@ianokay
@ianokay Жыл бұрын
We generally want all the columns, that's what a record or document is
@oah8465
@oah8465 4 жыл бұрын
Dude that was sweet. Any chance of doing a video on file systems and mapping them to DB OPERATIONS
@rujhanarora7892
@rujhanarora7892 3 жыл бұрын
yup, I wonder if I increase the text value in a column or add a new column, how does it map to disk i/o
@pesetskyps
@pesetskyps 2 жыл бұрын
very clear. bravo!
@yxw9104
@yxw9104 2 жыл бұрын
Thank you so much!
@chunheguo9230
@chunheguo9230 3 жыл бұрын
Great vid. I am working with both data structure types :) Using the postgres as a row base to prepare it for a transformation into columnar for gpus to process :)
@hnasr
@hnasr 3 жыл бұрын
Nice! Your going HTAP
@chunheguo9230
@chunheguo9230 3 жыл бұрын
@@hnasr No, not going hybrid transactional, as the columnar data is being used as runtime in memory data until a bulk update changes it.
@minscj
@minscj 3 жыл бұрын
@@chunheguo9230 hi please could you give me more details how i can do the same? please reply
@chunheguo9230
@chunheguo9230 3 жыл бұрын
@@minscj Hi, the solution we went is proprietery, so I can't really go into details. I can however suggest that you take a look at the concept of apache arrow. www.dremio.com/announcements/introducing-apache-arrow/ has a nice diagram. We went very low level and didn't use many of the existing open-source abstraction layers. It all came down to understanding how the GPU's processing cycle works and the alignment of the columnar data to said cycle.
@benevans1377
@benevans1377 4 жыл бұрын
Hey bit of an off topic question why did you change your name from igeometry?
@hnasr
@hnasr 4 жыл бұрын
Moving from GIS to personal brand so I get to cover multiple topics mainly.
@prem912490022
@prem912490022 4 жыл бұрын
Waiting for your udemy course. Great stuff as usual.
@aminebenkhouya7295
@aminebenkhouya7295 3 жыл бұрын
u r the best
@mohammedkandelhassan
@mohammedkandelhassan 3 жыл бұрын
Great Video!
@peterisawesomeplease
@peterisawesomeplease 4 жыл бұрын
Good video but a couple small things. I think the video was slower than it needed to be. Like too many tangent and repetition. We can pause and go back and forth so no need to artificially slow it down. Also i think for this topic leaving out indexes does not make sense. Almost no one is going to choose to use a column oriented db before trying indexes.
@saadowain3511
@saadowain3511 3 жыл бұрын
Hussain Can you please make a short video of different kinds if DBs who are the providers.. what are the ideal uses.
@luckyboy1986
@luckyboy1986 3 жыл бұрын
Thank you! That's very clear !
@mrluismartinezzz
@mrluismartinezzz 4 жыл бұрын
Hussein, thanks for the videos. Today imma try & figure out how to download a KZbin video with vanilla NodeJs if I don’t figure imma ask you guys for help
@darrenz5557
@darrenz5557 3 жыл бұрын
hi! can you do a vid with indexes? the visuals are so helpful!
@carlitoz450
@carlitoz450 4 жыл бұрын
interetsting video, shouldn't data in column oriented db be stored sorted ?
@hnasr
@hnasr 4 жыл бұрын
Not necessary, the table data aren't stored sorted usually otherwise writing becomes difficult. Indexes on the other hand are sorted
@anikettiwari6885
@anikettiwari6885 3 жыл бұрын
@Hussein I love your database videos. Could you create a video on how to Alter large tables which has millions or maybe billions of records without a downtime in Postgres.
@dylanngo4454
@dylanngo4454 Жыл бұрын
Thank bro 🎉
@instantshinramen
@instantshinramen 2 жыл бұрын
"The devil!" "Save the ducks guys save the ducks" Now I understand databases.
@eric7758
@eric7758 4 жыл бұрын
Great Video Hussein.. when are you doing webrtc?
@hnasr
@hnasr 4 жыл бұрын
I am working on the slides, once thats done Ill work on the demos so maybe a week or two
@eric7758
@eric7758 4 жыл бұрын
@@hnasr Thanks
@gabriellegall8278
@gabriellegall8278 4 жыл бұрын
Thank you so much ! it was so clear
@ramadhan6273
@ramadhan6273 4 жыл бұрын
Hussein I wanna know how you had that level of curiosity machallah? is it something gained by training?
@hnasr
@hnasr 4 жыл бұрын
It is pure curiosity and asking why and having the humility to learn takes time.
@umapathybabu8397
@umapathybabu8397 4 жыл бұрын
nice demonstration
@ganeshbb1
@ganeshbb1 2 жыл бұрын
Thank you..
@Nicoblabla
@Nicoblabla 3 жыл бұрын
great video!
@Firatayrilik
@Firatayrilik 3 жыл бұрын
Perfect!
@vinitsunita
@vinitsunita 2 жыл бұрын
Lesson learnt from the video, Save the ducks :p
@jasont6421
@jasont6421 2 жыл бұрын
Lmao, what's the reference to every time you write to a disk that a duck dies? 😹
@07rohitpd
@07rohitpd 2 жыл бұрын
"...they have all this meta-data, mumbo-jumbo" -Hussein
@stormcorexz
@stormcorexz 3 жыл бұрын
I think I can not imagin how locking are working on column oriented database, it is a nightmare unless it has it's own deifferent techniques
@muhammaddavatgar4973
@muhammaddavatgar4973 3 жыл бұрын
love you sir
@07rohitpd
@07rohitpd 2 жыл бұрын
"SAVE THE DUCK", guys, "SAVE THE DUCK".
@pdeezz
@pdeezz 2 жыл бұрын
You’re hilarious 😂 and offer a great explanation. Thanks! #savetheducks
@shubhamjaiswal7608
@shubhamjaiswal7608 2 жыл бұрын
Nasser, great video. But one observation, clearly you were High while making this video.🤣
@therealdrag0
@therealdrag0 2 жыл бұрын
Clarification: “column stores” and “wide column stores” are quite different! I watched this expecting to learn about BigTable/Cassandra. But they have key differences so this video doesn’t apply to them. TIL
@hnasr
@hnasr 2 жыл бұрын
Correct wide column is different. Group of columns into a column family. Best of both words
@icbm7
@icbm7 3 жыл бұрын
🦆🦆🦆🦆 Great video!
@Juasbhu
@Juasbhu 3 жыл бұрын
Hahahahha you're so funny. Good video. Thanks
@hectorge753
@hectorge753 3 жыл бұрын
Six Six Six, the devil... SUBSCRIBED
@vivekshah1664
@vivekshah1664 9 ай бұрын
save the ducks guys!
@sbylk99
@sbylk99 3 жыл бұрын
omg, why only you can explain complicated problems in easy words! Tutorials always say "NoSql is good for fast write, scalable, not suitable for complicated query", but no one explain clearly as you! Column based NoSql is just for simple data write and AGGREGATE query. One example is number of likes of a video. Just define a simple table, (video_id, user_like_id), then sum(user_like_id), this scenario is the best for NoSQl. Or sensor data, not complicated(can tolerate write slow), but lots of aggregate query, like min(), max(), average().
@kumailn7662
@kumailn7662 3 жыл бұрын
hussein kindly be straight forward on the videos, you to much talkative i like that but i more information centric information seeker. if you provide to the point would be appreciated alot, second don't mixed or drag the words while talking.
@julianzhai6321
@julianzhai6321 2 жыл бұрын
Awe man but ducks are delicious
@vraymond2048
@vraymond2048 3 жыл бұрын
"Lets confused everybody by new names", make them look like a fool who can not understand things, thus makes us more "professional" and "experts"!
@LotusSoftPvtLtd
@LotusSoftPvtLtd 2 күн бұрын
In this series, I want to previous 2 videos, but member only. So, I think this channel is useless for me.
@GerardBeaubrun
@GerardBeaubrun 2 жыл бұрын
666 thank you for the laughter my friend
@RooftopDuvet
@RooftopDuvet Жыл бұрын
Great work here! So many explanations of this are too high level, and miss the key differentiator: i.e. the way in which the data is accessed. You did a great job and did it at your own pace. Hope you find success with this style.
@MercedeX7
@MercedeX7 Жыл бұрын
jack of all trades master of none just be a teacher and not Jim Carry
How row oriented and column oriented db works?
21:26
Tech Dummies Narendra L
Рет қаралды 42 М.
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Best Practices Working with Billion-row Tables in Databases
13:41
Hussein Nasser
Рет қаралды 71 М.
When should you shard your database?
21:20
Hussein Nasser
Рет қаралды 79 М.
Database Indexing Explained (with PostgreSQL)
18:19
Hussein Nasser
Рет қаралды 323 М.
How Do Databases Store Tables on Disk? Explained both SSD & HDD
18:56
Hussein Nasser
Рет қаралды 29 М.
7 Database Paradigms
9:53
Fireship
Рет қаралды 1,6 МЛН
What is a Columnar Database? (vs. Row-oriented Database)
8:20
Anton Putra
Рет қаралды 4,1 М.
How Discord Stores Trillions of Messages | Deep Dive
1:08:33
Hussein Nasser
Рет қаралды 177 М.
Advanced MySQL Index Locking Explained
40:34
Hussein Nasser
Рет қаралды 6 М.
Horizontal vs Vertical Database Partitioning
10:22
Hussein Nasser
Рет қаралды 38 М.
B-tree vs B+ tree in Database Systems
31:50
Hussein Nasser
Рет қаралды 55 М.