Real-time Analytics

Real-time analytics applications often provide a summary of an incoming data stream. These applications are used to discover real-time insights from fast flowing data produced by social media, mobile devices, sensors, infrastructure, and more. VoltDB offers high speed transactional ACID performance and the ability to process thousands to millions of discrete incoming events per second.

Implementing VoltDB to handle fast ingestion of data and interact on data to perform real real-time analytics provides the ability to create applications that can make data-driven decisions on each event as it enters the data pipeline.

VoltDB enables real time SQL analytics against fast streams of data. VoltDB analytics use cases fall into three categories: moving windows and aggregation of real time data for BI dashboards and external applications, per-event analytics to detect fraud or enforce policy, and caching of OLAP analytics to scale high concurrency querying and serving.

Sample Apps

Check out our sample apps to see VoltDB running in action

Sample Apps

White Paper Download

Fast Data Application Requirements for CTOs and Architects

Learn More

Documentation

Export is automatic and asynchronous. Learn more in our documentation

Documentation

Ingest

Connect to VoltDB using a native VoltDB driver, by POSTing requests directly over HTTP or by using one of the pre-built loaders to connect to an existing data source.

Native Drivers Loaders
C++ Kafka
Java CSV
PHP JDBC
Python SQL Command Tool
C# Hadoop OutputFormat
Others: see Clients and Drivers Vertica UDX

Example: Use the VoltDB Kafka Loader to feed events from Kafka to VoltDB

 

Analyze Streaming Aggregations

Materialized views calculate groupings and aggregations of data in their associated base tables. VoltDB supports materialized views that are scalable, fully transactional and always-up-to-date. Using materialized views, it is easy to maintain streaming aggregations of the real time data managed in VoltDB. Views are queryable using standard SQL. Use VoltDB’s MPP shared-nothing architecture to scale-out aggregation and processing of fast event feeds and then use VoltDB’s distributed SQL support to read database-wide rollups and groupings.

Example: Define a materialized view and query averages events per second. The complete application is available as the “Windowing” example application distributed with VoltDB.

Table that stores values that are timestamped and are partitioned by UUID.

MATERIALIZED VIEW that pre-aggregates the sum and counts of the rows by second. This allows for fast computation of averages by ranges of seconds.

SQL queries and SQL functions for roll-ups.

Find the average value over all tuples across all partitions for the last N seconds, where N is a parameter the user supplies. Uses the materialized view so it has to scan fewer tuples. For example, if tuples are being inserted at a rate of 15k/sec and there are 4 partitions,then to compute the average for the last 10s, VoltDB would need to scan 150k rows. In this case, it needs to scan 1 row per second times the number of partitions, or 40 rows. That's a tremendous advantage of pre-aggregating the table sums and counts by second.

 

Per Event Analytics and Policy Enforcement

VoltDB real-time analytics processes each incoming event or request as a discrete ACID transaction. A transaction can be one or more SQL statements pre-defined in a DDL file, an ad-hoc SQL statement issued by the application, or a combination of SQL and Java encapsulated in a VoltDB stored procedure.

Use VoltDB’s MPP, fault tolerant, ACID, SQL database capabilities to:

  • Alert, alarm or notify based on the current event and real-time counters and aggregations.
  • Monitor and enforce quotas, balance check and resource assignments in real-time.
  • Evaluate rules on a per-event basis in combination with OLAP analytics for real time segmentation, scoring and mass personalization.

 

Support 100,000s of request evaluations per second with millisecond-level response latencies. Integrate policy enforcement, alerting and monitoring all at streaming speeds on small VoltDB clusters with SQL and minimal Java. (For an example, run the Voter example in the VoltDB download kit.)

Scalable Serving

VoltDB includes code-free bulk loaders to load report data from HPE Vertica (using Vertica UDX) and Hadoop (using Hadoop OutputFormat). Cache OLAP report output in VoltDB and use VoltDB to support thousands of concurrent connections and SQL queries to the data. Each VoltDB server supports tens of thousands of concurrent connections. VoltDB’s distributed SQL support enables further refinement, filtering and re-grouping of analytic outputs for high speed users and applications.

For more information about loading data from Hadoop to VoltDB click here.

Integrate and Report

ODBC and JDBC Tool Integration

Support for standard ODBC and JDBC interfaces enable standard third-party tool integration like Microstrategy, Tableau and SQL. Download clients, drivers and monitoring integrations from the Community Clients and Monitoring page.

SQL Analytics

VoltDB supports a super-set of SQL-92 functionality. Our full SQL support is documented in the Using VoltDB Guide.

Integrations

Learn more about VoltDB integrations and real-time analytics on our Integrations page.


Developer Resources:

There are numerous resources available to developers.

Get Connected:

  • Developer Central

    One centralized place with all developer resources. Go There

  • A Look at a VoltDB Sample App

    In this blog, John Hugg walks us through a sample app in VoltDB. Read More

  • How VoltDB Works

    Take a simple dive into the VoltDB structure. Read More

  • Build a Sample App

    After Downloading VoltDB, here's a tutorial in building a sample app. Dive In

icon-1.png

Get Started Today

It shouldn't take weeks to begin building blazing apps with real-time personalization and fast transactions. Developers: Download VoltDB and spin through our Quick Start Guide in less than 30 minutes.

Download & Quick Start