Skip to content
This repository has been archived by the owner on Dec 20, 2024. It is now read-only.

Doradus OLAP Databases

JoeWinter edited this page Sep 5, 2014 · 13 revisions

Table of Contents | [Previous] | Next


This document describes the Doradus OLAP database, which is a Doradus server configured to use the OLAP storage service to manage data. A Doradus OLAP database offers unique performance and storage advantages that benefit specific types of applications. This document describes the unique features of Doradus OLAP, its data model, and its REST commands.

Doradus OLAP builds upon the Doradus core data model and query language (DQL). This document provides an overview of these topics and provides OLAP-specific examples. The following documents are also available:

  • Doradus Spider Database: Describes the features, data model extensions, and REST commands specific to the Doradus Spider Database.
  • Doradus Administration: Describes how to install and configure Doradus for various deployment scenarios, and it describes the JMX commands provided by the Doradus Server.

This document is organized into the following sections:

  • Architecture: An overview of the Doradus architecture. The Doradus OLAP and Doradus Spider databases are compared.
  • OLAP Database Overview: An overview of an OLAP database including its architecture, unique features, the types of applications it is best suited for, and an example application schema.
  • OLAP Data Model: Describes core Doradus data model concepts and extensions specific to Doradus OLAP such as xlinks.
  • Doradus Query Language (DQL: A detailed description of DQL: perspectives, clauses, link paths, etc.
  • OLAP Object Queries: Describes the Object Query type including parameters and output results in XML and JSON.
  • OLAP Aggregate Queries: Describes the Aggregate Query type including parameters and output results in XML and JSON.
  • OLAP REST Commands: Describes the REST commands supported by OLAP databases for schema definition, updates, queries, and shard management.

Recent Changes

The following changes were made to reflect new features for the v2.2 release:

  • OLAP now supports float and double scalar types, which represent 32- and 64-bit floating point numbers, respectively.
  • Query expressions now support floating point constants such as 3.14 and -2.718e-6.
  • OLAP now allows the all scalar types except for binary to be multi-valued: text, boolean, integer, long, timestamp, float, and double. Previously, only text fields could be MV.
  • The INCLUDE and EXCLUDE functions, used for the aggregate query grouping parameter, now support scalar types compatible with the corresponding grouping field: numeric, Boolean, timestamps, etc. Additionally, these functions now support the NULL keyword to include or exclude the (null) group normally generated when null grouping field values are found.
  • The TOP and BOTTOM functions allow the limit parameter to be 0, which causes all groups to be returned. This allows all groups to be returned in metric-value order instead of grouping-field-value order.
  • The Add Batch command accepts an Overwrite parameter, which controls whether the values in the corresponding batch will replace existing values. Overwrite defaults to true to match previous functionality. When set to false, objects and fields in the batch are only additive and will not replace existing field values.
  • The COUNT, MINCOUNT, and MAXCOUNT aggregate functions can now be used on SV and MV scalar fields. Previously, they could only be used on link fields.
  • OLAP now supports the DISTINCT metric function.
  • Link paths in query selection expressions can now begin with a WHERE filter. Multiple outer WHERE filters can be chained together. Such outer or "zero level" WHERE filters are applied to perspective objects.
  • The parameter passed to an aggregate query's metric function can now begin with a WHERE filter. Multiple outer WHERE filters can be chained together. Such outer WHERE filters define additional selection expressions for the perspective objects passed to the corresponding metric function.
  • The semantics of the IS NULL clause have been changed so that <link path> IS NULL is considered null if any link in the path is null. This improves symmetry with NOT <link path> IS NULL and compatibility with (null) group handling in aggregate queries.
  • Link field names returned in object queries can now be renamed using the AS(name) function.
  • Alias names used for aggregate query grouping fields can also use the AS(*name*) syntax as a function in addition to AS *name* as a suffix.
  • Aggregate query grouping fields can now use outer WHERE functions to filter perspective objects passed to the corresponding groups.
  • The semantics of using IS NULL clauses with link paths has changed. The section Quantifiers with IS NULL reflects the new behavior.
  • In aggregate queries, a metric result that is an invalid numeric value (e.g., infinity, NaN) now sorts to the bottom of the group list for both TOP and BOTTOM functions.
  • In object queries, the sort (&o) parameter can now be a link path, meaning that results are sorted based on a field belonging to a linked object.
  • In an aggregate function that uses a text grouping field, the INCLUDE and EXCLUDE functions now treat the included/excluded values as case-insensitive. Also, text values can use wildcards ? and *.
Clone this wiki locally