Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

snydeq writes "InfoWorld's Frank Ohlhorst discusses how virtualization, commodity hardware, and 'Big Data' tools like Hadoop are enabling IT organizations to mine vast volumes of corporate and external data — a trend fueled increasingly by companies' desire to finally unlock critical insights from thus far largely untapped data stores. 'As costs fall and companies think of new ways to correlate data, Big Data analytics will become more commonplace, perhaps providing the growth mechanism for a small company to become a large one. Consider that Google, Yahoo, and Facebook were all once small companies that leveraged their data and understanding of the relationships in that data to grow significantly. It's no accident that many of the underpinnings of Big Data came from the methods these very businesses developed. But today, these methods are widely available through Hadoop and other tools for enterprises such as yours.'"

I think that the real innovation will be a variation of SQL that allows for the persistence of queries, such that they continue to yield new results as new data is found to match them in the database. If you have a database of a trillion web pages, and you continue to put more in, it doesn't make sense to re-scan all of the existing records each time you decide you need to get the results of the query again. It should be possible, and far more computationally efficient to have a stream of results from a LiveSQL query that can feed a stream, instead of batch mode.

I've registered the domain name livesql.org as a first step to helping to organize this idea and perhaps set up a standard.

Interesting idea. Basically would need to establish event triggers on relevant tables. Should also be able to invalidate results that were previously found, and provide updates as well. Would require a lot of memory to persist enough information about the previous results that you don't end up with duplicates. I'll try and check in when you actually have a site.

There are some serious technical challenges to overcome when you think about actually implementing something like this.

Take something like "select stddev(column) from table" - there's no way to get an incremental update on that expression given the original data state and a point mutation to one of the entries for the column. Any change cascades globally, and is hard to recompute on the fly without scanning all the values again.

This issue is also present in queries using ordered results (as changes to a single value participating in the ordering would affect the global ordering of results for that query).

The issue that "Big Data" presents is really the need to run -global- data analysis on extremely large datasets, utilizing data parallelism to extract performance from a cluster of machines.

What you're suggesting (basically a functional reactive framework for querying volatile persistent data), would still involve a number of limitations over the SQL model: basically disallowing the usage of any truly global algorithm across large datasets. Tools like Hadoop get around these limitations by taking the focus away from the data model (which is what SQL excels in dealing with), and putting it on providing an expressive framework for describing distributable computations (which SQL is not so great at dealing with).

Take something like "select stddev(column) from table" - there's no way to get an incremental update on that expression given the original data state and a point mutation to one of the entries for the column. Any change cascades globally, and is hard to recompute on the fly without scanning all the values again.

Stddev is trivial to recompute on the fly and I'd be surprised if any decent sql engine didn't compute it one row at a time. Store mean(column) and mean(column^2). SD = sqrt(mean(c^2)-mean(c)^2) not considering the unbiasing stuff. Add new row value deltas to both, do some simple math and you're done.

Now medians and quantiles are a bitch.

Frankly complex data mining of large data is a pain in the ass on hadoop as much as anywhere else. You can't do anything too global with hadoop because then you'd need to s

Frankly complex data mining of large data is a pain in the ass on hadoop as much as anywhere else. You can't do anything too global with hadoop because then you'd need to send all your data to one box anyway. You need specialized complex algorithms since you can only keep a fraction of your data in memory at a time. Simple regression? Have fun.

That said if you're already using hadoop it's quite possible you're using some sort of online learning algorithm anyway for just that reason so converting it to real time updating would be easy.

Maybe. But I'm looking at doing it with pushing data to two boxes and two hadoop clusters (mainly for dr purposes). As for complex algorithms, Hive solves many of those problems with allowing people with SQL backgrounds to mine their information without learning a new language.

It's new, it's not perfect but then again, it is improvement over what's already in the market. Over the next couple years I plan on becoming a hadoop expert (even looking at learning java now).

I should have thought things out a bit better with the stddev example - and realized that it does indeed have a reasonable closed form. Good catch.

Complex data mining is hard everywhere, that's true. The problem is that even straightforward data mining is hard once the dataset sizes reach into the hundred-millions or billions or trillions in size (implying absolute dataset sizes of terabytes or more). For google it's webpages, for biology labs it's sequences.

It turns out there is already a protocol [waveprotocol.org] in place for doing a lot of the grunt work. It allows for the federation of changes to a given object across organizations. While I wouldn't want to try build an ACID database on it in my free time, I supposed it could eventually be done with a larger team of programmers.

A query can be distributed across machines, which is what the map-reduce meme is all about. The next stage is to eliminate redundant calculations across time. LiveSQL will do that.

I have worked with materialized views and, yes, you are entirely correct. It takes one "CREATE MATERIALIZED VIEW" statement to have exactly what GP is describing. Unfortunately, in my experience, Oracle often requires so much tuning that a roll-your-own solution can be favorable (though less uniform and thus not suit-friendly).

Dells are cheaper than IBM, for the amount of performance they provide. Big Data is best handled in a large cluster, which provides reliability and parallelism to process a highly-scalable amount of data in a very short time. Beyond a certain point, high-end machines just raise the cost of failure, where low-end machines provide only marginally lower performance.

A mainframe is>/i> a large cluster these days, together with the most robust physical hardware. There's a reason that some mainframes have had an uptime of more than a decade, with almost every part having been upgraded along the way.

Hadoop and similar products are finally making mainframe-style data processing cheaper on commodity hardware - or, rather, making such solutions available to the general public. Google's been doing it forever. Still, if you're mainframe has an uptime longer than Google

Mainframes don't offer the data capacity that a large cluster does. The topic here is handling big datasets (measured in the billions of records), and single machines just can't do that as efficiently as a cluster, no matter how beefy they are. The future is parallel.

Mainframes and large multiprocessor machines have been handling multi-billion row data sets on RDBMS systems for a very long time. Data warehouses are commonly into the billions of rows. What commodity clusters provide is not efficiency--they often make poorer use of available cycles and repeat work to achieve goals.

