Data Warehouse Key Concepts

This reference contains the explanation for SlicingDice's data warehouse terms and concepts that are applied to your physical and logical dimensions in your databases.

  • What is an entity-id column
  • What are Columns and the difference between an Attribute and Event Column
  • What is a Dimension
  • What are API Keys and the differences between them.

Entities

An entity is basically to "whom" the data that will be inserted and stored on a database. An entity-id is like a primary key. SlicingDice associates any data inserted in databases to entities. Users can define the entity-id column to be an user email address, a device identification number, a server's hostname, etc - whatever unique identifier is best suitable for their data.

When you create a database or a dimension, SlicingDice automatically creates an Unique ID column type called Entity ID. This column is used to store the unique value that identifies entities in a database.

For example, take a look at the table below. There are three columns (Name, Age and Clicks) and all these values are associated with the corresponding User IDs, UUID-01, UUID-02 and UUID-03. The User ID is an entity column that uniquely identifies each set of values.

User ID Name Age Clicks
UUID-01 Jeff 25 Add to Cart - 2018-01-02
Pay Now - 2018-01-05
Support - 2018-01-30
UUID-02 Michelle 32 Pay Now - 2018-02-10

Notice that this concept is also applied when you connect a database to an external data source, so when you do it you need to define what column from your source will be your entity id.


Columns

SlicingDice columns are exactly like regular columns in a database or on a spreadsheet. Two types of columns are supported by SlicingDice: attribute and event columns, as described below.

  • Attribute Columns
  • Store supported data types not associated to a date/time, usually describing facts, details or characteristics of an entity. Examples: name, age and genders of users, location of your stores and so on.

  • Event Columns
  • Store supported data types associated to a date/time, usually tracking an activity of an entity at a given time. Examples: tracking an user interaction on your website or recording a sale.

Using the same table shown above as an example, the columns Name and Age are attribute columns, while the Clicks column is an event column.


Dimensions

A dimension is a way to group columns for a database. Each database may contain multiple dimensions and each dimension can contain multiple columns.

As SlicingDice supports storing both types of data, attributes (non-time-series) and events (time-series) in the same dimension (that can be seen as a single table), without affecting the query performance or database storage size, there is no need to split and normalize the data into multiple tables, as it's commonly done in other databases.

Again, in the same table shown above as an example, the whole table would be a single dimension, with a combination of attributes columns (Name and Age) and a single event column (Clicks).

Logical Dimensions

SlicingDice allows you to create logical dimensions in your database. It means that you can connect external data sources you may have and query them just like if they were physical dimensions.

This way you're able to execute queries, analyses and predictions crossing data from physical dimensions (stored on SlicingDice) to logical dimensions (external sources), enabling you to generate better insights not having to always physically load your data into SlicingDice servers.


API Keys

SlicingDice's API keys are necessary to perform any function inside your SlicingDice account and its databases. There are mainly 2 types of API keys: Team key and Database key.

Team Key

The API team key on SlicingDice is used to execute operations on API, such as managing users, databases, permission groups and custom database keys. The Team key has 3 levels of permissions:

  • List: This setting will enable the Team Key to list Permission Groups, Users and Custom Database Keys.
  • Update: This setting will enable the Team Key to update Permission Groups, Users and Custom Database Keys.
  • Delete: This setting will enable the Team Key to delete Permission Groups, Users and Custom Database Keys.

Those permissions can be set on the SlicingDice Control Panel (on the database page) using the administrator account.

API Team Key
    permissions

Database Key

The API database key on SlicingDice is used to connect and execute operations on a specific database through the API, such as data insertion, update, deletion, querying and modeling. The database key has 4 levels of permissions:

  • Master: allows every operation within the database, such as create and delete dimensions and columns, and also insert, delete and query data.
  • Write: allows to insert data, but not delete neither query data.
  • Read: allows to query data, but not insert, update or delete them.
  • Custom: allows the definition of very detailed and granular permissions of the key, such as read/write and specific columns to be accessible. A single database can have as many custom keys as needed