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.
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.
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 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.
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.
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.
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.
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.
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.
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 is simply a SQL IDE provided in Reveal that allows users to directly interact with their data vis SQL statements. Several additional features include: