Version:

Reveal: An Overview

10000201000006B4000003755CD831EFEE2ABF46_png

Introduction

Reveal is a visual data exploration and insight discovery tool. It allows users who may or may not have extensive experience with big data or data analysis to quickly build charts and graphs in a meaningful way to explore their dataset. Reveal was designed to be interactive and easy to use.

Reveal is a Python Flask web application with a mostly React frontend. By default, it uses SQLite as its application data storage engine. To begin visualizing data, Reveal must first be connected to your RDBMS datastore. While Reveal can and does work with other flavors of databases, it is most powerful when connected to Kinetica. Kinetica allows this through a custom ODBC driver/connector via Reveal’s SQLAlchemy interface.

Features

  • A rich set of charts, diagrams, and map visualizations based on industry standards such as D3 and OpenLayers.
  • Create custom dashboards and share with other users.
  • Fine-grained security model allowing creation of custom roles with specific user permissions to features and datasets.
  • Intuitive and easy-to-use data exploration tool to experiment with various visualizations and parameters to create insightful charts. Selecting columns, aggregations, and metrics is as simple as using dropdowns.
  • SQL Lab tool allows users to interact directly with their datasets via direct SQL statements.

Security

Reveal allows for unlimited number of user accounts, each with their own roles and permissions. All user logins and feature/data accesses are logged in the Action Log for audit purposes. It is implemented via Flask AppBuilder (FAB) which provides all the aforementioned features.

10000201000006AB00000273340125FDB83C8DA0_png

Roles/Permissions

By default, Reveal is installed with several roles ranging from full admin rights to public view-only. However, it is very easy to create custom roles with specific sets of permissions. You’ll notice that the permissions framework is very fine-grained and gives complete control over access of the application.

While roles can be created by user types, they can also be designated to certain features and datasets and multiple roles can be assigned to a user to create a superset of rights. There are many ways to design and implement your security model.

Datasources

Datasources represent all the sources of data that Reveal is connected to. Not only can Reveal be connected to multiple databases, it can also be connected to databases of different types simultaneously.

10000201000006B4000002CBD58C8CE11CB56B3B_png

Databases

If you’ve setup Reveal through a Kinetica install, it should by default have a Kinetica database already added for you. Adding additional databases is as simple as providing a name and the appropriate SQLAlchemy URI connection string for that type of database. Several options are available such as exposing the database to SQL Lab and allowing sync and/or async queries to be executed on the database.

Tables

To explore data, specific table(s) from the connected database(s) must be added to Reveal. “Adding” a table simply makes Reveal aware of the table and allows for the addition of custom configurations and other metadata that will help in creating visualizations. Adding a new table is as easy as providing the table and database name.

Configuring a table on the other hand will sometimes require a little bit more effort, simply because the Reveal platform is so powerful. Reveal allows for additional configuration of its columns and also aggregates/metrics. For example, table columns can be designated as groupable , filterable , and/or countable . Custom metrics can be added of types count , sum , and/or avg to name a few. Fortunately upon first initialization of tables in Reveal, a lot of the columns will be preconfigured for you based on their datatypes. A few useful metrics will also have been added for the user.

Slices

A “Slice” represents a specific view on data, whether it be a chart, map, or even text. But simply put, they are the visualizations or widgets the user will be creating and adding to their dashboards. Each slice is only connected to a single table and a single chart type. This simplicity is the basis for the platform which encourages creating as many slices as you need and mixing and matching them in multiple dashboards, each providing different insights.

10000201000006AB0000037FB2CDF0650DBD1AD1_png

Chart Types

10000201000003E8000001450D94FA84C5F6A715_png

Reveal comes bundled with many useful types of visualizations that should cover most common use cases. Each type requires custom configuration based on how they visualize data. Not only will the slices display independently in dashboards, we can also apply cross-filtering across various slices in the dashboard.

Dashboards

The dashboard is in a sense the “final” product that is consumed by users of Reveal. All previous steps make the dashboard possible. The dashboard is a mix and match of all the slices available to the user. Slices can be added, positioned, sized, and arranged in any way desired. Dashboards can of course be shared with other users that have access.

10000201000007D00000024CD9A6453D1C9A9454_png

Cross-Filtering

To enable cross-filtering, the Filter slice must be included in the dashboard. The Filter slice acts as an agent which manages flow and communication of data between all the other slices in the dashboard. It is also responsible for filtering history, caching, and state management. Some of the other chart types are also interactive in the sense that they themselves can trigger a filter which will be applied to the dashboard. For example, clicking on a section of a Pie Chart will apply a filter for the value of that section.

SQL Lab

SQL Lab is simply a SQL IDE provided in Reveal that allows users to directly interact with their data vis SQL statements. Several additional features include:

  • Multi-tab environment which allows for working with many queries at the same time.
  • Browse metadata of the database: tables, columns, indexes, and partitions.
  • Queries are logged so you can find and views previously executed queries.

10000201000006AC000003544F30581A7E1BE7CB_png