Anyone who has ever had the pleasure of working in a big beer warehouse knows that getting the suds from rack to truck sometimes requires a forklift, sometimes a straddle stacker, and sometimes a plain, old pallet jack. A big data warehouse is no different. As data stores zoom past terabyte range and beyond, and business demands require retrieving something other than 12-ounce cans, one type of forklift doesn't always do the trick.Greenplum
, a developer of massively parallel database technology, is bringing those other kinds of forklifts to the data warehouse. By incorporating MapReduce within its database engine, the company is giving enterprises more ways than SQL to manipulate and analyze extremely large amounts of data.
Greenplum is in the business of humongous databases; customers typically have terabytes to store and sort. (The company says it has two shall-not-be-named customers with production databases of the formerly mythical petabyte size.) From the start, Greenplum designed its software to be a massively parallel system -- the idea being that without high-speed parallel processing, a database won't be a truly useful decision support tool in a big-time data warehouse.
"Businesses have enormous amounts of data that they want to be able to monetize, but they run into the challenges of analyzing data at that very large scale," says Ben Werther, director of product management for Greenplum. "And with data scattered everywhere, it becomes even more difficult. We believe parallelism is the only way to analyze massive amounts of data and provide answers quickly. The old approach, what you'd find with Oracle, for example, doesn't scale adequately to handle situations where data is spanning tens of hundreds of nodes. We've designed to scale out very linearly in order to accommodate the exponential increase in data volumes and number of users."Parallel Design
Greenplum's database has its roots in PostgresSQL, an open source system known for its enterprise-grade features. On top of that, Greenplum has added its own dataflow engine and capabilities, including a high-speed data loader, to create a highly parallel platform for data warehousing, Werther says.
One of the keys to Greenplum's approach is query parallelism, where queries are distributed among individual compute nodes. Greenplum Database breaks complex workloads down into small tasks and dispatches them to multiple software processing units working in parallel and connected to high-speed disk. Each "segment server" is a database processor that owns and operates on its piece of the data, performing relational chores like joins and sorts. The database system is made of a number of self-contained parallel-processing units that can scale to handle queries on demand. Greenplum says that because its approach automatically distributes data and handles query workloads in parallel across all available hardware, it outperforms general-purpose database systems. "You need to push processing down to where the data is," Werther says. "Our shared-nothing architecture moves your computation to as close to your data as possible, and distributes it across as many nodes as available."
To beat the high price of the traditional, proprietary multiprocessing systems that have typically handled huge data loads, Greenplum designed its database to run on low-cost, off-the-shelf servers. Customers can choose the hardware and vendor they prefer. A typical compute host would have a pair of multicore CPUs (usually Intel Xeon or AMD Opteron), 16GB of RAM, anywhere from 16 to 48 500GB SATA disks, and running Linux or Solaris. A typical rack would hold as much as 24TB.
Greenplum's database technology also is available "embodied in the data warehouse appliance" from Sun, via a SunFire X4500 Opteron-based server with up to 20 CPUs and 100 TB of storage. Sun says this integrated, turnkey system beats any competition in speed by loading a terabyte in about a minute and in price that works out to about $20,000 per terabyte. "It's a solution for those who don't want to match hardware and software themselves," says Werther. "It works out of the gate. Those customers who want to choose their own hardware can download the software from our site."The New Forklift
Despite its speedy parallel performance and sophisticated SQL capabilities, Greenplum recognized that its database wasn't helping everyone in a company get the answers they needed. "There's a lot more interesting analyses our customers want to do beyond what they can do with SQL," Werther says. "They want different ways of looking at that data, they want to run their own custom algorithms to perform text analysis … and do things that won't fit in a SQL table. They want to be able to examine input from any source and in any format, and be able to do it across hundreds of terabytes of data. They want to do it at Internet-scale."
As it happens, there's a company called Google that also wants to extract useful information from its considerable daily collection of data -- information that it can't get at using SQL. Google uses MapReduce
, a programming model for working with very large data sets; it's also described as a framework for distributed systems, and a computational framework for harnessing many machines. MapReduce programs are automatically parallelized. In theory, it's simple enough for programmers to use even if they lack experience with distributed systems. The folks at Google use it for gargantuan tasks like building a Web index to small queries from a single developer. (In one month alone, Google's MapReduce location reportedly processed more than 403,000TB.)
With its new version due this month, Greenplum brings support for MapReduce to the rest of the world. "MapReduce makes it easy to write programs to analyze very big amounts of data," Werther says. "Customers like having all this data, but they want to get their programmers and math people to come up with new statistical analysis tools so they can extract the very specific types of business intelligence that they need. They want to do analysis with tools like R
. They want to ask very specific questions of the data that they can't ask with SQL, but they don't want to get rid of SQL. There are things you can do with SQL that MapReduce could never provide." With the new version of Greenplum, users can combine SQL and MapReduce in the same query, Werther says.LinkedIn
, the vast social/professional networking site, is a customer case in point. "They want to be able to do different sorts of analysis for their people-you-may-know feature. They want to analyze the text of user profiles, for example. By using MapReduce for queries, they can get at things that would otherwise require pulling the data into a separate program, on separate servers, running the data, then putting it back in the database. We don't just operate against data in the database. We reach out and stream data from file systems and journal applications, too."
Another customer, publisher O'Reilly Media, says it has seen query times drop from 10 hours to six minutes since replacing its previous system with Greenplum. The company depends on quick analysis of technology and buyer trends in order to bring timely publications to market. Research Director Roger Magoulas says the integration of MapReduce means "incredible efficiency because complex SQL queries can be written in a few lines of code."
Being able to access data from standard files is a huge benefit of MapReduce, Werther says. "Users can write MapReduce programs in just a few lines of a language they already know, such as Perl or Python, in order to process and analyze terabytes of unstructured data for things like keyword analysis and content indexing. You can't do the sorts of mining they need to do in SQL."
Because Greenplum users can now write MapReduce functions in languages like Perl, they can take advantage of open source toolkits to do the sorts of things not usually available with a relational database system, including freeform text analysis, statistical analysis and HTML parsing, Werther says. "In conversation with some customers who are involved in banking and stock exchanges, we learned that a surprising number of them said they were thinking of working with MapReduce in order to do smarter analysis. They still need the SQL analysis, of course, but they also want to expand and take advantage of the capabilities of MapReduce and other tools. They want their database administrators to have the tools they need, but business analysts and programmers need to get at other types of business intelligence. We're serving both constituencies."
"The core benefit of MapReduce is price/performance because it allows the cost benefits of parallelization to be applied to analyses that are hard to parallelize otherwise," says Curt Monash, database technology expert, proprietor of Monash Research
and editor of DBMS2
. "Programmers benefit from MapReduce because it makes parallelization much easier to program. Business users benefit from MapReduce because they get answers they otherwise might not." Don't Leave Answers on the Floor
Greenplum says it currently has more than 50 customers, including Skype, Sun and the giant Indian company Reliance Communications. Their industries include finance, transportation, manufacturing, telecom, health care and retail, Werther says. "They have some of the largest data warehouses in the world," he says, "typically 10 to 100 terabytes. We believe that our core capabilities of parallel processing, scalability and, now, multiple ways to examine those terabytes of data will enable these companies to pour data in and let everyone access it."
"It shouldn't be prohibitive to store and access data. It should be easy to write analysis and queries against data on massively parallel machines. We need to get away from the world of never enough capacity, fragmented data, and lack of the right tools if we're to extract the kinds of intelligence and value we need from business data. By combining SQL and MapReduce, we think we're opening up a new frontier of analytics.
"The idea," Werther says, "is that no data shall be left behind."