What is a Columnar Database?

Поділитися
Вставка
  • Опубліковано 10 січ 2025

КОМЕНТАРІ • 70

  • @AbdallahBoukouffallah
    @AbdallahBoukouffallah 20 годин тому +2

    After nearly 14 years, and still the best explanation, so absurd

  • @chrislzm
    @chrislzm 6 років тому +29

    Thanks. For some reason all the other explanations I found on Google are so complicated. Was just trying to get a basic understanding, and this was great!

  • @pablocorrera5360
    @pablocorrera5360 5 місяців тому +2

    Best explanation on the internet. Thank you

  • @Intricity101
    @Intricity101  14 років тому +2

    This video updates a mistake that had been nagging me for weeks. ghettoghurle pointed out the mistake, and it pushed me to replace the old video with this one. Thanks ghettoghurle!

  • @ThroughMyLenz9872
    @ThroughMyLenz9872 7 місяців тому

    Thanks a mil! This is the best explanation on columnar databases ever. On point and very easy to grasp thanks to the use of an example illustration.

  • @codefreak3836
    @codefreak3836 5 років тому +5

    Man you really did simplify it. Thanks a bunch. Great Job on the video!

  • @nirshadnijam2291
    @nirshadnijam2291 3 місяці тому

    A 13 year old video did a brilliant job in explaining this concept! Kudos.

  • @Intricity101
    @Intricity101  10 років тому +9

    Certainly this can be done through indexing. Any really good DBA can synthesize this, but columnar DB vendors focus on providing much of the columnar optimization out of the box. The purpose of the video is to try and simplify the concept to business people so they aren't confused about why their traditional row based queries aren't performing. A lot of the Columnar DB vendors make it appear that traditional databases are unfit for service when the reality is that it's a structural change.

    • @amanaggarwalgogo
      @amanaggarwalgogo 4 роки тому +2

      An index over the row-based DB still wont be as fast because, those indexes refer to the primary key and not the value of the field.

    • @super-ulitka
      @super-ulitka 6 місяців тому

      @@amanaggarwalgogo Not exactly true. There are index-only scans and covering indexes supported by all primary vendors.

  • @preuttipuawade9402
    @preuttipuawade9402 Рік тому

    This is the simplest explanation. Thank you.

  • @aidanclifford2164
    @aidanclifford2164 4 роки тому

    This made me understand the concept so much better than reading

  • @jesusantonio17194
    @jesusantonio17194 Рік тому

    Excellente! Simple and straigh to the point, thanks!

  • @user679jk7
    @user679jk7 8 місяців тому

    Thank you so much for the nice and clear explaination!

  • @pbastab
    @pbastab 4 роки тому +1

    Great video thank you! Nice and short

  • @Intricity101
    @Intricity101  12 років тому +1

    Was a mistake from a former video on the same topic. This video fixes that mistake, it was regarding the database type.

  • @Leonardo-jv1ls
    @Leonardo-jv1ls 5 років тому +14

    "Hi, i'm Sherlock Holme"...

  • @ilovebyungsoo
    @ilovebyungsoo 11 років тому

    It is a concise and easy to understanding presentation. I keep watching other videos uploaded. I love them.

  • @bilalshafqat1634
    @bilalshafqat1634 Рік тому

    Perfect explaination.

  • @mercantilism954
    @mercantilism954 4 роки тому

    So easy to understand. Thank you

  • @pradyumnaacharya1187
    @pradyumnaacharya1187 Рік тому

    amazing content

  • @9gager87
    @9gager87 7 років тому

    Best explanation I've seen.

  • @jayak3768
    @jayak3768 3 роки тому

    Also if another American league team is added it will have row id outside the sequence of 1 - 258. As 259 onwards start national teams. So in this case the query won't be as simple of 1 - 258. It will need to include team such as 569 row ID.

    • @Intricity101
      @Intricity101  3 роки тому

      Here’s a white paper on it that can explain in a little more detail www.intricity.com/learningcenter/snowflake-is-a-semi-not-a-motorcycle

  • @jackaubrey7547
    @jackaubrey7547 10 років тому +1

    Any decent RDBMS can accomplish this if you normalize it to 6NF and then put it back together as a view. A query against the view would access only the underlying tables needed.

  • @commenttator2123
    @commenttator2123 10 років тому +4

    So how is this different than a relational database?
    select League, Team
    from MyTable
    where League = 'American'
    Especially if I have and index on League and a numeric value for the American league

    • @someguyO2W
      @someguyO2W 7 років тому +1

      Comment Tator it's still an rdbms. The underlying storage system is what differs.

    • @apamwamba
      @apamwamba 5 років тому +1

      @@someguyO2W What differs are the internals... luckily most of us mere mortals will never need to know these details..which is kind of cool

    • @someguyO2W
      @someguyO2W 5 років тому

      @@apamwamba very cool. If we had to know everything, we'd explode!

  • @matheusrodrigues-kf6pj
    @matheusrodrigues-kf6pj 3 роки тому

    best ad ever

  • @Intricity101
    @Intricity101  10 років тому +2

    The point of the video series is to simplify the concept not to do DBA training.

  • @MrRrkarthick
    @MrRrkarthick 12 років тому

    good introduction video.. could you also explain how the data is stored in the database ? how is the ID column associated with the "Team" column ?

  • @athuljc
    @athuljc 8 років тому +4

    Thank you. This was really informative. :)

  • @PRABHATKUMAR-sc4qo
    @PRABHATKUMAR-sc4qo 5 років тому +1

    Awesome explanation.. thank you

  • @myskullisred
    @myskullisred 8 років тому +1

    So, all data in the columns are sorted? Why couldn't there be 20 American league teams listed first, then 10 National league teams, then 5 more American league teams?

  • @shafighshahbazi928
    @shafighshahbazi928 10 років тому

    excellent visual comparison of these 2 technologies, what produkt did you use for your presentation purpose?

  • @elpulpeteerchannel
    @elpulpeteerchannel 6 років тому

    Simple and well explained! Thank you.

  • @JK-ug7rm
    @JK-ug7rm 8 років тому

    You stated the performance problem is reading every row and every column; the columns that aren't necessary too. I assume it is these unnecessary columns that are causing the performance. So why not the other solution of only selecting the column you require and not SELECT *
    Or does the query engine not actually work that way?

    • @surajmon123
      @surajmon123 8 років тому +3

      A row store stores the entire row as a single piece. So if there 10 records, it stores each record as a separate piece.Hence even if you give select a,b from emp, it has to scan all the columns in that record.Whereas columnar database stores data into columns.So the values of each column is stored separately. Hence if you give select a,c from emp, then it will select/read only column a and c even though there are 100's of other columns.That 's the reason why columnar databases are good for read intensive and aggregate queries/use cases.
      Hope this helps

  • @krantikasi5440
    @krantikasi5440 6 років тому

    Thanks a ton.. this question is what I was searching for. great explanation..

  • @jayak3768
    @jayak3768 3 роки тому

    What if I want to retrieve team and player name. Each player has to be matched with its team. So u need to have to row id in each column for the linking to work.

    • @Intricity101
      @Intricity101  3 роки тому +1

      When columnar databases run their queries, much of the query optimization is about what data is NOT being queried. Now recognize that in most cases queries are not ran for single records (like an OLTP use case). In most cases the pull of data is in mass quantities. The query optimizer is going to attempt at first to eliminate records where the desired results are not present. So if you parameterize your queries by players of certain teams, the query optimizer will first eliminate the teams you don't want to eliminate additional scanning. Then it will dive into scanning down the record set, and there are optimizations for that scanning as well based on how the data is partitioned.
      In the case where you were wanting a single record the performance will NOT be good. This is because the overhead isn't tuned for the use case.
      Here's a good whitepaper on the topic which highlights Snowflake, but dives into how it works a little more.

  • @makmerfijs
    @makmerfijs 11 років тому

    What about setting an complex index on ID and League? performance will be the same

  • @gaatutube
    @gaatutube 5 років тому +1

    Nicely explained. Thanks.

  • @Rami_Zaki-k2b
    @Rami_Zaki-k2b 3 роки тому

    You need to put "FOR NON ENGINEERS" in the title. You have watered it down to the point that it is just good for chitchat. And honestly I knew what was coming when you used a baseball example in a DB tutorial.

    • @Intricity101
      @Intricity101  3 роки тому

      The channel name is Intricity101… 101 is an intro course in college.

    • @Rami_Zaki-k2b
      @Rami_Zaki-k2b 3 роки тому

      @@Intricity101 My bad, just had a rough day 🌹

  • @AmalAloun
    @AmalAloun 10 років тому

    nice presesntation, and easy for people to get what is columnar database.

  • @ThePr0Br0
    @ThePr0Br0 5 років тому +1

    Overused statement but
    3 minutes of this beats hours of uni lecturers

  • @zszoubair4500
    @zszoubair4500 7 років тому +1

    Thank you. This was really helpfull

  • @deamer44
    @deamer44 9 років тому

    Very good explanation.

  • @kumarc4853
    @kumarc4853 3 роки тому +1

    thank you

    • @Intricity101
      @Intricity101  3 роки тому

      Thanks! Give us a share on socials. We're hoping to raise awareness about our channel.

  • @fazlehadiazmat7g803
    @fazlehadiazmat7g803 8 днів тому

    fucking amazingly explained simple to te point fast and guddddddddd

  • @DontTakeCrack
    @DontTakeCrack 4 роки тому

    i just started learning the term column family and i guess this is the same beast.

  • @EricRini
    @EricRini 10 років тому +1

    Yes let's compare an unoptimized table scan to an ideal query scenario on a purpose optimized database. Adding a covering index for the query (and avoiding a table scan) would yield similar performance characteristics.

  • @jthillam
    @jthillam 11 років тому

    The difference is that every column in a columnar store is optimized not just the ID and League. This way the users don't have to be DBA's to get performance in their queries.
    Tactically, you can avoid purchasing a columnar store by trying to preempt the requirements and build all the indices ahead of time, but then you'd need a crystal ball in your back pocket.

  • @k4621
    @k4621 11 років тому

    nice explanation! thank you!

  • @amitdarji7852
    @amitdarji7852 10 років тому

    very well articulated

  • @JoeBaloney
    @JoeBaloney Рік тому

    Sounds like index table to me.

  • @someguyO2W
    @someguyO2W 7 років тому

    Thanks, this really helps

  • @govind3850
    @govind3850 2 роки тому

    Sybase is the best Columnar database .

  • @welwelbalt7055
    @welwelbalt7055 2 роки тому

    you need to adjust the content

  • @shikharutube
    @shikharutube 8 років тому

    well presented

  • @pravatyadav3623
    @pravatyadav3623 2 роки тому

    This came in my exam but i didn't do it

  • @neilaspin008
    @neilaspin008 11 років тому

    Excellent

  • @ashutoshbhargave2766
    @ashutoshbhargave2766 11 років тому

    Thanks a ton.Awesome.

  • @pradiptabiswas7819
    @pradiptabiswas7819 5 років тому

    thanks

  • @mohanishsaim9537
    @mohanishsaim9537 9 місяців тому

    Thanks