February 6, 2013

Key questions when selecting an analytic RDBMS

I recently complained that the Gartner Magic Quadrant for Data Warehouse DBMS conflates many use cases into one set of rankings. So perhaps now would be a good time to offer some thoughts on how to tell use cases apart. Assuming you know that you really want to manage your analytic database with a relational DBMS, the first questions you ask yourself could be:

Let’s drill down.

How big is your database? How big is your budget?

Taken together, these questions tell you which choices are even feasible. Does your database fit into RAM, at a price you can afford? Does it fit onto a single, perhaps large, server? If both answers are “No”, then you need a real scale-out system, querying disk or flash (which itself could be hard to afford). Otherwise, you have more options.

Note that database compression has a big influence on what fits where.

How do you feel about appliances?

Depending on considerations such as database size, the choice of Oracle, Teradata, IBM Netezza, or Microsoft SQL Server may mandate or at least strongly suggest an appliance form factor. For most other analytic DBMS, an appliance is more optional. Are appliances good for you? Bad? Indifferent? Trade-offs include:

How do you feel about the cloud?

Analytic DBMS run better on good hardware and predictable bandwidth (hence all those appliances). These can be hard to find in the cloud. So, not coincidentally, can be analytic DBMS references, although most vendors can muster a few.

If you feel you need to run your analytic RDBMS in the cloud now, check references carefully. If you only are concerned about the cloud as some indefinite future, then you might want to rule out a few appliance-only vendors, but otherwise you probably shouldn’t worry. Cloud hardware and networking are getting better, and RDBMS software vendors are gaining experience in cloud deployments.

What are the size and shape of your workload?

Different analytic databases can have very different kinds of workloads. Tasks include:

The big issue is — how many of each kind of task need to performed concurrently, and in what combinations? If you’re refreshing 10,000 dashboards, several hundred of which might be getting drill-down queries at once, while trying to do a few scan-heavy queries in the background and some 15-way joins, most analytic DBMS might disappoint you. (Indeed, I’d ask whether you might want to split up that work among two or more systems.) Different DBMS — and different hardware/storage/networking configurations — shine in different scenarios.

How fresh does the data need to be?

Any serious analytic DBMS can be loaded daily or hourly, edge cases perhaps excepted. In most cases 15 minute intervals work as well, or even 5, but check whether those load latencies would interfere with any performance optimizations. But if you want sub-second data freshness, or even several-second — well, that has to be a top-tier architectural issue.

If your analytics are simple enough, it’s appealing to do the immediate-response ones straight from your transactional database. If not, you may need some kind of streaming-replication setup. Usually, I wind up recommending replication approaches that don’t yet have a lot of maturity or references. Tread carefully here.

Related links


3 Responses to “Key questions when selecting an analytic RDBMS”

  1. aaron on February 7th, 2013 3:26 pm

    I’ve done this selection many times, and what seems to work is to drill into what the goals are (operational BI for 1,000 concurrent users will look different than data mining.) Once you have a sense of that, the next questions are around goal states – is it for more reporting (most BI turns into static reports or *OLAP in a stable business – even with new capabilities), more for deep analysis, or a mix.

    Based on these, come up with a capabilities requirements matrix and do the choosing. Obviously , this will be way off, so get rid of goofy req.s and then make sure you have 10X headroom.

    Most of the capabilities for these things are getting commoditized, so the vendor makes some difference:
    – if they/their product are less stable
    – if they don’t integrate well with other tools used
    – if they can do things that are unique
    – cost (mostly license, sometimes operational effort, rarely HW)

    It is shocking how few times performance bake offs are useful. They are done, generally to paper stamp a management position, rather than based on technical merits. It is very rare that the test cases have any relevance to target state. Typical tests are a few bulk loads and a few queries – and most results relate to time/logistic factors rather than intrinsic capability.

    What it typically comes down to is what works within the customer stack. Approved software? Backups? Tend to drive the bulk of new projects.

    As you point out, Curt, the most critical issue is often the freshness of data. Sometimes this is an architectural issue (e.g., ODS+DW.) and sometimes it is part of the analytics DB; in most cases smaller vendors lose if this point is critical.

  2. M-A-O-L » Key questions when selecting an analytic RDBMS on March 21st, 2013 5:37 pm

    […] Key questions when selecting an analytic RDBMS: Assuming you know that you really want to manage your analytic database with a relational DBMS, the first questions you ask yourself could be: […]

  3. Which analytic technology problems are important to solve for whom? | DBMS 2 : DataBase Management System Services on April 12th, 2015 11:48 pm

    […] Analytic database distinctions (February, 2013) […]

Leave a Reply

Feed: DBMS (database management system), DW (data warehousing), BI (business intelligence), and analytics technology Subscribe to the Monash Research feed via RSS or email:


Search our blogs and white papers

Warning: include(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/dbms2cm/public_html/wp-content/themes/monash/static_sidebar.php on line 29

Warning: include(http://www.monash.com/blog-promo.php): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/dbms2cm/public_html/wp-content/themes/monash/static_sidebar.php on line 29

Warning: include(): Failed opening 'http://www.monash.com/blog-promo.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/dbms2cm/public_html/wp-content/themes/monash/static_sidebar.php on line 29