<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Column stores vs. vertically-partitioned row stores</title>
	<atom:link href="http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/</link>
	<description>Choices in data management and analysis</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:48:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
	<item>
		<title>By: More grist for the column vs. row mill &#124; DBMS2 -- DataBase Management System Services</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-105029</link>
		<dc:creator>More grist for the column vs. row mill &#124; DBMS2 -- DataBase Management System Services</dc:creator>
		<pubDate>Sun, 21 Dec 2008 02:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-105029</guid>
		<description>[...] Abadi and Sam Madden are at it again, following up on their blog posts of six months arguing for the general superiority of column stores over row stores (for analytic query processing).  The gist is to recite a number of bases for superiority, beyond [...]</description>
		<content:encoded><![CDATA[<p>[...] Abadi and Sam Madden are at it again, following up on their blog posts of six months arguing for the general superiority of column stores over row stores (for analytic query processing).  The gist is to recite a number of bases for superiority, beyond [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Curt Monash</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93358</link>
		<dc:creator>Curt Monash</dc:creator>
		<pubDate>Sat, 09 Aug 2008 03:46:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93358</guid>
		<description>I wouldn&#039;t say that at all about columnar databases.

What I would say is that, Sybase IQ excepted, I can&#039;t think of a columnar product mature enough to do a great job on concurrency or mixed workloads YET.

As for impugning your intentions -- I think that&#039;s entirely appropriate, given that you&#039;re being a thorough-going jerk.

CAM</description>
		<content:encoded><![CDATA[<p>I wouldn&#8217;t say that at all about columnar databases.</p>
<p>What I would say is that, Sybase IQ excepted, I can&#8217;t think of a columnar product mature enough to do a great job on concurrency or mixed workloads YET.</p>
<p>As for impugning your intentions &#8212; I think that&#8217;s entirely appropriate, given that you&#8217;re being a thorough-going jerk.</p>
<p>CAM</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Walters</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93349</link>
		<dc:creator>Bill Walters</dc:creator>
		<pubDate>Sat, 09 Aug 2008 01:04:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93349</guid>
		<description>Yet Curt you refuse to directly address my questions instead you attempt to dismiss them and then when that doesn&#039;t work you impugn my intentions, hardly the behavior expected from a blog of open ideas.  So are you saying that the columnar approach is not intended to support mixed workloads and high levels of concurrency?  It&#039;s just a question.</description>
		<content:encoded><![CDATA[<p>Yet Curt you refuse to directly address my questions instead you attempt to dismiss them and then when that doesn&#8217;t work you impugn my intentions, hardly the behavior expected from a blog of open ideas.  So are you saying that the columnar approach is not intended to support mixed workloads and high levels of concurrency?  It&#8217;s just a question.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Curt Monash</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93299</link>
		<dc:creator>Curt Monash</dc:creator>
		<pubDate>Fri, 08 Aug 2008 03:06:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93299</guid>
		<description>Bill,

It used to be that you trolled regarding some patent lawsuit among columnar DBMS vendors, which as I pointed out (after deleting the other 11 or so copies of your spam) is quite irrelevant to software purchase decisions.  

Now you seem to be trolling about columnar DBMS&#039; lack of suitability for uses that they&#039;re neither being sold nor bought for.  Not very interesting either.

CAM</description>
		<content:encoded><![CDATA[<p>Bill,</p>
<p>It used to be that you trolled regarding some patent lawsuit among columnar DBMS vendors, which as I pointed out (after deleting the other 11 or so copies of your spam) is quite irrelevant to software purchase decisions.  </p>
<p>Now you seem to be trolling about columnar DBMS&#8217; lack of suitability for uses that they&#8217;re neither being sold nor bought for.  Not very interesting either.</p>
<p>CAM</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Curt Monash</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93265</link>
		<dc:creator>Curt Monash</dc:creator>
		<pubDate>Thu, 07 Aug 2008 16:58:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93265</guid>
		<description>Balaji,

Well, all systems are neater on paper than in real life. :)

As for your ETL question:

Everybody has a true batch ETL option.  But they also need to deal with cases where customers require sub-day latency.   As a practical matter, 5-10 minute latency is a common design target.  If a user truly needs latency much lower than that, they may have to pay up for a solution with the strengths -- and weaknesses! -- of an OLTP relational DBMS.

So how do you add records every few minutes to a column store?  Adding them one record at a time is NOT a good idea, since each time you update anything you have to touch every column.   Hence, the alternative is some kind of &quot;microbatch&quot; -- gather all the records that come in in RAM, and write them to disk once every few minutes.   The column store has to know to, on any query, look for data in two places -- RAM and disk.

Vertica and ParAccel differ in how they do this.  ParAccel says &quot;Hmm.  That sounds a lot like a DBMS&#039; ordinary RAM cache.  So we&#039;ll accept records straight into cache, and make sure our cache/disk synchronization is robust enough.&quot;  

Vertica, by way of contrast, has a separate in-memory data store, and indeed keeps researching whether the in-memory part should be a row or column store.  Not coincidental to Vertica&#039;s decision to have a separate store for ingestion is the fact that the ParAccel solution wouldn&#039;t work for them anyway.  Vertica takes compressed data from disk and does query operations on it in its compressed form.  Hence, you can&#039;t just bang an uncompressed new record into the RAM part of the system and expect it to fit well.

Best,

CAM</description>
		<content:encoded><![CDATA[<p>Balaji,</p>
<p>Well, all systems are neater on paper than in real life. <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>As for your ETL question:</p>
<p>Everybody has a true batch ETL option.  But they also need to deal with cases where customers require sub-day latency.   As a practical matter, 5-10 minute latency is a common design target.  If a user truly needs latency much lower than that, they may have to pay up for a solution with the strengths &#8212; and weaknesses! &#8212; of an OLTP relational DBMS.</p>
<p>So how do you add records every few minutes to a column store?  Adding them one record at a time is NOT a good idea, since each time you update anything you have to touch every column.   Hence, the alternative is some kind of &#8220;microbatch&#8221; &#8212; gather all the records that come in in RAM, and write them to disk once every few minutes.   The column store has to know to, on any query, look for data in two places &#8212; RAM and disk.</p>
<p>Vertica and ParAccel differ in how they do this.  ParAccel says &#8220;Hmm.  That sounds a lot like a DBMS&#8217; ordinary RAM cache.  So we&#8217;ll accept records straight into cache, and make sure our cache/disk synchronization is robust enough.&#8221;  </p>
<p>Vertica, by way of contrast, has a separate in-memory data store, and indeed keeps researching whether the in-memory part should be a row or column store.  Not coincidental to Vertica&#8217;s decision to have a separate store for ingestion is the fact that the ParAccel solution wouldn&#8217;t work for them anyway.  Vertica takes compressed data from disk and does query operations on it in its compressed form.  Hence, you can&#8217;t just bang an uncompressed new record into the RAM part of the system and expect it to fit well.</p>
<p>Best,</p>
<p>CAM</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Balaji</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93264</link>
		<dc:creator>Balaji</dc:creator>
		<pubDate>Thu, 07 Aug 2008 16:10:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93264</guid>
		<description>On Paper (and following the web blogs) Column store is neat and clean compared to row stores like Oracle or Teradata ( that i have worked extensively) that requires manual tunning w.r.t index (bit map as in the case of Oracle and careful selection of primary index in the case of Teradata (Primary Key and Primary index in teradata are slightly different)) and preparation of Materialized views or Join index in case or teradata. Although similar to materialized view column stores do have &quot;Projections&quot;.. the implementation of Projections on an MPP environment again on Paper seems neat !. What confuses me is the tuple moving insert concept that i am not used to when compared with regular batch movement of data (ETL jobs that start at 2 am and finish by 5 am daily). Otherwise i love column stores and combined with mondrian presentation of BI info is a potent combination. My 2cents ! ;-)</description>
		<content:encoded><![CDATA[<p>On Paper (and following the web blogs) Column store is neat and clean compared to row stores like Oracle or Teradata ( that i have worked extensively) that requires manual tunning w.r.t index (bit map as in the case of Oracle and careful selection of primary index in the case of Teradata (Primary Key and Primary index in teradata are slightly different)) and preparation of Materialized views or Join index in case or teradata. Although similar to materialized view column stores do have &#8220;Projections&#8221;.. the implementation of Projections on an MPP environment again on Paper seems neat !. What confuses me is the tuple moving insert concept that i am not used to when compared with regular batch movement of data (ETL jobs that start at 2 am and finish by 5 am daily). Otherwise i love column stores and combined with mondrian presentation of BI info is a potent combination. My 2cents ! <img src='http://www.dbms2.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Curt Monash</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93237</link>
		<dc:creator>Curt Monash</dc:creator>
		<pubDate>Thu, 07 Aug 2008 06:42:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93237</guid>
		<description>Bill,

You&#039;re being overharsh.  Even very large companies often have huge data marts with fairly low-concurrency analytic workloads.

CAM</description>
		<content:encoded><![CDATA[<p>Bill,</p>
<p>You&#8217;re being overharsh.  Even very large companies often have huge data marts with fairly low-concurrency analytic workloads.</p>
<p>CAM</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Curt Monash</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93236</link>
		<dc:creator>Curt Monash</dc:creator>
		<pubDate>Thu, 07 Aug 2008 06:40:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93236</guid>
		<description>DW Consultant,

I didn&#039;t bring up the subject of range partitioning.  Abadi and Madden -- the extremely smart column store proponents -- did.

CAM</description>
		<content:encoded><![CDATA[<p>DW Consultant,</p>
<p>I didn&#8217;t bring up the subject of range partitioning.  Abadi and Madden &#8212; the extremely smart column store proponents &#8212; did.</p>
<p>CAM</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Walters</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93200</link>
		<dc:creator>Bill Walters</dc:creator>
		<pubDate>Thu, 07 Aug 2008 02:44:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93200</guid>
		<description>This strikes me as more theory based discussion that is completely divorced from the realities of corporate computing.  Fortune 100 companies that rely on large scale data analytics would be better served by a discussion of real world, verifiable examples of production implementations of the columnar approach that focus on; concurrency in mixed workload situations, the ability to provide real time integration to ETL applications that reside on disparate hardware/operating system platforms, 92 ANSI SQL and 99 Analytical Windows compliance, the ability to load data from transactional systems, and fail over and recovery characteristics.  Until the columnar vendors can provide examples of production applications and describe their approach in these areas the entire discussion is entirely intellectual and frankly meaningless.</description>
		<content:encoded><![CDATA[<p>This strikes me as more theory based discussion that is completely divorced from the realities of corporate computing.  Fortune 100 companies that rely on large scale data analytics would be better served by a discussion of real world, verifiable examples of production implementations of the columnar approach that focus on; concurrency in mixed workload situations, the ability to provide real time integration to ETL applications that reside on disparate hardware/operating system platforms, 92 ANSI SQL and 99 Analytical Windows compliance, the ability to load data from transactional systems, and fail over and recovery characteristics.  Until the columnar vendors can provide examples of production applications and describe their approach in these areas the entire discussion is entirely intellectual and frankly meaningless.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DW Consultant</title>
		<link>http://www.dbms2.com/2008/08/06/column-stores-vs-vertically-partitioned-row-stores/#comment-93189</link>
		<dc:creator>DW Consultant</dc:creator>
		<pubDate>Thu, 07 Aug 2008 00:55:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.dbms2.com/?p=479#comment-93189</guid>
		<description>Range Partition has been their as long as database have been. DatAllegro or Netezza cannot even compare to a Column store when it comes to scan performance or joining large tables. Range partitions are not valid under adhoc and adhoc is what true analytics is all about.

Netezza might have a chance in that arena but Column stores is the way to go for true adhoc.</description>
		<content:encoded><![CDATA[<p>Range Partition has been their as long as database have been. DatAllegro or Netezza cannot even compare to a Column store when it comes to scan performance or joining large tables. Range partitions are not valid under adhoc and adhoc is what true analytics is all about.</p>
<p>Netezza might have a chance in that arena but Column stores is the way to go for true adhoc.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