What large commodity clusters provide is a price per cycle low enough that the owner doesn't have to worry about efficiency. For example, Google's Dean and Ghemawat ("MapReduce: Simplified Data

A mainframe stopped being a "single machine" in any sense but the physical chassis a long time ago. They are clusters, from a performance perspective. The z196 will put 80 cores (each quite beefy compare to an Intel core) in the main chassis, but allow quite a few more blades to be added for DB query processing and similar tasks (112 blades per node, not sure how many nodes are supported, but I suspect max config will be thousands of cores).

It isn't about Facebook so much as it's a shift in what problems are practically solvable.

First, realize that traditional approaches like SQL are limited mostly by the single box (or the few mirrors) the platform runs on. Querying a large (a billion rows) table can take minutes on a very fast machine, hours if there's significant disk access needed, and months if the query's complex enough. Clusters can process those same billion records far faster, bringing that time down from months to hours, or even seconds for a simple scan. Advances in cluster computing over the last few years have made this parallel processing much easier.

The promise is that problems that were previously too big to even think about are now easy. If your solved problem is something people want, like showing what their friends are up to, your product will do well.

You do realize that 'a cluster' is really just 'a bunch of mirrors' that you're distributing the query across... right? So yes, two is more than one, and two can be faster than one. Thats true regardless of what you call it. Two mirrored machines ARE a cluster. Hell the summary makes it sound like they want to run virtual machines as part of the cluster... probably running on the same VM server...

Clusters REALLY AREN'T DOING ANYTHING WE HAVEN'T BEEN DOING FOR 50 YEARS.

Think about the term "mirror" for a while. In most mirrored setups, all data goes everywhere. Yes, we've had mirrors for quite a while, and they've provided linear speedup, and increase the cost of upgrades. A cluster doesn't just copy the data everywhere. Hadoop, for example, replicates each block only three times by default. On a large cluster, it's very likely that two randomly-selected nodes won't share any common data. The idea of having parallel data access isn't new, but the technology to do it effic

"You do realize that 'a cluster' is really just 'a bunch of mirrors' that you're distributing the query across"

You do realize that the kind of cluster we are talking here is not "just 'a bunch of mirrors'" by big margin: you don't copy the whole data set to every node; you don't "copy" the computing load to every node.

I'm no DBA, but my limited understanding is that sharding requires advance knowledge of the data being stored and the application thereof. My understanding also is that there are some designs that can't be effectively sharded without a huge cost penalty.

That's great if your programmers are sitting right next to the DBAs, but it's pretty bad for systems where other have to access the database as well. A project I'm working on now involves a painfully-slow SQL query, because we need to query by date, and the

It isn't about what's practically solvable, it's about what's cheaply solvable. These problems have been practical for anybody with money for a while. Hadoop lowers the barrier to entry.

If you've got the cash, IBM will set you up with a monster SQL cluster that will take that massive complex SQL query (the one that takes a month to run on your desktop), and return results in 2 seconds. If you have to ask how much it costs, you can't afford it.

Yes, but the degree varies. In a low margin business, I might be willing to invest a couple million dollars, if it will lower my costs by 1%. Who's in a better position to make that statement, the Fortune 500 company, or the guy in the garage?

"No matter how rich you are, if you need six dollars to get five, it's not practical."

Right. But if you need $10M to get $20M, most people can't play. Even if you need $10M to get $100M, you have to convince somebody to give you

First, I'm not really sure what you mean by "copy it into HDFS", since that's usually where data is stored in the first place. Copying in lots of data without giving the cluster time to stabilize can cause it to go into safe mode, where it won't make changes until everything's properly distributed. It's version 0.20. Don't expect perfection just yet.

There are also experts [cloudera.com] out there who will be quite happy to help get things running better. My company has been using Hadoop quite successfully with their help.

In situations where you are using Hadoop, your "primary" data store should BE the HDFS store you are using to analyze it. That's a big part of the actual efficiency proposition of Hadoop.

The big trick with the "big data" approaches is to recognize that you keep _everything_ distributed, _all the time_. Your input dataset is not "copied into the system" for some particular analysis task, it _exists in the system_ from the time you acquire it, and the analysis results from it are kept distributed. It's onl

Related to using Big Data in Business is Big Data in Science. Wired ran a nice series of articles looking at this (http://www.wired.com/wired/issue/16-07). This raises all sorts of problems (for example, how can results be reproduced? What if the model of the data is as complex as the data? Are all results obtained with Small Data simply artefacts of sparse counts?).

I don't follow how near infinite storage affects the ability of researchers to re-perform an experiment to gather data a second time.

What if the model of the data is as complex as the data?

Then it is, by definition, not a model. A model is a system that describes another system more complex than itself, a model that is as complex as the system it is trying to describe is just different way of looking at the system. It can still be useful, but it doesn't simplify the problem the same way a real model does.

Are all results obtained with Small Data simply artefacts of sparse counts?

Experiments being reproduced can be hard if no-one else has the data (this can happen --for example if you are Google and publish results using large fractions of the Web as data) or even if something as trivial as moving it from one site to another requires a lot of effort. This is not really a question of storage costs --it is a question of having the data in the first place and the mechanics of moving it around.
Models are used in Science as idealisations; but if you really really want to model the l

Consider that Google, Yahoo, and Facebook were all once small companies that leveraged their data and understanding of the relationships in that data to grow significantly.

Because their business is based entirely on how that data correlates.

99.999999999% of the rest of the world do other things as their primary business model. Small businesses aren't going to do this because it requires a staff that KNOWS how to work with this software and get the data out.

Walmart might care, but they aren't a small business.

The local auto mechanic, or plumber, or even small companies like lawn services or maid services simply aren't big enough to justify having a staff of nerds to make the data useful to them, and they really don't have enough data to matter. It simply is too expensive on the small scale.

Companies that can REALLY benefit from the ability to comb vast quantities of data have been doing it for well over a hundred years. Insurance companies are a prime example. You know what? They aren't small in general, so they have the staff to do the data correlation and find out useful information because it works on that scale.

Anyone who cares about churning through massive amounts of data already has ways to do it. Computing will make it faster, but its not going to change the business model.

I'm kind puzzled why virtualization has anything to do with this, unless someone is implying that a smart thing to do is setup a VM server, and then run a bunch of VMs on it to get a 'cluster' to run distributed apps on... if thats the point being made then I think someone needs to turn in their life card (they clearly never had a geek card).

So now that I've written all that, I went and read the article.

Now I realize that article is written by someone who has absolutely no idea what they are talking about and simply read a wikipedia page or two and threw in a bunch of names and buzzwords.

Hadoop doesn't help the IT department do anything with the data at all.

Its the teams of analyists and developers that write the code to make Hadoop (which is only mentioned because of its OSS nature here) and a bunch of other technologies and code all work together and produce useful output.

This article is basically written like the invention of the hammer made it so everyone would want to build their own homes because they could. Thats a stupid assumption and statement.

Slashdot should be fucking ashamed that this is posted anywhere, let alone front page.

Sure, insurance companies have kept claims data around for many years. They make some pretty good observations about obvious correlations. People who speed too much tend to hit more things. People with chronic diseases tend to die.

What about the data they couldn't handle, though? What about the effects of someone's purchases? Did they buy quality brake pads? What about the circuit breakers installed in their house the last time it was remodeled? What contractor did they hire? How ma

What's missing is a killer app for most businesses, and it's the data gathering and management side that's lacking, but the analytics side. I think that advanced analytics is not nearly as user friendly and accessible as it could be, and hopefully will be in the future. Visualization/analytics tools like Tableau are a good start, but we need more better (as in smarter in AI/machine learning terms) automation. Eventually I see analytics useful not only to businesses but even individuals, as a way of makin

Actually, while I was also irked by the buzzword-compliance of TFA, I think the point about linking virtualization and the cloud with giving small businesses access to data tools is actually quite valid. Storage and processing are commodities now thanks to these technologies, which significantly reduces the staff and overhead required for a startup or small company to utilize large data sets. I work for a small web design and hosting company and we certainly wouldn't be considering scaling up our data manag

"99.999999999% of the rest of the world do other things as their primary business model. Small businesses aren't going to do this because it requires a staff that KNOWS how to work with this software and get the data out."

Of course, 99.999999999% of the world doesn't have electricity as their primary business model. Does this mean that small business are going to stay with candles and bonfires? Because, you know, they won't have the needed staff for producing and distributing their own electricity.

For the most part, Google has moved onto Caffeine and GFS2 for their support. Apparently, Big Table was taking too long to regenerate the entire index, forcing Google to refresh only part of their index frequently. The new Caffeine framework supposedly lets Google get closer-to-real-time search results because newly-indexed/crawled data can be continuously tossed into the search database without requiring an entire batch process. Perhaps that's why quotes from Slashdot comments show up in Google so quickly.

@CmdrTaco, et al.,
You might go to the 'in-depth guide" Olhorst mentions [http://www.pwc.com/us/en/technology-forecast/2010/issue3/index.jhtml], and assess that separately. We did a lot of research with the CIO and the rest of the C-suite in mind as a target audience. Of course Google has moved on beyond Bigtable, etc.... According to @royans [http://www.royans.net/arch/pregel-googles-other-data-processing-infrastructure/], Google uses Pregel to mine graphs. Allegedly 20% of their data they mine with Prege