A common question that we get from prospects is how does Sqrrl Enterprise differ from Apache Accumulo. This is a reasonable question, since Sqrrl Enterprise is an "open core" NoSQL solution that utilizes Apache Accumulo as its foundation and then adds additional proprietary software to this open source core.
The team at Sqrrl includes a number of the original creators of Apache Accumulo plus additional team members that have spent years developing interactive applications on top of Accumulo. The goal of Sqrrl Enterprise is to make it easier to develop rich, powerful interactive web applications on top of Accumulo. The proprietary Sqrrl add-ons to Accumulo make this possible.
The major Sqrrl add-ons to Apache Accumulo can be broken down into primary 2 buckets:
1. Enterprise-Grade Security Features
Open Source Accumulo comes with the native ability to store cell-level security labels attached to each key/value pair and the ability to filter these labels at very low latency. However, there are some important pieces missing from open source Accumulo that make it possible to actually use this cell-level security capability in an enterprise application. Sqrrl Enterprise provides these missing pieces, which include:
- Labeling Engine. The Labeling Engine automates the application of security labels to key/value pairs. Rules can be loaded into the Labeling Engine to look for certain types of data (e.g., Social Security Numbers) and automatically apply security labels (e.g., Personally Identifiable Information) to that data.
- Policy Engine. The Policy Engine connects the security labels to identity roles or attributes. Access policies can be loaded into the Policy Engine that state who can access what data. For example, a policy could be loaded into the Policy Engine that states only Primary Care Physicians can access data labeled as PII. The Policy Engine can support both Role Based Access Controls (RBAC) and Attribute Based Access Controls (ABAC).
Without the Policy Engine and the Labeling Engine, Accumulo's cell-level security capabilities are difficult to use in an enterprise environment.
Sqrrl Enterprise also further completes the security story of Accumulo by adding Encryption-in-Motion, Encryption-at-Rest, authentication integrations like Kerberos and Single Sign On, and audit capabilities. Open Source Accumulo does not have these capabilities.
2. Query, Search, and Analytics
Open source Accumulo comes with a fairly low-level API that allows developers to ingest randomly ordered key/value pairs and return sorted key/value pairs. Building an interactive web application on this API is difficult. As a result, Sqrrl extends Accumulo's capabilities to provide a much richer set of querying and search capabilities. These capabilities include the following:
- SqrrlQL. SqrrlQL is a SQL-like query language called SqrrlQL that allows developers to use many familiar SQL commands, including statistical functions. These statistical functions can be used for real-time aggregation of data as data is ingested into the system. Real-time aggregates can power dashboards or collection of key metrics.
- Graph Search. Sqrrl Enterprise supports graph indexing of data and stores this data as nodes and edges. This enables users to develop applications that require multi-hop graph queries (e.g., who the friends of my friends that like walnuts).
- Document Search. Sqrrl Enterprise can convert key/value pairs into JSON documents and can store and retrieve data as JSON documents.
- Full-Text Search. Sqrrl Enterprise enables users to conduct keyword search of unstructured text. Unlike standard Apache Solr or Apache Lucene capabilities, Sqrrl's full-text search is fully incorporated with cell-level security features so that users only are able to retrieve the pieces of data that they are authorized to see.
When we ship Sqrrl Enterprise, our code includes both open source Accumulo and proprietary Sqrrl add-ons and we provide support for both. If you are interested in a demo, please register here: