Sisense Technical Documentation V8.0
Sisense Technical Documentation V8.0
0
Technical Documentation
www.sisense.com
Table of Contents
Live Models
When connecting to a Sisense Live data source, Sisense recommends a minimum
of 16GB memory with 8 cores. For use cases with 100s of users concurrently
connecting to your data source, contact your CSM for more information about
Sisense's minimum requirements.
You can create up to 400 Live models on one Sisense instance.
ElastiCube Models
The table below describes the minimum requirements for your production
Sisense Server responsible for managing ElastiCubes. It is important to note that
it is possible to exceed the large-scale machine deployment size given in the table
below with machines that have more memory and cores.
Deployment Size Small Scale Medium Scale Large Scale
ElastiCubes 5 20 40
Concurrent 10 100
Users
*(1) Appropriate license may be required to reach a certain load. For example,
the number of maximum rows in a table can be limited by the purchased Sisense
license regardless of the system capabilities.
Considerations
The following are some considerations to take into account when deploying
Sisense:
CPU Considerations
Each Sisense widget produces at least one query to the ElastiCube or Live source
when viewed. As a dashboard is a collection of widgets, viewing a dashboard
produces multiple queries, which in turn raises CPU usage. Concurrent queries
affect CPU utilization and are independently spread between different CPUs.
While this concurrency is a core activity of Sisense, it is important to consider the
correlation between the number of concurrent users/active dashboards and
increasing CPU usage. It is especially important to track CPU usage when
increasing the number of concurrent users or active dashboards. Lack of CPU
resources will cause dashboards to load slowly. When CPU usage consistently
increases above 80%, it is recommended to add CPU resources.
In addition, custom tables and custom columns will increase the CPU load at the
end of a build process according to the complexity of the functions used by those
custom tables and columns. In this case, adding more CPU resources will help to
decrease the total build time.
Building an ElastiCube can consume a lot of CPU resources. However, CPU
consumption is not linear while performing parallel builds, and it is possible to
run several builds at the same time. A single Windows server supports up to four
parallel builds. Sisense is typically capable of running four parallel builds while
consuming only half of the CPU resources compared to the same builds run
separately. It is possible to run build processes and view dashboards at the same
time, however, as both are CPU consumers, Sisense recommends that you
schedule builds to run at times of low dashboard viewing, like during the night.
RAM Considerations
Building ElastiCubes and viewing dashboards both require memory. While it is
possible to view dashboards at the same time as running build processes, the
RAM resources required for those activities will be aggregated. When using a
single-server Sisense deployment, it is important to take both into account and
plan RAM usage accordingly. To prevent out-of-memory build failures, it is
advisable to run the build process at low-usage schedules or separate the build
and the query nodes to different machines.
The size of your ElastiCube model, whether it is the row-count per table, the
number of tables, or a combination of the two, has a major impact on the memory
consumption of a Sisense server during a build and query. Memory consumption
often peaks when building a custom table. Columns with unique data types, like
strings, which are indexed during the build process, are cached in memory, for
example, large string columns with many unique values may increase memory
consumption.
There is a correlation between the data size on the disk and the required RAM.
Sisense InChip© technology will load large portions of the ElastiCube to the
memory hence the number of active cubes and the cubes total size is a very
important sizing factor for the RAM size.
Disk Space Considerations
The Sisense installation file is typically around 1.5GB in size. Once Sisense is
installed, Sisense uses about 20GB of space. In general, when determining how
much disk space to reserve for Sisense, keep in mind the size of the data to be
imported into your ElastiCube models. You should keep additional space to
support your ElastiCube models, as these are duplicated during the build
process. The duplicate copy is not removed at the end of the build process but
serves as the basis of the next build.
An additional important consideration is the custom columns and tables, which
are materialized on the disk during the build process. Hence it is important to
add the required disk space for these data to the total estimated data size.
In addition to the imported data size, the ElastiCube also holds metadata like
indexes. Actual cube size on the disk will be extended due to this internal
metadata, hence it is good practice to plan for 20% overhead on top of the
imported data and custom tables.
Typically the ElastiCube data is stored compressed. However, it is good practice
to plan for the required disk size without taking the compression into account,
since in different scenarios one may choose to disable the data compression for
build and query performance improvements.
If you need to store your ElastiCube models in another location other than the
default C drive, see Change the Location of ElastiCube Data Folders.
For staging or demo environments, consider using high-speed hard disks (e.g.
7200RPM+) for the home directory and backups, while for production
environments, use Solid State Disks (SSD) utilizing NVMe to ensure high I/O
performance.
Page File Considerations
Windows OS page size settings have an effect on performance and should be
considered. The default recommendation is to set the page size to 150% of the
RAM size. When possible, and disk space is not an issue we recommend to set the
page size to 300% of the RAM size. By extending the page size one can use
storage resources to avoid out-of-memory errors but need to consider that when
paging is used the system will respond slower. In a large system with 128GB
RAM or more, it is not always feasible to set a huge amount of page file on the
server as it requires very large disk space. For the server's with a large amount of
RAM, you might want to limit the page file size equal to 128 GB at least.
In addition, it is recommended to split page files on two different drives
(Preferably on two different Physical/Virtual Disks) on the server for better disk
I/O performance.
Data Sources Considerations
Connectors affect memory consumption linearly. The usage of each connector
has a predefined (and configurable) memory allocation, hence increasing the
number of different connectors which are used during the build process
increases the memory consumption.
Sisense Basic Concepts and
Terminology
Sisense Architecture
The Sisense system is comprised of the following components.
ElastiCube Manager
The ElastiCube Server is installed locally on your computer and enables access to
ElastiCubes. Both the Sisense Web Application and Sisense query the ElastiCube
Server and receive results.
Sisense Server Console
The Sisense Web application is an interactive web application that provides the
user interface in which users can design, share, view and explore dashboards.
The Sisense Web application runs in popular web browsers and enables access to
the Sisense server. Dashboards can also be viewed on mobile devices.
Sisense Application Server
The Sisense Application Server is installed locally on your computer and hosts
the Sisense Web Application.
Data Models
Data models are abstract entities that organize your data and determine how
your tables relate to one another. Sisense has two types of models, Live models
and ElastiCube models. Which model you use depends on how you connect to
your data source. If you are connecting to a live data source, you will use a Live
model. If you are importing your data into Sisense, you will use an ElastiCube
model.
Data models enable you to mash up terabytes of data from a variety of sources,
for example:
Traditional relational databases, such as SQL Server, MySQL or Oracle
File-based data sources, such as spreadsheets (Excel) and CSV files
High Performance databases such as Snowflake, Redshift, Big Query
Online web services, such as Salesforce.com, Google AdWords, Google
Analytics, Zendesk and more
Live and ElastiCubes models are created and managed from the Data page.
Both are described in more detail below.
Live Models
Live models are a type of data model used to manage the schema over your Live
data source. Live connections are useful for getting near real-time updates, with
changes in your data reflected in your dashboard. For more information, see
Sisense Live.
ElastiCube Models
You define which widgets appear in the dashboard, their design, how they are
organized and the filtering of the data that appears.
You can access your own dashboards and dashboards others shared with you.
Sisense allows you to create as many dashboards as you need. No limitations!
When you create a dashboard, you are the dashboard’s owner. Owners can share
dashboards that they have created with other Sisense users.
Sisense provides a variety of built-in automatic dashboard sharing features. You
can easily share a dashboard with others in the Sisense environment or have a
dashboard automatically delivered to your chosen recipients by email (on a
scheduled basis or upon each data update).
Fields
Widgets are composed of fields that represent the data in your data sources. You
create widgets by simply selecting from the fields displayed in a Data Browser,
which appears in various places across the product. Each field represents a
column of data in the ElastiCube.
System Management
Access Admin Page ✓ ✓ ✓
Edit System ✓
Configuration
Configure SSO ✓
User Management
Create/Delete Users ✓
Create/Delete Groups ✓
ElastiCube Management
Add/Delete Servers ✓ ✓
View Servers ✓ ✓ ✓
Create/Delete ✓ ✓ ✓
ElastiCubes
Edit ElastiCubes ✓ ✓ ✓
Share ElastiCubes ✓ ✓ ✓
Edit Servers ✓ ✓ ✓
Stop/Restart Servers ✓ ✓
Stop/Restart ElastiCubes ✓ ✓ ✓
Copy Dashboard to ✓ ✓ ✓ ✓
Another Server
Restore Dashboards ✓ ✓ ✓ ✓
Create/Edit/Delete ✓ ✓ ✓ ✓
Widgets
Rename Widgets ✓ ✓ ✓ ✓
Duplicate Widgets ✓ ✓ ✓ ✓
Change Widget Type ✓ ✓ ✓ ✓
Administrator Designer Roles Viewer
Roles Roles
Create/Delete Dashboard ✓ ✓ ✓ ✓
Filters
Create/Delete Widget ✓ ✓ ✓ ✓
Filters
Sharing
Export Dashboards to ✓ ✓ ✓ ✓ ✓
PDF, Img, CSV
Share Dashboards ✓ ✓ ✓ ✓*
Migrate Dashboards ✓ ✓ ✓ ✓*
Pulse
Access Pulse ✓ ✓ ✓ ✓ ✓
Edit Scripts ✓ ✓ ✓ ✓
* The user must be the owner of the dashboard, ElastiCube, or alert.
Sisense Architecture
This topic provides an advanced description of Sisense’s architecture for IT
managers and Administrators responsible for supporting Sisense in their
organization.
For a high-level overview of the Sisense architecture, click "Sisense Architecture
" on page 29.
When working with Sisense, there are two possible types of deployments. The
first type is a Single Server Deployment in which Sisense is installed on a
single server. Single Server Deployments can be leveraged to support single
integrations or as proof of concept integrations for larger deployments.
The second type is a Distributed Deployment where Sisense is installed on
multiple machines, but only part of the components are active on each one. This
type of configuration is used to support heavier traffic loads and "Multi-Node
Deployments" on page 1056.
The Sisense full-stack solution is provided in a single installation process. After
installing Sisense on a server, you will have access to all of the Sisense
functionality.
The diagram below describes the main components of a Sisense installation and
how Sisense supports a full-stack solution:
In this diagram, the yellow components specify Sisense client applications or
APIs. The blue components specify components of the Sisense server.
The Windows service and application names that you can see in the Windows
Task Manager under the Services or Processes tabs appear in a dark blue font.
When Sisense is installed on a single server, the dotted line indicates the
boundaries of the server firewall. The lines between the components indicate
communication between them, and its direction. When the Sisense Server listens
on a specific port for inbound traffic, the relevant ports must be open in the
firewall for the communication to succeed.
The diagram above describes the ports used by the services, for more
information about communication ports, see Communication Ports for Single
Server Deployments.
Sisense Architecture
Sisense supports a full stack solution from data, such as transaction details, user
information, and machine-generated data, to dashboards accessible by viewers.
The Sisense Server is responsible for managing data. Before you can begin to
manage data however, Sisense communicates with remote servers for importing
data sources, licensing information, tracking and similar activities.
The Sisense Server manages data and supports the Sisense Web Server, which
hosts the Sisense Web Application. In a Single deployment, the Sisense Server
resides locally on your machine. In a Clustered deployment, the Sisense Server
can reside on one of your machines or across many machines depending on your
needs. For example, if you want to support a high availability environment, you
may install the ElastiCube Server on one machine, the Application Server on
another, and the Multi-Node Orchestration server on another machine.
Sisense Server
Sisense remote servers are used for license management, monitoring and
software updates.
Data Sources
If you need to customize your installation, see Customizing the Installation. You
can customize your installation during the first installation or after an
installation, but not during an upgrade.
If you want to install Sisense on a remote machine, see Performing a Silent
Installation.
If you are migrating your installation to a different machine, see Backing Up and
Migrating a Sisense Installation.
If you have any problems installing Sisense, see the Installation And Upgrade
FAQ.
Setting Up Your Production
Environment
This topic describes how to set up a production environment for hosting your
Sisense implementation.
Sisense recommends installing Sisense in a staging environment, where you can
check all of your ElastiCubes and dashboards, as well as test different
configurations and customization options. When everything is working as
expected, deploy Sisense in your production environment. To learn more about
migrating your installation, see Migrating Sisense.
Note: Port 8081, or 443 for secure connections, should be reserved for the
Sisense application only. No other applications should run on these ports on your
server.
Providing Remote Access to the Sisense Web
Environment
To maximize the Sisense experience, you will want to make your dashboards
accessible to external users outside the organization’s network. This requires the
following configurations:
Open TCP port (default is 8081) to access the Sisense Web Application
internally.
Ensure that your Sisense machine has a public IP address or domain name
associated with a public IP for external access.
Open port 443 if you are using SSL. Sisense recommends using SSL for secure
connections or a VPN solution. For more information about implementing
SSL, see Setting Up SSL.
External users who were granted access can view dashboards by entering the
machine’s IP and the port number, for example: xx.xxx.xx.xx:8081 or
my.company.com:8081
Click here to learn more and see troubleshooting tips.
Providing Remote Access to Sisense
In some cases, you may want to provide external access to Sisense for designing
and modeling your ElastiCubes. In such cases it is necessary to consult your
Sisense Success Manager to make sure your licensing terms allow this option.
In addition, make sure that ports 811, 812 on your Sisense machine are open.
Note: To avoid exposing your data, do not open ports 811/812 without the
proper security measures.
Sisense Email Server
Sisense provides you with an email server for sending reports and notifications
to your users from Sisense, to be used in POC and testing environments. When
you migrate your deployment to a production environment, you should configure
your own custom email server, so you can manage your emails according to your
company's policies.
For more information, see Setting Up a Custom Email Server.
Base URLs
Base URLs are the consistent part of a web address for a site or web application.
In Sisense, the default address is localhost:8081. Sisense allows you to specify a
Sisense hostname as a subfolder of a domain, for example,
baseurl.sisense.com/reporting.
For more information, see Configuring Base URLs.
Customizing the Installation
This topic describes how you can customize the settings for your web server
application during the installation process or after Sisense is installed.
For example, you can configure your server to use the Long index edition of
Sisense if your ElastiCubes are expected to contain a table with over 300 million
rows.
Note: You cannot customize the settings during an upgrade process. If you
upgraded Sisense and want to customize settings, refer to the post-installation
option described below.
To access the customization options during the installation process:
While installing Sisense, click Customize Installation, and define the
settings as described below.
To access the customization options after you have already installed
Sisense:
Open the Control Panel, and go to Programs > Programs and Features.
Right-click Sisense, and click Change.
Click Continue > Change Features, and define the settings as described
below.
Settings
ElastiCube Server
Select the Long Index edition if your ElastiCubes are expected to contain a table
with over 300 million rows.
It is not recommended to use this configuration setting for ElastiCubes in which
the largest table does not include at least 300 million rows.
Performing a Silent
Installation
This topic describes how to install Sisense silently.
You can install Sisense using the command-line interpreter, for example, when
you need to run an installation on a remote machine.
You can also customize the installation using variables, for example, install
Sisense without the sample dashboards.
To perform a silent installation:
Download the latest sisense version.
Open the command line interpreter and type in the installation commands as
follows:
Full installation (without previous user activation)
<Location of downloaded executable
file>\SisenseLatestFull.exe -q -username="<>" -
password="<>"
Full installation (for user already activated by Sisense)
<Location of downloaded executable
file>\SisenseLatestFull.exe -q
Full offline installation (requires a license key from Sisense)
Note: To get an offline license, go to My Account and click GET KEY, or
contact your Sisense Success Manager.
After attaining your key, copy and paste it after -offlinelicense= (replacing
<offline_license_key> in the example below).
<Location of downloaded executable
file>\SisenseLatestFull.exe -q -
offlinelicense=<offline_license_key>
Installation without Sample ElastiCubes and dashboards
<Location of downloaded executable
file>\SisenseLatestFull.exe -nosamples -q
Choosing Sisense Website name and port
<Location of downloaded executable
file>\SisenseLatestFull.exe -q -
webname=<website_name> -webport=<website_port>
Silent Customized Installations
There are two options available for customizing silent installations:
bigdata: Add if you want to install the Long Index version of Sisense. Long
Index determines how Sisense transforms your data when loading it in to
an ElastiCube. Sisense builds your ElastiCube using pointers that represent
your data. These pointers are used to find the actual values so no
information is lost. To reduce memory consumption and improve
performance, Sisense builds ElastiCubes with 32-bit pointers reducing the
size of the pointers. You may experience “Out of memory” errors when
working with big data such as: 300 million rows of numeric fields 2GB of
string fields For example, let’s assume that your data contains strings with a
length of 1024 characters and 4,194,304 unique rows such that
1024*4,194,304 > 4GB in content after indexing, you should install the Long
Index version of Sisense. By installing the Long Index edition, Sisense will
use 64-bit pointers. While this is fine for big data, you should use the default
installation of Sisense when working data smaller than the figures
mentioned above for faster performance. edition if your ElastiCubes are
expected to contain a table with over 300 million rows.
It is not recommended to use this configuration setting for ElastiCubes in
which the largest table does not include at least 300 million rows.
webport: Add to customize what port Sisense runs on.
For example:
SisenseLatestFull.exe -q -bigdata -webport=80
After Sisense is installed, the only option to change the port is through the Port
field in the Configuration Manager.
To uninstall Sisense using the command-line interpreter:
In the command-line interpreter, enter:
<Location of downloaded executable
file>\SisenseLatestFull.exe /q /uninstall
Installing Sisense Offline
The standard installation of Sisense requires internet access to download
additional necessary components. To support machines behind firewalls, or
without internet access, you need to download and install the full Sisense
installation file. After you have installed Sisense, you need to provide an offline
activation key.
The steps below describe how to install Sisense offline and activate it.
Prerequisites
Before installing Sisense offline, make sure you have the following installed:
Microsoft .NET 4.6.1 Framework
IIS – Internet information Services (Microsoft’s Web server), see the
following instructions per your operating system
Windows 7 or 8
Windows Server 2008
Windows Server 2012
Installing Sisense
Note: If you are installing Sisense in Windows Server 2019, see Disabling
Windows Defender Real-Time Protection.
To install Sisense offline:
Download the latest full version of Sisense.
Open the installation file and click Run. The Welcome to Sisense window is
displayed.
Click Install. Sisense is activated and you can begin to install Sisense.
Backing Up Sisense
The backup process requires backing up your ElastiCubes and the Sisense Web
Application.
In addition, if you have any custom plugins located in the directory C:\Program
Files\Sisense\PrismWeb\plugins, this folder should be backed up as well.
The procedures below describe how to back up your ElastiCubes, the Sisense
Web Application, and Sisense in high availability environments.
Backing Up Your ElastiCubes
Your ElastiCube Server contains information about your ElastiCubes, including
the schema and the data that was imported when the ElastiCube was built. This
information is saved in a collection of folders stored in the ElastiCube Data
folder. The files and folders in the ElastiCube Data must be saved and their
structured maintained to ensure your implementation will work as expected on
the migrated machine.
To back your ElastiCubes:
In Windows Services, stop Sisense.ECMS.
Click Continue.
Click Upgrade.
Upgrading a Multi-Node Deployment
To upgrade a Multi-Node deployment, you can use the Multi-Node deployment
tool. This tool supports Sisense V7.2 and later. The Multi-Node deployment tool
remotely installs or upgrades Sisense on your server to the version you select in
the tool.
Before proceeding with the installation, ensure that the relevant communication
ports are available on each of the servers. See Communication Ports for Multi-
Node Deployments for more information.
To upgrade a Multi-Node deployment:
Download the Deployment Wizard. See Installing the Sisense Multi-Node
Deployment Wizard if you have not already downloaded and installed it.
After installing the Deployment Wizard, the screen below should be
displayed. If you have closed the Deployment Wizard, in your Sisense High
Availability Configuration directory, run SisenseHAWizard.exe.
Enter your Sisense login credentials and click Sign In.
In the Server Configuration area, enter the address of your server in the
Add Server field.
In Role, select the role of the server. There are two possible roles,
Application Node and Build Node. If your server is going to support
Sisense's web services or act as a query node, select Application Node. If
your server is going to be the build node where ElastiCubes are built and
then distributed to other nodes, select Build Node.
If you selected Application Node as your server's role, you need to define
what components it will support. There are three options you can select:
Web: Supports the web services of Sisense
Query: Responsible for running queries and hosting ElastiCubes
Web and Query: The server will support the web application and act as
a query node
Click Add Server and repeat Steps 6-8 for each server you wish to add.
After each of your servers has been configured, click Next.
(Optional) If you have a load balancer, enter its IP address in the Load
Balancer field. Your load balancer routes requests from your application
nodes to your active query nodes to maximize performance and capacity
utilization. This ensures communication between your load balancer,
Sisense, and the nodes in your Multi-Node environment.
You just created an empty ElastiCube. The next step is to add some data to it.
2. Add Data Sources
In Sisense, you can import data into the ElastiCube, or connect directly to your
data source with a Live connection. With our CSV and Excel files, we will import
these into the ElastiCube.
Table #1 – CSV File
Import the base table, which is in the form of a CSV file. This table contains info
about what kind of products have been purchased, and how much they cost.
Click and select CSV from the list:
You will be prompted to choose how you want to upload your CSV file. Select
File Upload.
Drag the GettingStarted.CSV file to the Upload area or click browse and
navigate to the
file.
After you upload the CSV file, select it from the Uploads list and click Next:
Select the GettingStarted Ecommerce file from the Select Table list. You can
preview the data inside it by clicking . This displays some more settings
you can use to customize your data, but for now, click Done.
Congratulations, you have connected to your first data source. You can now see
the CSV file in your schema.
The name of the table in the ElastiCube model defaults to the file name in this
case. You can double-click the title to rename it and remove the CSV extension.
Your ElastiCube model should look like this:
Table #2 – Excel File
Information about the brands that were sold in the main table exists in another
table, this time in an Excel file.
Click Add Data and select Microsoft Excel File from the list.
You will be prompted to select an Excel file. Find and select “GettingStarted
Brands.xlsx”, which you downloaded in Step 1 (you can also download the
file here).
In the new window leave the default settings and click Add.
Congratulations, you have now added your second table, an Excel file.
To rename the table, click the table once and select and rename the table to
“Brands”.
Your ElastiCube model should look like this:
3. Connect Different Data Sources
So far you have added two tables from two different data sources. Now let’s see
how to connect them.
In the ElastiCube model, creating and deleting relationships between tables is as
simple as drag and drop.
Any two fields of the same type (numeric/text/date) can be connected. In this
sample, both tables have a “Brand ID” column. Let’s connect them:
Drag the Brands table onto the Ecommerce table. This opens the
Relationships pane.
Select Brand ID from both tables and click Done. You should now see the
two tables are joined through the column Brand ID.
4. Build the ElastiCube
Now that you have defined your ElastiCube model, you are ready to build it. This
will pull the data from the data sources into the ElastiCube model.
The build will start. You will see the progress in Build log. Wait for the build to
finish:
Congratulations! You have successfully built your first ElastiCube model.
5. Dashboard Time!
Click Analytics in the top menu to open the Sisense Web Application and create
a new dashboard.
In the Data Set field, select the ElastiCube model to which you want to
connect. If you’ve completed Step 1 – Connect to Data, select ‘Tutorial’ in the
Data Set field, otherwise choose ‘Sample ECommerce’.
A default title name matching the ElastiCube model name will be given to the
dashboard. Feel free to change it.
Click Create.
Now that you have a dashboard, you can start adding widgets to it.
2 – Create Your First Widget: Sales Trends
Create your first widget to get a general idea of your sales performance.
Click Select Data on the left side of the screen:
A list of available fields will be displayed grouped according to the table they
belong to. This window is called ‘Data Browser’, and lets you easily find the
fields available in your ElastiCube model. Select the ‘Revenue’ field:
Now you immediately get a ready made widget that shows you all revenue to
date. We call this kind of widget an “Indicator”.
But to understand revenue over time, add a time field to the mix:
Click + Add More Data:
In the data browser, hover over the Date field and click More… Then select
Quarters:
It’s simple to see that product categories on the right generate the most
revenue and those products in the lower left have the lowest cost and
revenue. Hover over each scatter point to see the category behind it, to
discover that Cell Phones and PDAs generate most of the revenue.
You now understand which product lines to sell, but to get a complete view
of your market, you need to identify optimal customer segments to target in
each market – start by creating segments based on age.
4 – Creating Pie Charts to Visualize Customer
Segmentation
On the top of the dashboard, click New Widget.
Click Select Data and select the ‘Age Range’ field.
Click Add Data and select the ‘Revenue’ field.
Now select the pie chart icon from the widget buttons on the left, and
click Create.
You can clearly see that customers between the ages of 65+ are the most
valuable in terms of the revenue they generate. This insight can be used to
focus advertising budgets and develop unique campaigns to grow these
customer segments. Now, you can turn your attention to identifying which
markets are growing at the quickest rate.
5 – Creating a Map to See Market Growth
Before you focus on growth, you should focus on a specific year first, by adding a
filter.
The Filter panel on the right of the dashboards lets you add dynamic filters to
the dashboard.
Click Filter Your Dashboard on the right side of the dashboard.
In the Data Browser, click on the Date field.
Click the multi/single selection button to make it a single selection filter.
Leave only 2013 selected, and click OK.
Your dashboard is now filtered to show data only for the year 2013.
Now create a map:
Click at the top of the dashboard.
Click Select Data and select the Country field.
Click Add More Data again and select the Revenue field.
Click on the scatter map button type on the left.
Now you see a map, where the biggest circles represent the countries with
the highest revenue. But if you want to concentrate on the markets with the
biggest growth in revenue, its easy:
Hover and click to open the menu of the Total Revenue field and select Quick
Functions > % Change Over Time > Growth.
Click Create.
Now the biggest circles on the map represent countries with highest
growth. You can see for example that the United States is very hot right
now. You can use this information to focus resources as well as further
analyze these markets to understand revenue drivers.
6 – Rearrange the Widgets in the Dashboard
You can rearrange the dashboard by dragging and dropping, and resizing the
widgets. Dragging one widget on top of another splits the area in the dashboard
and allocates space for both widgets.
See this animation to get a feeling of how to rearrange widgets:
Data Models
In Sisense, there are two types of data models, ElastiCube models and live
models. ElastiCubes are Sisense’s proprietary, high-performance analytical
database specifically designed to withstand extensive querying typically required
for your business intelligence application. With ElastiCube models, you import
data from a variety of data sources into a Sisense ElastiCube, which becomes the
database that supports your dashboard. These models then need to be updated
as the data in your sources changes.
Unlike ElastiCube models, live models run queries directly against the data
source. Sisense performs no additional caching on the data. This provides you
with near real-time data updates in your dashboard, though live connections rely
on the source database for all queries. This means the queries are only as fast the
data source.
In Sisense, Designers create data and live models to represent how data is
brought into Sisense and how should it be used when supporting your
dashboards. Which model you choose is determined by what you want to do with
your dashboard. ElastiCube models tend to be faster when you are working with
complex dashboards with large data sets while live models are preferred when
you need near real-time updates. ElastiCube models and live models can be used
together in a single dashboard to support both use-cases.
From the Data page, you can see a list of all the data models that you have
created or that were shared with you.
Related Topics
Navigating the Data Page
ElastiCubes
With ElastiCubes, you connect to your data sources and import your data. Once
your data is in Sisense, you can then design your ElastiCube model in the Model
Editor.
After you have designed your schema, it's time to build the ElastiCube. Building
an ElastiCube takes all your data from all your sources, and imports it into the
ElastiCube.
The topics below describe ElastiCubes and how to model them.
Related Topics
ElastiCubes
Creating ElastiCubes
Navigating the Model Editor
Introduction to Data Sources
Working with Data
Transforming and Enriching Data
Functions Overview
Building ElastiCubes
Build Settings and Data Accumulation Behavior
Elasticubes for Advanced Business Scenarios
Live Models
To create dashboards built on live connections to a data source, you create live
models. These data models include connection and credential details to the data
sources. After you have created your live model, you publish it. Publishing the
live model adds it to your list of data models from which you can select when
working with dashboards.
The topics below describe live models, and how to create and publish them.
Related Topics
Sisense Live Connect
Creating Live Models
Adding Live Connections
Working with Live Models
Publishing Live Models
Working with Live Widgets
Navigating the Data Page
From the Data page of ElastiCube Manager, you can manage your ElastiCubes
and view their current states.
The Data page contains a list of all the ElastiCubes and live models you have
created or that have been shared with you.
To locate ElastiCubes or live models easily, on the right side of the page, you can
view ElastiCubes and live models you recently worked on, that were created by
you, or that were shared with you. In addition, on the left side, you can locate an
ElastiCube through the Search field.
Each tile contains information about the status of the ElastiCube and live model,
its owner, and who its shared with it. You can open your ElastiCube by clicking
on its tile or you can manage your ElastiCubes by clicking and selecting one of the
following options:
Stop: Click to stop the ElastiCube. ElastiCubes that have been stopped cannot
be queried. This is useful for troubleshooting ElastiCubes and issues with
your dashboard.
Duplicate: Click to create a copy of a live or ElastiCube model. See
Duplicating Data Models for more information.
Restart: Click to restart an ElastiCube that you have stopped.
Dependencies: Click to see what entities are using the ElastiCube or live
model. Entities include data security rules, drill hierarchies, dashboards,
widgets (from other dashboards), and Pulse alerts.
Schedule Build: Click to schedule builds to automatically synchronize with
the underlying data source to ensure all data is up to date. See Scheduling
Builds for more information.
Delete: Click to delete an ElastiCube or live model. If the ElastiCube or live
model does not have any entities dependent (dependencies) on it, then you
will be asked to confirm that you want to delete the ElastiCube. Otherwise,
you will be prompted to remap your dependencies to another data source.
See Deleting ElastiCubes for more information.
Cancel all Queries: Click to cancel all current queries to the ElastiCube.
Go to Admin: Opens the Data Source tab in the Admin page where you can
manage your ElastiCube or live model.
Some features and functionality supported in the desktop version of Sisense are
not supported Sisense currently. These features will be added in the near future.
In the meantime, you can find workarounds for missing features at Sisense V7.0
Backwards Compatibility.
ElastiCubes
Introduction
The ElastiCube is Sisense’s unique, high-performance analytics database with
super-fast data stores that are specifically designed to withstand extensive
querying typically required by business intelligence applications.
ElastiCubes allow you to bring in data from multiple sources, and then merge,
manipulate and query the data as if it was one consolidated data set. ElastiCubes
perform so well, that in most cases the creation of dedicated OLAP cubes and/or
optimized data marts are completely unnecessary – even when dealing with
hundreds of millions of rows of raw data.
One of the biggest advantages of ElastiCubes is the ability to easily mash up
multiple data sources. It is made up of fields where each value in one field has a
corresponding value in another field. The data for an ElastiCube can come from
one source, multiple sources or even from multiple physical locations. Once the
data is inside the ElastiCube, it is all the same and every field coming from every
table can be analyzed in the context of any other – quickly.
Benefits
ElastiCube technology make queries over hundreds of millions of rows of raw
data return in seconds, with moderate hardware requirements including
standard desktop-class computers with commodity hardware. More importantly,
ElastiCubes can do this without having to pre-aggregate and pre-calculate the
data ahead of time and store it on the hard-drive, thus radically reducing
required import/processing time and storage space.
ElastiCubes are most useful when one or more of the following is true:
Large amounts of data need to be analyzed
Data for analysis originates from multiple disparate sources
Just about every new computer on the market—even portables like iPhones and
iPads—are built with very powerful multi-core processors, putting several CPUs
into one. ElastiCube was built specifically to take advantage of these powerful
CPUs, further increasing Sisense’s performance on standard hardware, enabling
you to run multiple applications and support multiple users.
Highly RAM-efficient
The thing we know for sure about DBs is that they grow. Fast. So no matter how
much fancy footwork is done with completely in-memory DBs, eventually you
run out of RAM space and need to upgrade—at least your RAM (best case) or
your entire hardware platform (worst, very expensive, case). At Sisense we know
this, so we spent years designing the ElastiCube to be able to handle terabytes—
billions of rows—of data efficiently and quickly, even on standard PC hardware.
Unified Analytics Engine
Sisense can execute queries against a wide variety of data sources as if they were
all of the same type, essentially making the individual characteristics of each
physical data source unimportant. Our Unified Analytics Engine is what makes
this possible.
When Sisense imports data, the Unified Analytics Engine creates a metadata
layer, or abstraction layer, which is then used to formulate queries across any
number of tables from any number of data sources in any number of formats. It
even supports the combined querying of resident and external (live) database
sources without first loading data into the database!
These capabilities provide the user with unparalleled flexibility and speed in
creating, executing and sharing highly complex reports, dashboards, and analytic
applications, with any number and variety of data sources.
Compliant with Industry Standards
To create an ElastiCube:
Open Sisense and click Data in the top menu. Your ElastiCubes and live
models are displayed.
The ‘Conditions time of stay’ table is a custom table with a single relation and the
‘Admissions’ table contains data from a CSV file and has four relations.
The Model Editor contains a variety of information and functionality that lets you
prepare your data model as needed. A sample screen is shown below.
Navigation Pane: This area contains a list of your tables and their columns.
On the left side of the table name is an icon that indicates what type of data
is included, Date, Numeric or Text. On the right side is a join icon when
the column is connected to another table.
See Finding Tables and Fields more information.
Schema: The schema contains your data model that represents all the data to
be added to the ElastiCube and the relationships between the table. Some of
your tables might appear with icon attached them. These indicate the status
of your build and table. For example, indicates that the table has changed
since the last ElastiCube build while indicates that a custom expression
is currently in draft mode. See Working with Data for more information.
Schema Menu: This menu lists the following buttons:
Data: Click to add a new table to your ElastiCube.
Custom: Click to add a custom table to your ElastiCube.
Relationships: Click to open a preview window where you can join two
tables. See Creating Relationships for more information.
Build: Click Build to initiate an ElastiCube build.
Undo/Redo: Click these buttons to undo or redo any recent changes to
your schema.
Legend: The legend lists a description of all your data sources in the
ElastiCube and the color that represents them in your schema.
Introduction to Data Sources
Connecting to your data is the first step in analyzing your business information.
Sisense has native connectors to many SQL databases, NoSQL sources, and
popular web applications.
For a short video overview of connecting to data, see below.
There are two ways you can connect to your data sources. You can either import
the data into the ElastiCube or you can connect directly to the data source, which
is known as a live connection.
Which connection type you choose depends on your use case and the data source
itself. Importing your data into the ElastiCube takes advantage of Sisense high
performance database. However, if your data changes frequently and your
dashboard must reflect this, than a live connection is probably the best choice.
Keep in mind however that live connections work only as well as the data source.
The tables below provide a list of supported data sources and links to the
documentation for ElastiCube and live data sources.
Live Connectors
Connector Download Link More Information
Athena Download
Azure Data Explorer Download
Dremio Download
PrestoDB Download
Teradata Download
Vertica Download
Connecting to More Data Sources and
Frameworks
You can connect to many additional data sources by leveraging Sisense’s generic
frameworks such as the generic ODBC driver, JDBC driver, or Custom REST
Framework.
Sisense supports these frameworks with frequent upgrades and new
functionality. However, full connectors to specific data sources created through
these frameworks are not supported.
Changing Connectivity
Settings for Data Sources
This topic describes how to change the connectivity settings for an existing data
source.
For a short video overview of changing connectivity settings, see below.
After you have modeled your data in the ElastiCube, a data source may have
changed location or you may want to change a table without importing a new
table into your schema from scratch. If this happens, you can update your
connection settings to the data source.
When updating connectivity settings, you can choose one of the following:
Change Provider: This enables you to change the source of the data being
accessed, for example changing a provider from SQL Server to MySQL. After
you select the new provider, you need to choose the relevant database and
tables from the new provider. This is useful if you want to replace a table in
your schema with a new data source, but don’t want to change your schema.
Change Connection: This enables you to use the same provider, but change
your credentials to the data source or the database previously selected.
Change Table: This enables you to use the same provider and credentials,
but change the database previously selected.
If a table has changed, but the source and its settings are the same, for example a
new column was added, and you want to update your schema without importing
the data into the schema all over again, click Refresh in the table’s menu.
Note: The data source name, columns, and column types must remain the same
for existing widgets in the dashboard to be able to reference the data correctly.
The table below describes which sources support changing connectivity settings
in the web-based ElastiCube Manager:
Data Source Connection Change Table Sync
Settings Database Settings Columns
For the relevant data source, select > Connection Settings and one of the
following options:
c
Change Provider: Selecting this option opens the first step of the
Connection Wizard where you select the data source. In the Connection
Wizard, click to select a data source connection type, for example, change
MySQL to an Oracle database. When done, enter the connection credentials
and select the relevant tables.
Change Connection: Selecting this option opens the second step of the
Connection Wizard where you define the connection settings of the data
source. In the Connection Wizard, click to edit the login details to the data
source. When done, select the relevant tables.
Change Table: Selecting this option opens the third step of the Connection
Wizard where you select the relevant database from a list of databases in
your data source. In the Connection Wizard, select the relevant database.
After you have selected the relevant database in the Connection Wizard, click
Done. The connection settings are updated.
Working with Data
Once your data is imported into Sisense, Designers can organize the data in a
variety of ways. One of the most common ways is to create a relationship
between tables. After you create a relationship, the tables behave as a single
table, which can make analyzing your data more easy and accurate.
The following topics describe how you can create relationships with your data
and how to avoid some of the pitfalls of working with complex data:
Navigating Sisense
Finding Tables and Columns
Creating and Removing Relationships
Previewing Data in a Table
Managing Tables and Columns
Handling Relationship Cycles
Many-to-Many Relationships
Chasm and Fan Traps
Finding Tables and Columns
Through the ElastiCube Search tool, you can locate field tables and fields. The
Search tool is displayed in the Navigation Pane of the ElastiCube Manager.
When you perform a search, all the relevant tables and columns are returned as
you begin to type.
To organize the results displayed in the pane, toggle between the Data Source
icon and the Tables icon .
Each result has an icon on the left side of it. These icons indicate what is being
returned.
The meaning of each icon is as follows:
Data source
Table
Text data
Numeric data
Date data
To find a table or field in your ElastiCube:
On the left-side of the schema, enter the table or field in the Search field. As
you begin typing the letters or name of the table/field you are searching, the
results are displayed below and the relevant table or field is highlighted in
the schema.
Creating and Removing a
Relationship between Tables
Relationships specify the connection between tables and enable you to pull data
together in meaningful ways. For example, order information is more useful
when you know which customer placed each order.
However, you don’t need to store both the customer and order information in the
same table. Customer and order data can be stored in two related tables with a
relationship specified between the two tables to view each order and its
corresponding customer information.
In practical terms relationships allow you to query and combine data from
multiple tables in your dashboard.
For a quick overview of joining data, see the video below.
To check or change the field type, in the left pane, click the field type of the
field you want to change and select the new type from the list of possible
types displayed below it.
The Preview table contains a variety of information and functionality that relate
to your table. A sample preview is displayed below.
Name Description
1 Column In the left pane, you can search for columns in your table. As
Filter you begin to type, any relevant results are displayed in the left
pane. This does not affect the results displayed in the preview.
4 Menu This is a list of tasks you can perform on a column. Hover over
Options the column to display the menu and click it to display the
options.
5 Filter Click to apply filters to the data in the column. You can filter
Column numeric data and text data. See Filtering Columns for more
information.
6 Sort Click to sort a column. Hover over the column name to display
Column the sort icon. You can sort the column by date, numerically, or
alphabetically depending on the type of column.
7 Add Click to add a custom column to the table. See Adding a New
Custom Custom Column for more information.
Column
8 Sample Click to see a sample of your data. See Sampling Data for more
Data information.
Filtering Columns
You can filter data displayed in your Preview table’s columns by defining
conditions for numeric data and text data. To limit what data is displayed in the
preview, you can add multiple conditions that you define. For example, a Text
filter can limit what strings are included in the preview.
Filtering the data in the Preview table does not affect the data itself, just what
you see in the preview.
Filtering your preview is useful if you need to check specific data to verify its
accuracy of your table’s completeness.
To filter entire rows or columns of data from your preview:
In the Preview table, hover over the header in the of the relevant column to
display the Filter icon.
Click the Filter icon to define the filter’s conditions.
Text Numeric
Define your filters. Click Add Condition to add more conditions to the filter
or click Clear to erase all the conditions.
After you have defined your conditions, click Apply to update the preview.
Sampling Data
If you are working with a large dataset, you may want to restrict the amount of
data displayed in your Preview table. Sisense provides three options for
displaying a sample of your data:
Top: The first rows that are contained at the top of your data.
Bottom: The last rows that are contained at the bottom of your data.
Sample: A random selection of rows contained in your table. Sisense selects a
sample of your data randomly by rows. If you open the preview again, the same
rows will be displayed until your next ElastiCube build.
With each sampling option, you can determine how many rows are display
according to the value of the Number of Rows field. You can modify this value
to display as few as 10 rows or include as many as you like up to the full amount
of rows included in the table.
To view a sample of your data:
In Sisense, open a preview of your table.
In the top-right corner of the Preview table, click the Sampling Icon.
Select the relevant sampling option for your data and enter the amount of
rows to be included in the sample in the Number of Rows field.
The table below describes the menu options available from the Navigation Pane
and the corresponding icons available in the table’s menu. Either method allows
you to modify and manage your tables.
Navigation Table Icon Description
Pane
>
>
On the right side of the column’s name is an icon that indicates if the column is
conducted to another column through a relationship. You can hover over the icon
to view more details or disconnect the relationship.
For each column, you can hover over its name to display a menu from where you
view the following options for managing your columns:
Menu Option Description
Hide Allows you to hide a column. Click this option if you want
to import the data associated with this column, but do not
want this column available to dashboard designers and
viewers.
Indexed Allows you to index the column data for quicker processing
in subsequent builds.
Change Data Allows you to change the data type of your column in the
Type ElastiCube. This does not change the column type in the
original data source.
Description Allows you to tag a column with metadata that you can use
to organize your data and search for it later. See Tagging
Your Data for more information.
Select a color for the tag. The color of a tag is to help you organize related
tags.
Click Done to save your changes.
For Columns:
Open your data model.
In the Navigation Pane, click the relevant column’s menu and select
Description.
To import data:
Open the Sisense Server Console.
Click on the import ecdata file icon .
Select the location of the ecdata file and click Open.
A window will appear showing the import progress. Once complete, the new
ElastiCubes will be added to the list of existing ElastiCubes. Make sure the
ElastiCube is running before accessing it.
Note: You can also transfer data by copying the folder where Sisense stores the
data locally, instead of exporting and importing the compressed file.
Handling Relationship Cycles
Note: The image on this page were taken in the desktop version of Sisense,
however, the same principles described on this page also apply to the ElastiCube
Manager.
Good relationships between tables are the key to pulling in data in logical ways.
ElastiCubes are usually created from more than one table. To perform
calculations on fields that reside in separate tables, you must define a
relationship between the tables so the calculation mechanism knows how to
navigate from one field to another.
When a single possible path exists between two fields, there is no issue. For
example, performing a query involving the Customer Name and Amount field on
the ElastiCube schema below can yield only one result, since there is only one
possible path leading from the Customer Name field to the Amount field.
Relationship Cycles
In some cases, more than one path exists leading from one field to another.
Sometimes this is due to poor database design, and other times it is just a
realistic necessity due to the way the data is structured. In such cases, there is no
absolute way to determine the required path to take to calculate results.
For example, in the ElastiCube schema below, the Customer Name and Amount
fields now have multiple paths between them:
Customer —> Sales History (over the Customer ID field)
Customer —> Commercial (over the Customer ID field) —> Sales History
(over the Business ID field)
Customer —> Private (over the Customer ID field) —> Sales History (over the
Customer ID field)
Automatically Dealing with Relationship
Cycles
Theoretically, any one of these possible paths could be the correct one in terms
of the results you are trying to calculate. When the calculation engine encounters
numerous possible paths, it picks the shortest path, which will have less impact
performance-wise on query processing. Below are some general guidelines.
The calculation engine will always prefer paths that have no many-to-many
relationships. If all possible paths contain many-to-many relationships, the
path with the least number of this type of relationship is preferred.
Similarly, the engine will prefer one-to-one relationships over one-to-many
relationships.
If at the end of the first selection process more than one possible path still
exists, the engine will prefer the path containing the least number of tables.
Finally, if numerous paths are still possible, one is picked at random.
Breaking Relationship Cycles in Sisense
To ensure the calculation engine takes the path you want it to take, the cycle
must be broken. There are a few techniques to do this depending on the required
results.
Removing Relationships
One option is to remove one of the relationships in the cycle. For example,
removing the Customer ID relationship from the Sales History table will
eliminate the cycle. This approach is only applicable when the removed
relationship is not used by other queries.
Duplicating Table Elements
You can also use the Sisense web app to invoke a specific path to be used during
query execution (as opposed to the solutions mentioned above that are defined
on the schema level, in Sisense).
Each widget in Sisense has an associated data layout. If you have more than one
path connecting corresponding fields between two tables, you can enforce a
specific path by filtering the widget, and selecting just the field that you want to
use. For example if the Commerce table is connected to Brands via the Brand and
Brand ID fields, then add a filter to the widget and select Brand ID to use that
path in the query.
Many-to-Many Relationships
Note: The image on this page were taken in the desktop version of Sisense,
however, the same principles described on this page also apply to Sisense Online.
In databases, a Many-to-Many relationship exists when the value in each field
used to create a relationship between tables is included multiple times in each
table.
The problem with Many-to-Many relationships is that it can cause duplications in
the returned datasets, which can result in incorrect results and might consume
excessive computing resources. This section provides solutions and
workarounds to common scenarios with many-to-many relationships.
Example: A hotel may have a table with reservation data and a table with
payment data. Both tables include the name of the guest. A guest can have
multiple reservations under their name as well as multiple payments recorded
on their name. If a relationship exists between the reservation and payment
tables based on the guest’s name, a many-to-many relationship is created, as the
guest’s name appears multiple times in each table.
Summary of Relationship Types
One-to-One Relationship: In this scenario both sides of the relationship
have unique values for every row.
One-to-Many Relationship: In this scenario one side of the relationship will
contain unique values for every row, but the other side of the relationship
will contain duplicate values for any or all of the corresponding values in
the first table.
Many-to-Many Relationship: In this scenario, both sides of the relationship
will hold duplicated values, causing excessive calculations for every query
run against it.
There are several methods to resolve and bypass a many-to-many relationship.
The solution depends on the business model and the logic of the business
questions at hand. The following solutions differ by business logic and the
schema at hand; each solution can be applied to each schema respectively.
The following sections cover:
Testing your schema to see if it includes many-to-many relationships
Understanding which scenario best fits your current schema
According to your schema logic, applying the respective solution
To check if a relationship is Many-to-Many, you need to check the cardinality of
the relationship, and determine the number of unique and duplicate values on
each side of the relationship.
Testing if a Relationship is Many-to-Many
If the two values are equal, all guest IDs appear only once, making all values
unique. Even if the other side of the relationship has duplicate values for guest
ID, this is till a One-To-Many relationship, where the unique values are on the
reservations side, and the duplicate values are on the Payments side.
If there are more than two tables connected to this relationship, that is, if there
are more than two tables merged on the same field, a few more options exist. The
solution for the single many-to-many relationship will be a sub-problem of this
scenario. In this case, you’ll need to run the test on every table to see the
uniqueness or duplication of the merged fields.
Two Tables with One Relationship
This section describes two possible workarounds when you have a schema that
includes two tables with one relationship:
Two Separate One-to-Many Relationships
Creating an Aggregated Table
Two Separate One-to-Many Relationships
The direct solution for such a problem is to break this relationship into two
separate one-to-many relationships.
You can use the following diagram to understand the logic behind this testing:
This custom SQL expression will select the distinct OrderDateKeys and their
corresponding ProductKeys from the FactInternetSales, grouped by these fields,
together with single value aggregations for the different fields, in this case,
Discount Amount, Sales Amount and the average unit Price discount. After
merging the OrderDateKey and Product Key to the two other tables, you will be
able to pull the values from this new table into the rows or axes panel of a widget
in the Sisense Web Application with measures and additional aggregations from
the two other tables.
Note: The non-aggregated table needs to be a subset in terms of the primary
fields from the aggregated table.
Both tables don’t include unique values, and there are different values for
several fields in both the tables. Resolving this scenario incorporates both
solutions mentioned above. In this scenario, create an aggregated table and
a dimension table (both described above). The final resolution should look
like this:
Two Fact tables with a date dimension table and an aggregative Products
table
More than Two Tables with More than One Relationship
This section provides two possible workarounds when you have a schema that
includes more than two tables with more than one relationship:
Options include:
Using the Lookup function
Concatenating two tables into one
Using the Lookup Function
In most scenarios, you will aggregate values according to a given ID from the
unique side of the relationship to the duplicate side. However in specific cases
it’ll be vice versa.
For example in the following scenario, in which we have three tables, and
between them two one-to-many relationships, this can potentially create a many-
to-many relationship, if you query the two leaf tables. This means that the query
result table will have multiple rows which won’t be distinguishable one from the
other.
Concatenating tables
Using the following SQL statement, you can import the data from both tables,
with the IDs and the columns respectively:
SELECT s.id AS id, s.m1, s.m2, ToInt( NULL ) m3 , ToInt(
NULL ) m4
FROM [Table 1] s
UNION
SELECT t.id, ToInt( NULL ) , ToInt( NULL ) , t.m3, t.m4
FROM [Table 2] t
This will create a table with five columns:
Id
M1 (from table_1)
M2 (from table_1)
M3 (from table_2)
M4 (from table_2)
The values missing from each table respectively will be NULL’s which will result
in the following table.
Concatenated table – result set
Chasm and Fan Traps
Note: The image on this page were taken in the desktop version of Sisense,
however, the same principles described on this page also apply to the web-based
ElastiCube Manager.
Chasm and fan traps should be avoided when building your ElastiCube schemas.
Chasm Traps
A chasm trap occurs when two “Many-to-One” joins converge on a single table,
and the query includes measures from both leaf tables. As a result multiple rows
are returned from the tables when processing the query.
If you were to calculate both measures (Qty and Value) simultaneously, like in
the following example, the values for Customers will be multiplied due to the
inner join between the leaf tables, and the results may be incorrect:
Fan Traps
A fan trap occurs when two “many-to-one” joins follow one another in master-
detail form (OrderDetails), and the query includes a measure from both the leaf
table (OrderDetails) and its immediate master (Orders).
If you try to aggregate both measures simultaneously (using the query below),
you will probably get incorrect results:
An unbalanced hierarchy has at least one branch which does not reach down to
the lowest level. The below example of a company org chart is typical of an
unbalanced hierarchy. Some divisions have more levels than others.
Next you need to consolidate all the branching entities that roll to the same
placeholder parent to the same entity.
You then need to union the placeholder values back into the main hierarchy
table, and join and replace the appropriate parent IDs. This can be done in
either order, but the screenshot below shows the union, then the join.
Note the N/As in the table. These account for the unbalanced branches
where the placeholder values account for the ragged hierarchy.
Now it is a simple matter of mapping the new resolved hierarchy table back
into the data model. If the facts all roll to the lowest level of the hierarchy,
the above logic and resulting table will work as-is. If the facts need to be
attributed across different levels of the hierarchy, you would split the
structure into different tables. The resolved parent IDs can be used to link
across the hierarchy (see example below).
Roll-ups should now work seamlessly when using these new dimensions,
and this should be easily consumed on a dashboard.
Overview
When you build a data model, Sisense displays an intuitive build log that
describes each step of the build.
Build logs are useful for investigating problems that occurred during your build.
The log displays each table being built as its being built. You can click the table’s
name in the log to zoom in on the table in your schema. If a table fails to build,
you can click its name in the log and then open the table within your data model
to investigate potential causes for the failure.
Note: Your build log is available after your first build in Sisense V7.3 and later.
Once your build is complete or if the build failed, you can export a detailed log
file by clicking in the build log.
The exported log is a JSON file that provides details about each table. For
information about understanding the log file, see Working with Build Logs.
In addition, you can create a new dashboard from the build log or open any
existing dashboards related to the data model.
Working with Build Logs
If you need to troubleshoot an issue with a build, you can download the log from
the build log.
The build log is a JSON file that contains build objects. The build objects contain
key:value pairs that describe the build process for each table.
As the reasons for build failures vary and may be quite complex, there isn’t a
single solution for resolving build errors. If you are not able to solve the issue
yourself, save your logs and provide them to Sisense Support for additional
assistance.
The table below describes some of the keys that might be included in your log
and their possible values.
Key Description
Key Description
verbosity The type of information provided, such as Info, Warning, or Error. Info
indicates that the build was performed. Warning indicates that something
unexpected occurred, but the build was able to proceed. Error indicates that
an error occurred and the build could not be continued.
type The type of action being preformed by Sisense. There are a variety of
actions that may be performed, some are relevant to the table, others to
Sisense itself.
serverId Identifier for the server where the build was performed.
serverName The name of the server where the build was performed.
typeValue This is a generic object that contains information about the build process.
The keys in this object vary depending on the build stage.
Click Analyze Data and Sisense will analyze the data and display a list of
groups. The method Sisense uses by default is to group similar strings and
make it less inclusive.
OR
Click Change Grouping Method to modify how Sisense groups your data.
After you have selected the relevant method, click Analyze Data.
A list of groups and their members are displayed.
Modify the group as required and click Done. A new custom table is added to
your data model.
Modifying Groups
Before creating your custom columns, you can modify Sisense’s recommended
groups manually. The Group Similar window contains a variety of options for
modifying your groups.
Enter the name of a group or its members to filter the list of members
displayed.
Click to sort the list of groups by size or alphabetically.
Select which members are to be grouped when adding to your custom
columns. By default, all groups are selected.
Click the Group Name to rename it, replace it with another group, or merge
the group with another group. When merging with another group, the
members of the first group are added to the group you select. When the
column is created, all members receive the group name of the group they
are merged to.
Click a member to move it to another group or create a new group from that
member.
Editing Grouped Custom Columns
After you have created your custom columns, you can edit your groups. Any
changes you make to the groups affect the data displayed in your dashboards
after your next build.
From your ElastiCube model, you can edit the groups by selecting the relevant
table and click Group Similar (Edit).
Note: If you edit the table by clicking Edit & Preview, any changes you make are
overwritten the next time group your data.
After you click Group Similar (Edit), the Group Similar window is displayed
with a list of your groups. You can now modify the groups as necessary. For more
information, see Editing Grouped Custom Columns. As you make your changes,
new values are highlighted in yellow and you can sort
Limitations
Sisense supports up to 1000 unique values based on the largest groups.
Custom columns can be migrated with your ElastiCubes, but if you want to
make any changes after migrating them, you must regoup your data from
scratch
Sisense supports grouping data on tables up to 10 million rows
Adding a Custom Column
Sisense makes it easy for you to add new columns to existing tables. This can be
useful if you need to combine data from different existing columns, and when you
need to cleanse and prepare data. The new columns also provide Designers with
additional fields to use as is, or as a basis for even more advanced calculations in
their widgets. You can use SQL to customize the values contained within the
custom columns.
For a short video overview of adding a custom column to your data model, see
below:
OR
In the ElastiCube model, select the table and click and Add Custom
Column.
The new column will be added to the table, and an SQL Editor is displayed
where you define your custom SQL expression.
In the New Custom Column field, enter the name of your custom column
and click .
In the SQL Editor, enter your custom expression.
Click to add your column to the table.
Custom Field Use Cases
If you save the invalid expression, Sisense continues to use the last valid
expression that was saved when building an ElastiCube, but the next time you
open a preview of the table, the invalid expression will be displayed. This allows
you to continue building working ElastiCubes while letting you save incomplete
expressions for later.
If you wish to display the last valid expression, you can click the Refresh button
in the menu bar and then press Save.
If you save the invalid expression, Sisense continues to use the last valid
expression that was saved when building an ElastiCube, but the next time you
open a preview of the table, the invalid expression will be displayed. This allows
you to continue building working ElastiCubes while letting you save incomplete
expressions for later.
If you wish to display the last valid expression, you can click the Refresh button
in the menu bar and then press Save.
SELECT STATEMENT
SELECT SELECT column_name(s)
FROM table_name
Note: Nested SELECT statements will not work with an AND clause in Sisense.
IN SELECT column_name(s)
FROM table_name
WHERE column_name
IN (value1,value2,..)
When pulling together data from multiple sources, you will have a number of
different dates. Marketing has a Campaign Date, Sales has an Opportunity Date
and Finance has a GL Date.
Modeling Challenge
This type of data leaves us with three sets of dates. Modeling it properly will
allow you to select from one common date field while still leaving you the option
to choose from one of the three date fields individually.
Solution
Create a custom table that retrieves a unique list of the dates used between the
three tables.
This gives us the common date field to use. This allows, for example, to select a
month that will narrow down the selections across all three tables.
Financial Reporting
Business Case
Transactional systems are meant for handling transactions and not for reporting
and analysis. For example, Financial GL data will include all the transactions but
may not include all income statement or balance sheet reporting definitions.
Modeling Challenge
Here is what our sample GL entries look like. It is not very useful to analysis and
reporting.
Another data source is needed to help define how the data will be analyzed and
reported.
Start by bringing in another Data Source that contains details about the accounts
and how they are categorized:
The two tables are linked on the account number. As there is one record in the GL
Categories for multiple rows in the GL Entries, this is known as a One-to-Many
Relationship.
The end results show that we can easily view the data in an organized fashion for
analysis and reporting.
Looking Up Values
Business Case
Sometimes it is necessary to look up a value from one table and bring it into
another table. For example, knowing how much a Marketing Campaign costs
versus the Sales Opportunity amount.
Modeling Challenge
These two amounts typically reside in different systems. We need to look up the
value from the Marketing system and bring it into the main Sales table.
Solution
In the Sales Opportunities table, create a custom field that will allow to look up a
value from the Marketing Campaigns table based on the Marketing Campaign ID.
You can do this using the Lookup function. For details, see here.
Reformatting Data
By reformatting a field, you can create a more readable, and more usable format
for analysis, as well as less space consuming in some cases. For example, convert
a date field to a numeric field. You can reformat fields within the ElastiCube using
a custom SQL expression. An example:
Numeric Representation of Date Fields
Business Case
Create a “Date” table using a numeric representation of a Date field instead of the
Date field itself to improve query performances. In addition, a numeric
representation of a Date can provide the ability of filtering the data by time
range.
Solution
Derived Facts are additional facts that we calculate while importing or delivering
the data. For example:
Modeling Challenge
You must decide whether to calculate the derived facts “on demand”, meaning in
the web application, or in advance in the ElastiCube. Take into consideration that
calculating ‘On Demand’ Derived Facts in the web application can enable more
dynamic filtering, while calculating them in the ElastiCube stage will save query
time when retrieving the data, and enforce calculation consistency, especially
with non-trivial facts. This is due to the fact that the dashboard designer/end
users will receive consistent results for measures, instead of having to create the
complex measures individually, by their own understanding.
Solution
In the following schema you can create a derived fact to calculate the inventory
ratio per product.
Create a custom table using an SQL Expression that joins the “Order Details”
table with the “Products” table and returns the division result of “Quantity” and
“UnitOnOrder”, with the following Syntax:
SELECT
[Products].ProductID,
tofloat(sum(UnitsOnOrder))/tofloat(sum(Quantity)) AS
InventoryRatio
FROM [Products] JOIN [Order Details]
ON [Products].ProductID=[Order Details].ProductID
GROUP BY [Products].ProductID
HAVING
tofloat(sum(UnitsOnOrder))/tofloat(sum(Quantity))>0
The result table will give the desired results:
Connect the custom table to the rest of the tables:
Note: You can also add the “InventoryRatio” measure to the “Products” table
using the Lookup() function by “ProductID”.
Calendar vs. Fiscal Year
Business Case
A large number of companies use a fiscal calendar that does not comply with the
Gregorian 12-month calendar.
Modeling Challenge
This requires modeling the data properly so that the data can be reported or
analyzed via the normal calendar or via the revised fiscal calendar.
Solution
In this example, let’s assume that the Fiscal Calendar starts on September 1st. So
if we are in the calendar year of 2013, then the fiscal year of 2014 starts
September 1st. To accomplish this, we create a custom field that takes the date
field and adds four months to it.
When you create a pivot table in the web application, you will see that the new
year (2014) starts in September using the Fiscal field.
Time Zone Conversion
Business Case
In many cases, we need to generate reports based on data from different time
zones.
Modeling Challenge
When working with different time zones, the challenge is to store all of the
business transactions in an absolute time reference that does not change with
the seasons, locations (for instance – GMT), or daylight saving. Therefore, the
absolute transition time is a combination of location and date.
Solution
The aim is to add an “absolute time” field to every business transaction, based on
its location and time.
Step 1 – Create a Reference Source Table
Create a source table (database table / Excel / CSV) that contains the countries
and cities that exist in the database, a numeric representation of timestamp
range to determine if the transaction belongs to daylight savings time or not (see
this web site), and the UTC to allow the conversion to GMT.
For example:
Country City DST_From DST_To UTC
Most data for entities is recorded in their local reporting currency (ie $ for United
States, £ for UK). Here we want to convert all the amounts to USD.
Modeling Challenge
This requires determining the Currency Rate of the region and then multiplying
the value in local currency by the associated Exchange Rate by Month.
Solution
Create two custom fields in the GL Entries. The first will look up the Currency
code of the region. This field will be used along with a month field to link to the
Exchange Rates table.
The first field in the GL Entries is created using the lookup function to retrieve
values from the Currency Codes table.
Lookup([Currency Codes],[Currency Code],Region,Region)
Then create a second Custom Field for the Month of the GL Date.
GetMonth([GL Date])
Next, link the fields together (note that both Month fields were set to Integer and
the Currency Codes table to Invisible).
The Local Amount multiplied by the Exchange Rate gives the Converted USD
Amount.
Current vs. Previous Period for Specific Date
Range
Business Case
In many cases we would like to compare our business’ performance last week, to
the week before, or maybe we would like to see a percentage of sales growth for
the current month/quarter compared to the previous month/quarter.
Modeling Challenge
Since we want the compared time range to be as flexible as possible, the solution
has to include both layers – ElastiCube and web application.
Solution
Create a custom table in the ElastiCube to summarize the totals/counts per day
for the source table:
SELECT
a.Date,
sum(a.Revenue)AS value
FROM [Accord 2011 Client List] AS a GROUP BY a.Date
Create a custom table in the ElastiCube with current vs. previous values, by
adjusting the script below:
SELECT
curr.Date AS date,
curr.value AS current,
prev.value AS prev
FROM [sum] curr
LEFT JOIN [sum] AS prev
ON curr.Date = addyears(prev.Date,1)
UNION
SELECT
addyears(prev.Date,1) AS date,
curr.value,
prev.value
FROM [sum] prev
LEFT JOIN [sum] AS curr
ON prev.Date= addyears(curr.Date,-1)
In the web application, add a ‘date range picker’ using the days from the custom
table. Then add two new numeric indicators. In the first numeric picker add the
‘sum of the current value’, in the second numeric picker, add the ‘sum of the
previous value’.
In the date range picker, select the days of interest and you will see the current
and previous values.
Calculating the Number of Open Orders per
Day
Business Case
An open sales order is where the order has been placed but has not yet been
delivered. If for examle there is an order for 100 items and against this order
only 50 items have been delivered (it is partially delivered). A high level of open
orders per day may indicate that something is wrong with orders handling.
Modeling Challenge
We cannot just count the number of orders per day because it will exclude orders
that were open on a certain day and are already closed. Therefore, we will need
to create a snapshot of the number of open orders per day.
Solution
Import an Excel file with all dates listed in the Orders table into the
ElastiCube.
To improve query performance, convert all the date fields into numeric
representations (for more information, see Numeric Representation of Date
fields).
Create the following custom table:
SELECT
s.Dates,
tm.Created_At,
tm.Closed_At,
tm.TicketId
FROM [All Dates] s LEFT JOIN [Orders] tm
ON s.DateInt >= tm.CreatedAtInt
AND (tm.SolvedAt IS NULL OR s.DateInt <= tm.SolvedAtInt)
Slowly Changing Dimensions
Business Case
Transactional data typically does not change, however the data that describes the
associated dimensions may change. This example demonstrates how to manage
dimensions that may be updated with new values within the data warehouse at
different points in time.
For example, a customer that was living in NYC and moved to LA earlier this year.
Date Customer City
1/1/2011 John Smith NYC
1/1/2013 John Smith LA
Modeling Challenge
Following the example above, when the transactions were made last year, the
customer was living in NYC. Later this year, the customer moved to LA.
If you decide to refer only to the last city and summarize revenue by city, the NYC
transaction will be credited to LA only because the customer currently lives
there.
If you connect the “Customer” field within the above table to the “Customer” field
in the fact table, you will create a “Many to many” relationship because
“Customer” is not a unique identifier of this table.
Solution
The solution is to change the level of granularity of the “Customer_City” table and
add the “Date” field to the key –
Concatenation of the Slowly Changing Dimension table’s unique identifier (for
example – Customer_ID + Date)
Creation of the same concatenated field in the transactions table.
Merge between the 2 keys.
This way, you can associate the [Customer_ID + Date] key of every transaction
with the relevant customer city.
Functions Overview
Sisense supports many functions that you can use for data calculations.
For a short video overview of the available types of functions, see below:
If your data set is very large, a build may take some time. You can cancel the build
in the build log that is opened when you run a build.
To build an ElastiCube:
In the Data page, open the relevant ElastiCube and click . The Build
Options dialog box is displayed.
Select Replace All, By Table, or Changes Only. Replace All builds the
ElastiCube from scratch with the current data from all the sources in the
schema. By Table builds the ElastiCube as defined on the table level where
all tables not defined are built from scratch. Changes Only builds the
ElastiCube with data for tables that were added to the schema or modified
since the last build. For an in-depth description of these settings and the
implications of each setting, see ElastiCube Build Settings.
Toggle the switch below to limit the amount of rows imported for each table.
This is useful for building samples of your data and reduces the overall
amount of time it takes to build an ElastiCube.
Click Build.
A log is displayed that describes the build process. When the build is
complete, the following message appears in the logs: Build successfully
ended.
Building ElastiCubes Remotely
Note: This functionality is only available in the desktop version of Sisense. This
functionality will be available Sisense in the near future.
You can build the ElastiCube locally on your machine or build the ElastiCube
remotely from another machine in which Sisense is installed. This is useful for
example when your configuration supports Test and Production environments.
For more information on setting up production environments, click here.
When connecting remotely, your ElastiCube server must have Sisense installed
and a unique Sisense license. While you can have multiple Administrators
working on and building an ElastiCube, only one Administrator can work on an
ElastiCube at a time to prevent data corruption. In addition, the machine in which
the build is performed, must have sufficient resources to be able to handle all of
your data. See Sisense’s minimum requirements for more information.
To build an ElastiCube remotely:
On the ElastiCube server where the ElastiCube is to be built, open ports 811
and 812 for inbound and outbound access.
In Sisense, open the Sisense Server Console by clicking +.
In the Connection Settings window, enter a name for the server and its IP
address.
Click Connect. The list of ElastiCubes for that server are displayed in the
Sisense Server Console.
In Sisense, click Build.
Under Target Server, select the new server you have just added.
Define your build settings and click Build.
ElastiCube Build Settings
When you build your ElastiCube, data is imported from your data sources into
the ElastiCube according to settings you define on the model level and on the
table level.
This topic describes how data can be imported on each level and the implications
of each of the ElastiCube build settings.
Model Level
On the model level, you have three choices for importing data, Replace All, By
Table, and Changes Only.
Replace All
When you replace all your data on the model level, any existing data imported
into your ElastiCube is overwritten and any custom tables or columns are
recalculated. Sisense imports an exact copy of your data from the source. If the
size of your data is large or the connection speed to the source is slow, it can take
a long time to build your ElastiCube.
The diagram below illustrates what happens before and after a Replace All build:
Note: While building the ElastiCube with schema changes or entire ElastiCube
builds, you can continue to run queries. In the event that the build fails, Sisense
restores the original version of the ElastiCube and attempts the build again.
While Sisense restores the original ElastiCube, some downtime may occur while
Sisense copies the ElastiCube to your drive. The downtime is the amount of time
it takes to copy the ElastiCube locally. If you require high availability for your
data, Sisense provides this through ElastiCube Sets. When Sisense restores an
ElastiCube a copy of the original ElastiCube is created. You should verify that
your server can store multiple copies ElastiCubes until the restoration process is
complete.
By Table
When you build By Table, all your data is overwritten except for tables where
you have specifically defined their build behavior in the schema.
This option is only displayed when a table’s build behavior has been defined in
the schema. When you have customized a table’s build behavior, an icon is
displayed that indicates the table’s build behavior, for example, Changes Only
or Append . These icons are also described in the legend in the bottom-right
corner of the schema.
In the Build Settings dialog box, you can click the table links to see which tables
have been configured or are set to be overwritten.
For more information about table build behavior, see Table Level below.
Changes Only
When you build by Changes Only, you build only new tables or tables that have
changed since the last build. This is useful when you frequently need to refresh a
large data source. For example, if you have a data source that is updated daily,
rather than rebuild the entire ElastiCube daily, you can just import the new data
added each day. This option can significantly reduce the amount of time it takes
to complete a build.
Tables that have changed since the last build include the following:
New tables that were added
Tables where columns were added or dropped
Custom tables where the expression has changed
Tables with custom columns where the expression has changed
Custom tables that have SQL expressions which reference other tables that
have changed
If your table meets any of the above criteria, then the table’s data is overwritten
and rebuilt from scratch.
Table Level
You can define your build’s behavior per table by selecting the table’s menu >
Build Behavior, and selecting the relevant option.
Then, when you define what type of build you want to do, select the By Table
option.
You can set the build behavior of a table to one of the following options:
Replace All (Default)
Replaces all data at the time of the build. This is recommended for dimension
tables, for example: store attributes, or dimensions, which describe the objects in
a fact table.
Append
Adds all the data from the source table and appends it to the existing data in the
ElastiCube.
The diagram below illustrates what happens before and after an Append build:
On Day 2, the data taken from the source was appended onto the existing data in
Sisense without ignoring any rows of data.
Changes Only
Does not import any data unless changes have occurred in the table. This is
recommended with summary/snapshot fact tables and with data marts (smaller
subsets of data, tailored for specific needs).
Tables that have changed since the last build include the following:
New tables that were added
Tables where columns were added or dropped
Custom tables where the expression has changed
Tables with custom columns where the expression has changed
Custom tables that have SQL expressions which reference other tables that
have changed
Accumulate By
Some data sources (for example, CSV files) do not support accumulating data on
the column level, and in such cases data will be duplicated. The table below lists
the data providers that do not support accumulative builds and appending data
to tables.
Note: Data providers that are not listed in this table support accumulate
builds both by appending to table and accumulating by column.
Sisense Web Application Desktop ElastiCube Manager
Each live data source has its own requirements. For documentation for the
relevant live data sources, see the table below:
Connector More Information
The table below describes the menu options available from the Navigation Pane
and the corresponding icons available in the table’s menu. Either method allows
you to modify and manage your tables.
Navigation Table Icon Description
Pane
On the right side of the column’s name is an icon that indicates if the column is
connected to another table through a relationship. You can hover over the icon to
view more details or disconnect the relationship.
For each column, you can hover over its name to display a menu from where you
view the following options for managing your columns:
Menu Option Description
Connector Service
Redshift
While you can create dashboards from a live data model like you would an
ElastiCube, you can also add live data models as a data source to a dashboard
that already has a data source such as an ElastiCube. When you have multiple
data sources working together on a single dashboard, the data source and the
widgets built on it operate independently of each other. This allows you to view
widgets that visualize time sensitive information in addition to widgets that are
refreshed less frequently. For more information about adding multiple data
sources, see Changing a Dashboard’s Data Source.
In terms of governance, all existing access rights settings and data security
settings can be applied for live connections.
Load Management
There are several ways in which you can refresh a widget build on a live data
model depending on your Sisense user role.
Administrators set the default refresh and can refresh the data manually from
the Data Sources tab in the Admin page of Sisense.
In addition, Designers can reset the Refresh Rate, however, the rate cannot be
lower than the default rate set by the Administrator.
Like Designers, Viewers can refresh a widget from the widget’s information
window , but they cannot modify the refresh rate.
While any users can refresh a widget, Sisense has a minimum 10 second refresh
limit. Any refreshes requested within 10 seconds are ignored.
Canceling a Refresh
If you have a refresh that you want to cancel, you can cancel it by clicking Cancel
in the widget’s information box.
This button is displayed only when a refresh is in progress.
In addition, any time a user leaves a query, for example, to view another page in
their browser, Sisense pauses the query.
Deleting ElastiCubes and Live
Models
When you no longer want to use an ElastiCubeor live data model, you can delete
them from the Data page.
Deleting an ElastiCube or live model removes it from the server and the
ElastiCube’s folder saved locally on your hard drive. After they have been
deleted, they cannot be restored.
If your ElastiCube or live model has any dependencies, or entities such as
dashboards, that are currently connected to it, some of these entities will also be
deleted and you will be prompted to remap to another data source. Entities that
are deleted when you delete an ElastiCube include:
Data security rules
Build alerts
Drill hierarchies
Entities that are not deleted, but should be remapped to another data source
include:
Dashboards
Widgets (from other dashboards)
Pulse Alerts
Entities that you can remap to another data source are clickable links that when
clicked, display a list of all the entities that need to be remapped.
You can choose to remap the entities to another data source manually or select
the new data source from the list on the bottom of the Delete ElastiCube dialog
box. If you do not remap the entities, the dependencies will not work until you
apply a new data source.
Note: Any temporary folders that were saved locally during failed builds are not
deleted when the ElastiCube is deleted and must be removed manually.
To delete an ElastiCube or live model:
In Sisense, click Data in the top menu.
In the Data page, click the menu of the relevant ElastiCube or live model and
select Delete.
Click Yes to confirm you want to delete the ElastiCube or live model.
OR
If you ElastiCube or live model has any dependencies, remap those entities
or select None to remap them later.
Sisense Server Console
Note: This feature is currently available in the desktop version of Sisense. This
feature will be migrated into Sisense in the near future. For more information,
see Sisense V7.0 Backwards Compatibility.
You can use the Sisense Server Console to perform various management tasks on
your ElastiCubes, including:
Scheduling Data Loads
Importing and exporting data
Attaching and detaching directories
Changing the Location of your ElastiCube Data Storage
Canceling Running Queries
To open the Sisense Server Console:
Right-click the systems tray and double-click the console icon .
or
Click on the Windows start menu, and select All Programs > Sisense >
Sisense Server Console.
ElastiCube data is stored in a default folder, which you can change in the Sisense
Server Console.
Changing the Location of the ElastiCube Data
Storage
To change the folder:
From the Windows start menu, open the Sisense Server Console.
In the top panel, click on the cog icon to view/change server preferences.
Click Browse next to Default server data folder.
Select the location of the folder where you want to store ElastiCube data, and
click OK.
Canceling Running Queries
You can cancel all running queries in your ElastiCube to free up resources. This is
useful in cases where your ElastiCube is consuming too many resources, and as a
result, causing the Sisense Web Application to be unresponsive.
To cancel all queries:
Click on the Windows start menu, and select All Programs > Sisense >
Sisense Server Console.
Click the relevant ElastiCube to view the menu panel.
Click Cancel All Queries.
Dashboards
After importing data into Sisense, the next step is to create dashboards that
Viewers can interact with.
This section will show you how to get started working with your dashboards.
Creating Dashboards
Designers and Dashboard Designers can create dashboards from the Analytics
page where all your existing dashboards are displayed.
When you create a dashboard, your dashboard is initially empty. The next step is
to add widgets, or visualizations, to your dashboard to make it meaningful.
The topics below provide information about creating dashboards, adding
widgets to it, and customizing the data displayed in the dashboard.
Creating Dashboards
Adding Widgets to a Dashboard
Managing Widgets
Filtering Dashboards
Formulas
Working with Time
Customizing the Dashboard Layout
Changing the Color Palette
Changing a Dashboard's Datasource
Managing and Sharing Dashboards
As a Designer, you can manage dashboards that you have created, or that have
been shared with you; these topics explain how.
Organizing Dashboards
Locating Dashboards
Deleting Dashboards
Copying Dashboards
Sharing Dashboards
Interacting with Dashboards
Now that you've created your dashboards, it's time to start interacting with
them.
The topics below will help you learn how to get the most out of your dashboards.
Viewing Dashboards
Interacting with Filters as a Viewer
Changing Sisense’s Language
Drilling Down in a Widget
Making Selections in a Widget
Exporting Dashboards
Creating Dashboards
There are two ways you can create dashboards: the first is through the Sisense
Analytics page, and the second is through the Sisense REST API.
The difference between these two methods is that the Analytics page provides
an interface where you populate the dashboard with widgets.
To create a dashboard through the REST API, you define the dashboard and then
populate it with widgets that already exist through their widget IDs.
Creating a Dashboard
Each Dashboard is based on the data selected from one or more ElastiCubes or
Live data sources. The instructions below assume that the required ElastiCube(s)
and Live data model(s) have already been created. You can also use the sample
ElastiCubes that are installed with Sisense if you have not yet created your own.
For a short video overview of creating dashboards, see below:
To create a dashboard:
In the Analytics page, click + above the Dashboards list.
OR
Right-click on the folder menu and select New Dashboard.
Click the name of the Data Set displayed to select the ElastiCube or Live data
model you want to work with. ElastiCubes have the next to their name
while Live data models have the icon next to their name.
Click the name of the Title, and enter a name for the dashboard. This name
will appear at the top of the dashboard, and in the Dashboards list.
Click Create.
You are then automatically guided through the process of creating your first
widget in the Widget Wizard, as described in Adding Widgets to a
Dashboard.
Creating Dashboards through the REST API
The Sisense REST API enables you to programmatically create dashboards by
defining the basic properties of a dashboard such as Title, datasource, and owner.
After defining the properties of the dashboard, you define its visualizations by
including the widget IDs of pre-existing widgets.
To create a dashboard through the REST API:
In Sisense, click Admin at the top, and then REST API, followed by REST API
Reference.
datasource Object that defines the data source where the dashboard pulls
its data.
This object contains the following elements:
title: The name of the data source.
id: The address and name of the data source where the
dashboard queries its data from.
address: The address of the dashboard.
database: The name of the data source where the data is
pulled from by the dashboard.
fullname: The name of the data source.
filters This object defines the dashboard filters that the user add goes
to the "filters" object in the .dash file.
This object contains the following elements:
datatype: The type of data affected by the filter, for example,
text.
title: The name of the filter displayed in the Filters pane.
layout Object that defines what widgets are displayed in the
dashboard and their layout.
This object contains the following elements:
type: String that defines how the layout of the dashboard. This
value should be "columnar".
columns: Array objects that defines the width of each column
in the dashboard and how widgets are displayed in each
column.
cells: Object that contains the subcells.
subcells: Object that contains the elements objects where
Key Value
In the Data Browser, select a field to add to your widget. The field that you
select is automatically displayed in a suggested widget. When only a single
numeric field is selected, it is displayed as an Indicator widget. A single
descriptive field is displayed as a Pivot widget.
Single Numeric Field
An icon appears to the left of each field to indicate its data type:
Date
Alphanumeric string
Numeric
As you type into the Data Browser, the list is dynamically filtered to only show
the fields that contain the text you typed.
Simply clicking a field to add it to the widget generally provides great results,
however there are more options in the Data Browser.
Hover over a field in the Data Browser and click More … to display additional
aggregation (quick functions) and filtering options.
Click the button to define formulas (free-form expressions) that define
the field values and filters of a widget. A rich variety of functions are
provided for you to use in the formula that you define.
To learn more about these options, see "Formula Editor" on page 556.
Area Chart
An Area Chart is very similar to a Line Chart except that the areas under each line
are filled in (colored), and it is possible to display them as stacked. The chart is
recommended for displaying absolute or relative (stacked) values over a time
period.
Adding Data
In the Widget Designer, click + Select Data to select the field(s) whose values
will be placed on the X-Axis.
Typically, the X-Axis of an Area Chart is used to represent time. You must
add at least one item to the X-Axis. You can add at most two items. When
you add two X-axis items, the chart’s two X-Axis are combined.
In the Values area, click Add+ to select the field whose value determines the
height of the area in the chart. Typically, the Y-Axis of an Areas Chart is used
to represent numeric data.
You must add at least one field to Values. When you add more than one
Value, then each item is represented in the chart by its own color and area.
Break by (optional): Click Add + to select a field by which to break up
(group) the data represented in this chart.
Each field added to Break By is represented by its own area in the chart
and is automatically added to the chart’s legend.
This is an optional field, and operates under the following conditions:
You can add at most one Break by field.
The Break by option is available only when a single field was added to
Values (Y-Axis).
You can add only a single field to Values, if the Break by option was used.
Designing the Area Chart
To fine-tune the appearance of the Area Chart widget, open the widget in Edit
mode and on the right pane you can modify your Area Chart with the following
options:
Area Types: Select how areas are represented in the widget:
Classic: Areas overlap, meaning that smaller areas appear on top of
larger areas and cover them. The colors indicate the distribution
between the values.
Stacked: Areas are stacked on top of each other and do not overlap.
Hover over the columns to see the percentage distribution among the
values.
Stacked 100: Areas are stacked on top of each other (but do not
overlap). The combined area is stretched to the top in order to
represent 100%. This option is most commonly used when the relative
distribution of the values is more important than their aggregation.
Line Type: Select how the line appears in the widget: Straight (Default) or
Smooth.
Line Width: Select either Thin, Bold (Default) or Thick.
Legend: Specify whether to show or hide the Legend and its position.
Value Labels: Specify whether to show or hide labels showing values in the
Area Chart.
Box plots divide five descriptive statistics into four equal quartiles. You can view
these statistics by hovering over the Box Plot.
For a short video overview of the Box and Whisker plot, see below.
Adding Data
In the Categories panel, click Add + to select the field whose values will be
placed on the X-Axis. The X-Axis of a box plot is used to represent numeric
data.
In the Values panel, click Add + to select the field whose values will be
placed on the Y-Axis.
Design the Box Plot
You can fine tune the appearance of the Box Plot widget with the following tools.
Whisker Values: Defines how the whiskers are calculated and displayed.
IQR (Interquartile Range): Default setting. The whisker values are
calculated within 1.5 times the IQR (the difference between the 1st
and 3rd quartiles).
Extremums: The whiskers' values include the maximum and minimum
values in the calculation.
Standard Deviation: The whiskers' values are calculated to one standard
deviation above and below the mean of the data.
Box: Specify whether to display a full or hollow box.
Value Labels: Specify whether to show or hide labels indicating the values of
each point (circle). Select the orientation of these labels: Horizontal
(Default), Diagonal or Vertical.
Legend: Specify whether to show or hide the Legend, and select its position.
Show Outliers: Specify whether to show or hide labels indicating the values
of each point (circle). Select the orientation of these labels: Horizontal
(Default), Diagonal or Vertical.
X-Axis and Y-Axis:
Grid Lines: Shows (Default) / hides.
Labels: Shows (Default) / hides.
Title: Select the checkbox to display the axis title. To edit the title, type
in a new title. Click outside the text box to apply the new value. To
change the default minimum, maximum or interval values on the axis,
type in the new values, and click outside the text boxes to apply the
new values.
Values on Axis: To restore any of the values to their default states, click
the reset button.
Auto Zoom: When a widget contains more data than can comfortably be
displayed in one view, Auto Zoom will resize the chart to include more data,
and in some cases adds a zoom bar under the widget. The zoom bar enables
you to scroll right and left and to zoom in/out of different parts of the width
of the widget.
Calendar Heatmap
The Calendar Heatmap widget visualizes values over days in a calendar-like
view, making it easy to identify daily patterns or anomalies.
Week Begins On: Select the first day of the week to be represented in the
calendar.
More Configuration Options
Grey Out Weekends – If on, the weekend days will be colored grey in the
calendar.
Show Day Number – Toggle whether to show the calendar day numbers
inside the widget.
Show Day Name – Toggle whether to show the day name abbreviations on the
calendar.
Column Chart
The column chart can be used in different business scenarios, especially for
comparing items, and comparing data over time. The chart can include multiple
values on both the X and Y-axis, as well as a break down by categories displayed
on the Y-axis.
Adding Data
In the Categories panel, click Add + to select the field(s) whose values will
be placed on the X-Axis.
Typically, the X-Axis of a Column Chart is descriptive data. You must add at
least one item to Categories, and at most, two items.
When two Category items are added, then the chart’s X-Axes are
automatically grouped. To change the order of the categories, drag a
category up or down in the Categories list.
One Category Item
Two Category Items
In the Values area, select the field whose value determines the height of the
columns by clicking Add +. Typically, the Y-Axis of a Column Chart is used
to represent numeric data.
You must add at least one field to Values. When more than one Value is
added, then each item is represented in the chart by its own color and area.
Break by: Select a field by which to break (group) the data represented in
this chart by clicking Add +.
Each group is represented by a different column and is automatically added
to the chart’s legend.
This is an optional field, and operates under the following conditions:
At most one Break by field can be added.
The Break by option is available only when a single field was added to
Values (Y-Axis).
Only a single field can be added to Values, if the Break by option,
described below, was used.
Define filters for the widget, as described in Filtering Dashboards.
Designing the Column Chart
Fine-tune the appearance of the COLUMN CHART Widget, using the following
tools:
Column Type: Select how columns are represented in the Widget:
Classic: Columns are displayed side by side.
Stacked: Columns are stacked on top of each other and do not overlap.
The tooltips over the columns show the percentage distribution
among the Values.
Stacked 100: Columns are stacked on top of each other (but do not
overlap) and the combined column is stretched to represent 100%.
This option is most commonly used when the relative distribution of
the values is more important than their aggregation.
Selecting the Column Type
Legend: Specify whether to show or hide the Legend and its position.
Value Labels: Specify whether to show or hide labels showing values in the
Column Chart. You can also select the angle of the labels.
Gauge Indicator
For a gauge, select the minimum and maximum values that can be
represented by the gauge. These values can either be set as a fixed numeric
value that you specify or as another numeric field that you select using the
Data Browser (thus making the value dynamic).
In an Indicator widget, you can also define whether an icon appears in the
Widget and the icon’s color. For example, you can define a red arrow
pointing downwards for a negative value. You may refer to Defining
Conditional Coloring – Condition Tab for more information.
Designing the Indicator
Fine-tune the appearance of the Indicator widget, using the following tools:
Indicator Type: Select whether the Indicator appears in Numeric form or as
a Gauge.
Numeric Gauge
Note: If you significantly shorten the height of an Indicator widget in the
dashboard, it automatically turns into a Ticker type Widget. You may refer to
Ticker Widgets for more information.
Legend: Specify whether to show or hide the Legend, and select its position.
To add a title to the legend, so that users understand clearly which
dimension is displayed in the chart, see here.
Labels: Select which labels to display on the pie chart, as indicated below:
Note: Sisense rounds up numbers in Pie charts and this may lead to the
percentages totaling to 101%.
Exploring Pie Charts
You can drill down into pie charts just like other widgets. In addition, when your
pie chart has so many smaller slices that they are aggregated into a single slice
called Others, you can click this slice to display a second pie chart containing a
breakdown of the Others slice.
For example, the pie chart below displays a breakdown of the top 5 slices in a pie
chart with many smaller slices included in the Others slice.
By clicking the Others slice, you can see a breakdown of all the slices included in
the Others slice.
By default, the Others slice of the Pie Chart is set to include all categories below
3%. You can manually change this to another value. The change will be applied to
all your Pie Charts. For details, click here.
Pivot
Pivot tables are one of the most useful widgets for visualizing data. They enable
you to quickly summarize and analyze large amounts of data.
Adding Data
Select the data to appear in the Pivot.
In the Rows panel, click Add + to select the field(s) whose values will be
placed in the rows of the Pivot table.
When more than one Row is selected, the Rows are broken into sub-rows
(groups). For example, the following shows Condition added as a second
Row:
In the Columns panel, click Add + to select the field(s) whose values will be
placed in the columns of the Pivot table.
You can drag and drop the fields that you added to Columns to the Rows
area and vice versa.
In the Values panel, select a field whose values will appear in the Rows and
Columns of the Pivot table.
Tip: Right-click the value to add data bars to your pivot table.
Subtotals
You can add subtotals to one or more rows, and define how to calculate subtotals.
To add subtotals to rows:
Click on the menu of the Row in the Data Panel, or right-click on the row
name (header) in the widget, and select Subtotals.
The default option is Auto, which aggregates all the data. The other custom
options (Sum, Min, Max, etc.) calculate only the values in the rows above the
subtotal.
Look at the following example:
In the top example, using the Auto option, the subtotal for average revenue
aggregates all the sales and revenue data, thus representing a true subtotal of the
average revenue for the Asia region.
In the bottom example, Average is used to calculate the subtotal, and therefore
calculates the average of all the average revenue values in the rows above the
subtotal.
Grand Totals
Select how the rows and columns of the Pivot table are highlighted.
Exception Highlighting
Conditional formatting can be used for exception highlighting in a Pivot table. For
example, as shown below:
Limitations
Sisense supports the exporting of pivot tables of up to 1.5 million cells.
Attempting to export a higher number of cells might result in a timeout. The
following properties of a pivot table increase the probability of reaching a
timeout when dealing with very large tables:
Sub totals or Grand totals
Complex formulas in Values
Data Security rules
Widget-level filters
To successfully export pivot tables, you are advised to split pivot table with many
columns to separate pivot tables.
Polar Chart
Use the polar (radar) chart to compare multiple categories/variables with a
spacial perspective in a radial chart.
Adding Data
Click Add + to select the field whose values will be represented as columns in
the circle. Each Category gets its own data point.
Typically, the Categories of a Polar Charts are descriptive data.
In the Values area, click Add+ to select the field whose values determine the
distance of the column from the center of the polar circle. This is typically
used to represent numeric data.
When you select more than one value, they are stacked on top of each other.
Select a field by which to break (group) the data in this chart by clicking Add
+.
Each field added to Break by is represented by its own column and color in
the chart and is automatically added to the chart’s legend.
This is an optional field. You can add at most one Break by field. The
Break by option is available only when a single field was added to Values
(Y-AXIS).
Designing the Polar Chart
Fine-tune the appearance of the Polar Chart widget, using the following tools.
Polar Type: Select the type of chart.
Legend: Specify whether to show or hide the LEGEND, and select its position.
Value Labels: Specify whether to show or hide labels indicating the values.
Select the orientation of these labels: Horizontal (Default), Diagonal or
Vertical.
Categories:
Grid Lines: Shows (Default) / hides.
Labels: Shows (Default) / hides.
Axis:
Grid Lines: Shows (Default) / hides.
Logarithmic: Displays using orders of magnitude.
Labels: Shows (Default) / hides.
Title: Select the checkbox to display the axis title. To edit the title, type
in a new title. Click outside the text box to apply the new value.
Values on Axis: To change the default minimum, maximum or interval
values on the axis, type in the new values, and click outside the text
boxes to apply the new values. To restore any of the values to their
default states, click on the reset button.
Scatter Chart
The Scatter Chart displays the distribution of two variables on an X-Axis, Y-Axis,
and two additional dimensions of data that are shown as colored circles
scattered across the chart:
Point: A field that for each of its members a scatter point is drawn.
Note: The maximum amount of data points is 100,000.
Size: An optional field represented by the size of the circles. If omitted, all
scatter points are equal in size. If used, the circle size is relative to their
value.
Adding Data
In the X-Axis panel, click Add + to select the field whose values will be placed
on the X-Axis.
Typically, the X-Axis of a Scatter Chart is used to represent numeric data.
Alternatively, Descriptive data is also supported. You can only add one field.
In the Y-Axis panel, click Add + to select the field whose values will be placed
on the Y-Axis.
Typically, the Y-Axis of a Scatter Chart is used to represent numeric data.
Alternatively, descriptive data is also supported. You can only add one field.
In the Point panel, click Add + to select the point field.
The point area determines the field to be scattered across the chart as
circles; one point (circle) appears on the chart for each member of this field.
These fields must be descriptive data (not numeric data).
You can only add a point if either the X-Axis or the Y-Axis was defined to
represent numeric data.
Break by/ Color: Select a field by which to break (group) the fields in the
chart. This must be a descriptive field. If you select descriptive data, then
the points in the chart are grouped into the members of the field. Each
member is represented by a different color.
OR
Select a field by which to color the fields in the chart. This must be a
numeric field. If you select numeric data, then the point color is a gradient
where the highest value is the darkest color and the lowest value is the
lightest color.
In the Size panel, select the field that determines the size of the circle. It must
be numeric data.
Designing the Scatter Chart
Fine tune the appearance of the SCATTER CHART widget, using the following
tools.
Legend: Specify whether to show or hide the Legend, and select its position.
Marker Size: Change the size of the circles. If you are not using a Point value,
the slider will change the size of all the points on the map. If you are using
the Point value, drag each side of the slider to determine the relative
minimum and maximum circle sizes.
Value Labels: Specify whether to show or hide labels indicating the values of
each point (circle). Select the orientation of these labels: Horizontal
(Default), Diagonal or Vertical.
X-Axis and Y-Axis:
Grid Lines: Shows (Default) / hides.
Logarithmic: Displays using orders of magnitude.
Labels: Shows (Default) / hides.
Title: Select the checkbox to display the axis title. To edit the title, type
in a new title. Click outside the text box to apply the new value. To
change the default minimum, maximum or interval values on the axis,
type in the new values, and click outside the text boxes to apply the
new values.
Values on Axis: To restore any of the values to their default states, click
on the reset button.
Scatter Map
Scatter Maps allow you to visualize geographical data as data points on a map.
The map distinguishes data using different colors and sizes for the data points on
the map.
By default, Auto is always selected. This option always tries to figure out which
fits best. For better accuracy, you can specify the appropriate location type.
Using Latitude and Longitude data
To visualize latitude and longitude data, you have to add one field containing
latitude data, and another field containing longitude data, in this order.
Color
Select a numeric field here to color the scatter points on the map according to
their value and color rule.
The value of the field is displayed in the tooltip of the scatter point on the map.
Hover over the point to see it.
Size
Select a numeric field here to make the size of the scatter points on the map
relative to their value in the field’s value range.
Details
You can select additional data (numeric or descriptive) that will appear when
hovering over the data point in the map.
Designing the Scatter Map
Fine-tune the appearance of the Scatter Map Widget, using the following tools.
Marker Style: Choose between various marker styles.
When the Size has a field in it, the slider has two levers controlling the
minimum and maximum size of the points.
Sunburst Widget
The Sunburst widget is similar to a pie chart but is multi-dimensional. Whereas a
pie chart combines one field and one numeric value, the Sunburst widget can
display multiple rings, one for each field. Each ring in the Sunburst shows a
breakdown of its parent ring slice.
Colors: Select whether to color (highlight) alternating columns and rows, and
the table header.
Word Wrap: Select whether to wrap texts in headers and rows.
Click outside of the widget area to save the text and formatting.
Examples
To add a hyperlink:
Select the word or text fragment to which you want to add a link.
Click the hyperlink icon and enter the URL.
You can also select which text to display instead of the selected (linked) text,
and whether to open the link in the same window, or in a new window.
To change the background color:
Click on the paint bucket icon to open the color palette.
Select a color from the palette, or enter a custom color (Hexadecimal format).
Treemap
The Treemap is a multi-dimensional widget that displays hierarchical data in the
form of nested rectangles. This type of chart can be used in different scenarios,
for example, instead of a column chart if you have to compare too many
categories and sub-categories.
Alternatively, while creating a new widget, in the Widget Wizard, click the
Advanced Configuration option that appears at the bottom-left of each
window. The Widget Designer is then displayed showing the widget in the
same state as in the Widget Wizard preview.
Navigating the Widget Designer
The Widget Designer enables you to select the data to be included in a widget in
addition to providing a variety of options for customizing the visualization used
to show the data.
Note: To select a custom color that does not exist in the palette, enter a
hexadecimal value into the # Custom field.
Selecting a Range of Colors – Range Tab
The Range tab is available for the following widgets:
Column Chart and Bar Chart
Scatter Map and Area Map
The following procedure describes how to assign a range of colors to a field
according to its value.
To select a color range:
Click on a color in the Widget Designer Data panel to display a color picker
window.
Select the Range tab.
By default, the range configuration is set to ‘Auto’, which automatically
assigns a color range.
Select Manual to manually configure the color range, as follows:
Change Left/Right Colors: Click the color rectangles at the right and left to
change the start and end color of the range.
Customize Range: By default, the color range is set to match the minimum
and maximum values of the data. Instead, you can manually set a minimum
value. All values that are below this value will be assigned to the color on
the left. Accordingly, selecting a Max value means that all values larger than
it will be assigned the color on the right. By default, the ‘Middle’ color is
grey. All values larger than this will start gradually getting the right color.
All values smaller than this will start gradually getting the left color.
Changing the ‘Middle’ value controls which value the color gray is assigned
to.
Coloring Method: Selecting Min/Max will display the full color range.
Selecting Min will display all the colors between the minimum and middle
values, and higher than the middle value will be gray. Selecting Max will
display all values between the middle value and the maximum value, while
all other values will be displayed in gray.
Transition: Select Steps to define a distinct number of colors in the range.
Select Gradient for a linear color range.
Defining Conditional Coloring – Conditional
Tab
Define colors based on the value of the field as defined by a logical expression.
In addition, for Indicator widgets, you can also define whether an icon appears in
the widget and select the icon’s color. For example, you can define a red arrow
pointing downwards for a negative value.
For a short video overview of conditional coloring, see below:
Note: Renaming a field only affects how it is displayed in the current widget. This
field’s name is not affected in the Data Browser or in other widgets in the
dashboard.
Formatting Numbers in
Widgets
You can change the way numbers are displayed and formatted in widgets. For
example, you can display a number as a percentage, and you can define the
number of decimal places.
To format numbers in a widget:
In the Widget Designer, for example, in the X-Axis, Y-Axis, Values, Categories
areas and so on, hover over, and click 123.
Select how the number, currency or percentage appears. The preview area at
the bottom of this window shows a preview of how each option will appear
in the widget.
Locale Settings
The formats for dates, times and numbers in your dashboards are based on your
computer’s operating system or browser’s locale settings (depending on which
browser you use).
The following locales are supported:
Unites States
United Kingdom
Israel
Canada
South Africa
Australia
Netherlands
Germany
Ireland
Mexico
France
China
Brazil
Notes: You can override the default locale settings for all users, by updating a
parameter via the Rest API.To use a locale file that is not included in the above
list of countries, you can manually add a locale file in the following location:
C:\Program
Files\Sisense\app\client\resources\base\localization.
Click here to access Locale files and view their codes.
Currency Settings
The default currency symbol used in the dashboard is the US dollar ($), however
you can change the symbol by either selecting another symbol from the drop-
down list, or by typing in a different symbol. The list of currency symbols will
include common currency symbols, the currency defined in your browser’s locale
settings, and the symbol that you added (if you did so).
After you select a different symbol, additional viewers will see the same symbol
that you applied.
Changing a Widget’s
Visualization
You can change the visualization of a widget (for example, from a Line Chart to a
Pie Chart). When you change the type, all relevant values and definitions are
transferred to the new visualization.
To change a widget’s visualization:
Open the Widget Designer, as described in Opening the Widget Designer.
Click the Visualization selector, shown below, to display a menu of
visualization options.
After selecting the Continuous option, the chart includes the missing date(s).
In addition, you can select to continue the line, by treating null (missing) values
as zero values.
To treat null values as zero values, click on the menu of the Values panel, and
select Treat Null as Zero.
Adding Drill Hierarchies to
Widgets
Dashboard Viewers have the option to drill down in a widget, and get an in-depth
view of a selected value.
While Viewers can select a drill-down path from the complete list of fields, it’s
easier to select a commonly needed drill hierarchy from a short list. This is
especially true when there is a lot of data, and the Viewer needs to remember
specific fields, and select them each time.
As an Administrator, you can add predefined drill hierarchies to widgets.
To enable drill hierarchies in a widget:
In the Widget Designer, click on the Categories menu, and select Hierarchies…
Select the checkboxes next to the drill hierarchies that you want to make
available to dashboard viewers.
Note: Hierarchies with a lock icon will always appear in the widget. To
unlock this option, please contact your Sisense Administrator.
Disabling the Drill to Anywhere Option
As an Administrator, you can restrict viewers to predefined hierarchies only, by
disabling the option to drill down freely to any field.
The drill-to-anywhere option is enabled by default for all users and widgets. You
can disable the drill-to-anywhere option in the Sisense web app per widget (see
below), or by user role in the REST API.
To disable the drill-to-anywhere option:
In the widget menu, deselect the Enable Drill to Anywhere option.
As a result, the Choose Another… option is removed from the widget’s Drill
options.
The left image below displays the widget with the option to drill to
anywhere. The image on the right displays the widget with only predefined
drill hierarchies.
Managing Widgets
This topic describes how you can edit, copy, and delete your dashboard's
widgets.
Editing a Widget
When you first create a new dashboard (as described in Creating a New
Dashboard ) or a new widget (as described in Adding Widgets to a Dashboard),
the Widget Wizard automatically guides you through Sisense Web’s best
recommendations for visualizing the data that you select.
Then, after a widget is created, you can fine-tune/edit it in the Widget Designer.
The Widget Designer provides a variety of options for changing the widget’s
appearance and behavior.
See Fine-tuning a Widget for more information.
Copying a Widget
You can create a copy of a widget within the same dashboard or another
dashboard in your list. This is useful for saving the original widget in the
dashboard before making changes. The new widget is separate from the original
so no changes to the new widget affect the original widget.
To copy a Widget within the same dashboard:
In Dashboard view, click the widget menu button in the top-right corner of
the widget to be copied and select Duplicate.
If you are editing the widget, click the widget menu button in the top-right
corner of the widget to be copied and select Save A Copy.
To copy a Widget to another dashboard:
Select the Header of the widget to be copied and drag it to the dashboard you
want to copy it to.
Note: When you copy a widget to another dashboard whose data source is
another ElastiCube, the Dashboard filters of the new dashboard will not affect the
widget.
Deleting a Widget
To delete a Widget:
Click the widget menu in the top-right corner of the Widget and select
Delete. Confirm the deletion.
Field Suggestions
To quickly and easily create meaningful visualizations in your dashboard, Sisense
displays field suggestions to Dashboard Designers when creating new widgets.
After creating your first dashboard, Sisense begins to display field suggestions
the next time you create a widget.
When determining what fields to suggest, Sisense looks at fields being used in
other widgets on the same server, which fields are typically working together in
other widgets, and what fields you have already selected.
Fields that are already being used in the widget are not suggested.
Sisense has exposed the POST /suggestions API endpoint in the Sisense 1.0 REST
API that enables you to retrieve a list of suggestions based on Sisense’s algorithm
for calculating field suggestions. This is useful for displaying suggested fields in
your own application. For more information, see the Sisensee REST API
documentation.
Introduction to Filters
The Filters panel on the right of the dashboard provides data filtering options
that affect the data displayed in the widgets. You can change these filters to focus
on more specific data.
Your Sisense user role determines how you can interact with filters. As a
Designer you can create filters that are distributed to Viewers who interact with
your dashboards. See Interacting with Filters as a Designer.
Viewers can interact with filters and save their changes locally. See Interacting
with Filters as a Viewer for more information.
Interacting with Filters as a
Viewer
Viewers can interact with filters for analyzing data. Through the Filters pane, you
can modify filters in a dashboard and change the way values are sorted in a
visualization. This is useful for focusing on data displayed in dashboards that
have been shared by the dashboard’s owner.
As a Viewer, you can select and deselect filter visuals on a dashboard. Each time
you interact with a filter, for example by selecting or entering a value, the filter is
immediately applied to your dashboard. After you have configured the relevant
filters, you can save it as your default filters view.
Viewers can interact with filters as follows:
Make a different selection in the filter controls displayed in the Filter pane on
the right side of the dashboard, as shown below:
OR
Click on the pencil icon next to the filter name (shown above) in the
dashboard to display the Filter Definition window.
(Optional) If you have multiple data sources, select the data source that
contains the fields you want to filter. Filters applied to fields from one data
source do not affect fields from another data source even on the same
dashboard.
Select the field by which to filter.
Select the type of filter from the pane on the left, such as List, Criteria,
Calendar or Ranking. The options provided in this window may vary
according to the selected field type (Date, Numeric or Descriptive).
Select the required filtering details in the panel on the right to create one of
the following types of filters:
Creating an Include/Exclude Filter
Creating a Text/Numeric/Date Filter
Creating a Top/Bottom Ranking Filter
Creating a Calendar Filter
These are explained in depth below.
Click the Star Favorite button to save this filter. You can give your starred
filter a unique name by clicking in the text field and editing the given name.
This will be useful when you need to quickly add a new filter (with same
field type) or update a filter to reflect the unique parameters that you
defined in your starred filter.
Note: Your favorite filters are visible to shared users.
Click OK to filter the data in the Dashboard and add this filter to the Filters
panel on the right of the Dashboard.
After a filter has been added to the Dashboard, it stays displayed on the
Dashboard’s Filters panel. Any changes that you make to the filter are
immediately reflected in the Dashboard.
Tip: You can rearrange the filters in the Filters panel by dragging a filter
above or below another filter.
For a short video overview of dashboard filters, see below.
Creating an Include/Exclude Filter (List
Filter)
This type of filter enables you to define whether selected field values are
included or excluded.
To define a List filter:
Follow Steps 1 – 3 of Creating Dashboard Filters.
Select the List option in the left panel.
This filter enables you to select custom date ranges from a calendar.
To define a Calendar filter:
Follow steps 1 – 3 of Creating Dashboard Filters. Select a date field.
Select the Calendar filter tab.
Use the quick navigation menu to jump to a point in time.
Select a date range using any of the following methods:
Use the calendar to select a date range to filter by. Use the left calendar to
select the starting date of the range, and the right calendar to select the end
date.
Type in the dates.
Use a shortcut such as Earliest Date or Today.
Note: Earliest Date and Latest Date refer to the earliest and latest dates
with data.
Click OK to filter the data in the Dashboard and add a date filter to the Filter
panel of the Dashboard.
Dynamic Time Filter
This filter enables you filter dashboards to preset dynamic time frames, such as
‘Last Year’, ‘Last 2 Years’, ‘2 Year ago’, etc.
To define a dynamic time filter:
Follow steps 1 – 3 of Creating Dashboard Filters. (Select a date field)
Select the Time Frame filter tab.
Use the desired option.
Click OK to filter the data in the Dashboard and add a date filter to the Filter
panel of the Dashboard.
Advanced Filtering Criteria
If you require advanced filtering options that are not included in the provided
settings (for dashboard or widget), you can add or edit filters in the Advanced
section.
To add or edit filtering criteria:
Click Advanced in the left panel.
Add or edit filtering criteria. Click Test to see the results of your new/edited
filter.
Click OK to add the filter.
Example 1 – Adding an OR statement
The example below shows an OR statement being used to display multiple
names. After clicking Test, the matches are displayed to the right of the script.
Results include the relevant product names and price, for example:
Product A, 1000000
Product B, 1551246
Example 3 – Filtering by Dimension Attributes
This option lets you filter dimensions by filtered attributes of other dimensions,
returning only the filtered values.
In this example, all customers that purchased Product A and Product B will be
returned.
Note that you can add as many nested filters as needed.
Updating on Every Change
When this option is on, any changes you make to the dashboard filters are
updated immediately, and the dashboard is refreshed to reflect the changes.
If you are working with large or complex data sets that result in longer refresh
times, then switch off this option. Make all your changes, and click the Update
button when you are ready to update your dashboard.
Note: This option is available for Designers only. Sisense viewers can make
changes that will update automatically on very change.
Wildcards
To filter lists or text quickly, you can use wildcards such as ‘_’ or ‘%’, which will
be interpreted as literal characters or an empty string.
Sisense supports the following wildcards:
Single Characters
You can enter an underscore ‘_ ‘ as a placeholder for a single unknown character.
Multiple Characters
You can use a percent % symbol to search for an undefined length of string.
Escape Characters
If you are searching for a string with an underscore or percent symbol, add a
backslash (\) in front of the special character. Backslashes are treated as an
escape character by Sisense.
For example, to locate results for the string “_te”, use a backslash before the
string:
Editing and Deleting a
Dashboard Filter
This topic explains how to edit a dashboard or delete a dashboard filter.
Editing a Dashboard Filter
To edit a dashboard filter:
Make a different selection in the filter controls displayed in the Filter panel on
the right side of the dashboard, as shown below:
OR
Click on the pencil icon next to the filter name (shown above) in the
dashboard to display the Filter Definition window, as described in Creating
Dashboard Filters.
Deleting a Dashboard Filter
To delete a filter:
Click the bin icon. To temporarily disable a widget’s filter, you can toggle
the filter on or off using the toggle switch. Delete the widget only if you do
not need it any longer.
Creating Widget Filters
This topic describes how you can use the Widget Designer to create widget filters
and add widget filters to an existing field.
In the Widget Designer, you can define a filter for the data in a widget. or
example, you can create a filter that only shows the fields of relevant countries.
The filters are not visible in the dashboard, nor can they be edited directly from
the dashboard.
Note about duplicate filtering: When creating a widget filter for a field that is
already filtered in a dashboard filter, the widget filter will override the
dashboard filter. Example: You have a dashboard filter, filtering the months field,
with the values January and February selected. At the same time you create a
filter for a widget, also for months, but this time March and April are selected.
When both filters are applied in the dashboard, you will see data for March and
April in the widget, according to the widget’s filter. If your widget is filtered using
measured values, then the measured value will override any other widget or
dashboard filters you have for the same fields.
Creating a Widget Filter
To add a widget filter:
Open (edit) this Widget in the Widget Designer, as described in Adding
Widgets to a Dashboard.
Click the Filters tab in the Widget Designer.
The Filters panel is displayed showing the filters defined for this Widget. Click
on the Add Filter button to display the Data Browser, which lists the fields
in the ElastiCube.
Click on a field in the Data Browser to add it as a filter. You can define
multiple filters, each for a different field. These filters have an AND
relationship between them. Each filter that you define appears on the
Widget Filters panel on the right, enabling you to easily edit it if needed.
The procedure for defining a Widget filter is similar to the procedure for
defining a Dashboard filter, as described in Creating Dashboard Filters. The
difference is that the widget filter only affects its hosting widget, and is
accessible only via the widget designer, not directly from the dashboard.
Adding a Widget Filter to an Existing Field
Adding a new widget filter, as described above, lets you use any field as a widget
filter. Sometimes you want to directly filter a field that is already part of the
widget and visible in the data panel on the left.
To add a Widget Filter to an existing field:
Hover over the field you want to filter, and click the FILTER icon.
Creating Dependent Filters
This topic describes dependent filters.
Dependent Filters combine multiple dashboard filters into a hierarchy of
dependent filters that affect each other from parent, to child, to grandchild and
so on. When you filter the parent filter, fewer options will be available in the
child filter.
Example Use Case
The following example shows how using a dependent filter helps you easily focus
information in a dashboard.
This example describes an online travel agency with 250,000 hotels in its
database. An agent wants to find a specific hotel, but does not remember its
name. To narrow the results, the agent can define a dependent filter. This
dependent filter is comprised of four sub-dependent filters defined with the
following hierarchy:
Repeat this step for each new child filter to create as many sub-levels of
Dependent Filters as you need.
Configuring How Filters
Affect the Dashboard and
Widgets
This topic explains how dashboard filters work together with widget filters, and
how you can configure different filtering behaviors and their effects on the
dashboard.
The following procedures are explained below:
Configuring how Dashboard Filters Affect a Widget
Defining how a Widget Behaves when Filtered
Defining how a Selection on the Widget Affects the Dashboard
Configuring how Dashboard Filters Affect a
Widget
Dashboard filters affect all the widgets in the dashboard, except widgets that you
have defined to be independent. An independent widget is not affected by
dashboard filters.
Note: Dashboard filters are case-sensitive. For example, if you have two columns
with the same name, but one is uppercase and the other is lowercase, a
dashboard filter applied to one will not be applied to the other.
To make a widget filter-independent:
Open (edit) this Widget in the Widget Designer, as described in Adding
Widgets to a Dashboard. The top part of the Widget Filters panel on the
right of the Widget Designer lists the Dashboard Filters that are defined for
this Dashboard.
Turn off the Dashboard filters that you do not want to affect this Widget:
The toggle on icon (default) indicates that the Widget is affected by this
Dashboard filter.
The toggle off icon indicates that the widget is not affected by this
Dashboard filter. You also have the option to make this Widget independent
of all current and future Dashboard Widgets by turning the Dashboard
Filters option off, as shown below:
Defining how a Widget Behaves when
Filtered
When fields that are visible in a widget are filtered, it can be displayed in two
ways – Slice/Filter or Highlight. For example, this column chart shows revenue
for different age categories:
If the chart is set to Highlight mode, filtering a subset of age categories will
highlight them in the chart:
If the chart is set to Slice/Filter mode, the same filter will remove all non-
selected age categories from the chart:
Range: Max()/Min()
Summarize data Statistical Central Tendency: Median(), Model, Largest()
function Std Deviation and Variance: Stdev(), Stdevp(),
Varp(), Var()
Quartile and Percentile: Quartile(), Percentile()
Accumulate data Rolling Sum to Date: YTDSum(), QTDSum, MTDSum()
sum/average Avg to Date: YTDAvg, QTDAvg, MTDAvg()
Compare Time or Time functions Past Periods: PastYear(), PastQuarter(),
Trends PastMonth(), Next(), Prev()
Growth Trend: Growth(), GrowthRate()
Time Difference: YDiff(), QDiff(), MDiff(), DDiff(),
HDiff(), MnDiff(), SDiff()
The following topics explain how to create formulas, and describe the features of
the formula editor.
Using the Formula Editor
Creating and Editing a Formula
Reusing Formulas
Using Quick Functions
Creating Formulas Based on Criteria and Conditions (Filters)
Building Formulas with Functions
Function Reference
Formula Editor
The Formula Editor is where Designers define formulas for a dashboard's
widgets.
If you are familiar with the Formula Editor, see the Quick Reference Guide. For a
detailed guide with examples, continue reading below.
To open the Formula Editor:
Do one of the following:
For a new widget, click Select Data, and then .
For an existing widget, click on the edit formula button .
The Formula Editor has two tabs, the Data Browser to select fields and the
Functions tab to select formula operations. You can create a formula
combining one or more function, field and filters. The diagram below
highlights the main components of the formula panel.
The Data Browser then changes to display the Formula Editor, which
has two tabs: Data Browser and Functions.
The Data Browser tab provides fields to choose from.
The Functions tab lists the functions that you can include in your
formula by selecting them. You can read a description of each function
in a tooltip by hovering over it.
Define the formula as follows:
From the Data Browser tab, select one or more fields.
From the Functions tab, select the required functions.
Type in the required parts of the formula. To see examples, see Formulas
Based on Criteria and Conditions, and Functions to Build Formulas.
Click OK.
To edit a formula:
You can easily edit formulas using the right-click options. They include:
Rename: Rename the formula, for example, give a name that represents a
real-life task or expected result from the formula, or include in the name
filters that you have added to the formula.
Filter: Add filters to the formula.
Type: Change the default aggregation method, for example, from Sum to
Average.
The following image shows the right-click options.
The following image shows right-click options for a filtered formula. Read more
below.
Reusing Formulas
This topic describes how you can reuse formulas that you have previously
marked as a favorite (starred).
Formulas are saved per ElastiCube.
Important: Changing a starred formula does not affect previous uses of that
formula. These will continue to use the old version of the formula. Only future
uses of the starred formula will implement your latest formula.
To mark a formula as a Favorite:
While defining a formula, click the Favorite (Star) button.
Enter a name for this Formula.
Click OK.
A simple example of Measured Value is the use of a list filter. A marketing team
may need to count leads generated for a specific region such as North America.
Even if leads come from many different countries, the measured value calculates
leads generated only when the lead originates from the United States or Canada.
The All() function returns the total amount for a dimension, and can be used for
various use cases. In the following example, we will use the All function to
calculate how much each country contributed towards the total cost of a
campaign.
Our final widget includes the following information:
Step 1: The second column above represents a formula that sums up the total
cost for all countries and does not represent the breakdown per country. The
formula includes the calculation (total cost) followed by the all function (filter),
followed by the dimension (country) in parenthesis. It looks like this:
We can save (star) the above formula and call it Total cost for Countries, which
will be used in the next step.
Step 2: We can now use the above formula in another formula to calculate the
contribution, like this:
The result is the third column above (plus formatting the results as percentages).
Conditional Statements
Conditional statements are formulas that enable you to create additional
categories in your data set. When the condition is met, the new category is added
to your visualization without modifying the data source itself.
For example, if you want to calculate only certain values according to conditions
you define, you can use a conditional statement to include only the values of
interest.
Sisense provides several conditional statements that enable you to evaluate
criteria and display only the relevant results in your dashboard.
Note: Conditional states work on measures and aggregations only and return
numeric values.
IF
IF (Boolean_expression, true value, false value)
Evaluates a boolean expression and returns the first value when evaluated as
true, and returns the second value when evaluated as false.
For example:
(if(Sum(Sales) < 10, 0, Sum(Sales) )
Nested IF statements are also supported.
For example:
if (Sum(Sales) < 100 , 1 ,(if (Sum(Sales) < 1000 , 2, 3)
)
isNull
ISNULL (<numeric value>)
Returns true if the expression doesn't contain data (Null). Can be used as a
condition when writing conditional statements.
For example:
If (ISNULL(sum(deals)), 0, sum(deals) )
Case
CASE
WHEN Boolean_expression THEN result_expression
[ ... ]
[ ELSE else_result_expression ]
END
The CASE function evaluates boolean expressions, and when evaluated as true,
returns the corresponding result_expression. If no match is found, the
else_result_expression is returned. If there is no default returned and no values
match, then Null is returned.
For example:
CASE
WHEN Sum(Sales) < 100 THEN 1
WHEN Sum(Sales) < 1000 THEN 2
ELSE 3
END
Working with Functions
Sisense provides a large number of built-in functions that you can use to perform
specific calculations or return information about your data. You can use the
functions on their one or within formulas.
The functions are organized into four categories: statistical, mathematical, time-
related, and other.
To access functions:
Hover over any of the fields in the Values section and click on the Edit
(pencil) icon.
The Formula Editor is displayed.
Open the Functions tab and scroll down to select the desired function.
To find a specific function in the Functions tab, enter the function’s name
(for example, Average) or syntax (AVG) in the Search field. As you begin
typing, the functions that contain the string in either their name or syntax
will appear below.
Quick Functions
Just like reusing formulas, quick functions is another feature to make working
with formulas easier. The Widget Designer provides a variety of predefined
commonly used functions that you can easily apply in the Data Browser when
selecting a Value to be included in a widget.
Quick Functions instantly add a time dimension to any existing value and
formula. These functions include calculations for past values, change over time,
contribution and running totals. Quick Functions include all the Time Functions
previously discussed but they can only be accessed by clicking on a formula that
is already present in a widget.
A simple example of a Quick Function is a finance manager who is reviewing total
costs per month but needs to track the accumulated annual costs. They can
simply use a quick function to calculate the year to date total for costs.
A more complex example uses starring with multiple quick functions. Let’s say a
finance manager also wants to compare year to date costs to the same period for
the previous year. They can first apply the year to date function to total cost and
then save it to the formula repository. They can then add the saved year to date
formula but apply another quick formula for past values which will perform the
same calculation but on data from the previous year.
Note: Starred (favorite) formulas will be shared with other users.
Function Reference
This page contains a list of all the functions you can use in Sisense’s formula
editor.
Statistical Functions
Average
Avg(<numeric Field>)
Calculates the mean average of the given values.
For example – AVG(Score) will calculate the mean average of the given scores.
Avg(<group by field>, <aggregation>)
Calculates the average of the given aggregation grouped by another field.
For example – Avg( Product, Total Sales) calculates the average of the total sales
per product.
Contribution
Contribution(<numeric field>)
Calculates the percentage of total.
For example – Contribution( Total Sales ) will calculate the percentage of total
sales per group (for example per day or per product) out of total sales (for all
days or all products).
Correlation
Count(<Numeric Field>)
Counts the number of unique values within the given values.
Count All
DupCount(<Numeric Field>)
Returns the actual item count of the given list of items, including duplicates.
Covariance (Population)
Max(<Numeric Field>)
Returns the maximum value among the given values.
Median
Min(<Numeric Field>)
Returns the minimum value among the given values.
Mode
MODE(<Numeric Field>)
Returns the most frequently occurring value from the column.
Normal Distribution
SKEWP(<numeric value>)
Returns the skewness of the distribution of a given value in the population.
For example – SKEWP(Revenue) will return the skewness of the distribution of
revenue in the population.
Skewness (Sample)
SKEW(<numeric value>)
Returns the skewness of the distribution of a given value.
For example – SKEW(Revenue) will return the skewness of the distribution of
revenue.
Slope
Abs(<Numeric value>)
Returns the absolute value of the given value.
For example – ABS(Cost), where the absolute result for the value ‘2’ or ‘-2’ is ‘2’.
Acos
ACOS(<numeric value>)
Returns the angle, in radians, whose cosine is the given numeric expression. Also
referred to as arccosine.
For example – ACOS(Total Revenue) will return the angle, in radians, whose
cosine is the given total revenue.
Asin
ASIN(<numeric value>)
Returns the angle, in radians, whose sine is the given numeric expression. Also
referred to as arcsine.
For example – ASIN(Total Revenue) will return the angle, in radians, whose sine
is the given total revenue.
Atan
ATAN(<numeric value>)
Returns the angle in radians whose tangent is the given numeric expression. Also
referred to as arctangent.
For example – ATAN(Total Revenue) will return the angle in radians whose
tangent is the given total revenue.
Ceiling
CEILING(<numeric value>)
Returns a number rounded up away from zero, to the nearest multiple of
significance.
For example – CEILING(Total Cost), where the result of ‘83.2’ is rounded up to
’84’.
Cos
COS(<numeric value>)
Returns the trigonometric cosine of the given angle (in radians).
For example – COS(Average Angle) will return the trigonometric cosine of the
average angle.
Cosh
COSH(<numeric value>)
Returns the hyperbolic cosine of the given value.
For example – COSH(Total Revenue) will return the hyperbolic cosine of the total
revenue.
Cot
COT(<numeric value>)
Returns the trigonometric cotangent of the given angle (in radians).
For example – COT(Average Angle) will return the trigonometric cotangent of the
average angle.
Exp
EXP(<numeric value>)
Returns the exponential value of the given value.
For example – EXP(Sales) will return the exponential value of sales.
Floor
FLOOR(<numeric value>)
Returns number rounded down, toward zero, to the nearest multiple of ‘1’.
For example – FLOOR(Revenue), where the result of ‘88.6’ rounded down is ’88’.
Ln
LN(<numeric value>)
Returns the base-e logarithm of the given value.
For example – LN(Cost) will return the base-e logarithm of cost.
Log10
LOG10(<numeric value>)
Returns the base-10 logarithm of the given value.
For example – LOG10(Revenue) will return the base-10 logarithm of revenue.
Mod
Power(value, power)
Returns the results of the given value raised to a supplied power.
For example – POWER(Revenue, 2) will return revenue raised by the power of 2.
Quotient
SIN(<numeric value>)
Returns the trigonometric sine of the given angle (in radians).
For example – SIN(Average Angle) will return the trigonometric sine of the
average angle.
Sinh
SINH(<numeric value>)
Returns the hyperbolic sine of the given value.
For example – SINH(Total Revenue) will return the hyperbolic sine of the total
revenue.
Square root
SQRT(<Numeric value>)
Returns the square root of the given value.
For example – SQRT(Cost) will return the square root of cost.
Sum
Sum(<Numeric Field>)
Calculates the total of the given values.
Tan
TAN(<numeric value>)
Returns the trigonometric tangent of the given angle (in radians).
For example – TAN(Average Angle) will return the trigonometric tangent of the
average angle.
Tanh
TANH(<numeric value>)
Returns the hyperbolic tangent of the given value.
For example – TANH(Total Revenue) will return the hyperbolic tangent of the
total revenue.
Time Related Functions
Day Difference
All(<Field>)
Ignores the scope set on the dimension.
CASE
(<numeric value>)
Returns true if the expression doesn't contain data (Null). Can be used as a
condition when writing conditional statements.
Ordering
ORDERING(<expression1>,<expression2>)
Returns the numeric order position of rows sorted into ascending or descending
order, breaking ties with further arguments.
The expressions must be aggregated by applying the MIN/MAX functions as in
the example below:
ORDERING(MIN([Sales Person Name]), MIN([Days in Transaction_Date]), -
1*Sum([Sales]))
Rdouble
An example of statistical functions is a marketing team that has a large data set
on leads generated from various channels and want to understand where to
focus their budget. Descriptive statistics can be used to summarize valuable
insight about each channel, such as the central tendency or median leads
generated, along with standard deviations to assess typical lead volume.
Accumulate Data: Running Total and Average
Often, to measure performance, data must be viewed in a continuous and
accumulative format over extended periods such as years, quarters or months.
Sisense provides functions to create running totals and averages over standard
or custom time periods.
For example, a support team has a goal to reduce the average monthly cost to
resolve open issues. A Year to Date Average can be used to track progress
towards reducing the average cost of support.
Change over Time: Time Functions
Time is critical for business decisions. Time functions make it easy to compare
outcomes at different points in time, determine growth rates and calculate the
time differences. Functions can be set for common time periods such as year,
month or day, as well as for custom periods.
For example, an executive team wants to compare growth in revenue to the same
period in the previous year. A Difference in Past Year function can be used to
compare past values based on the current month to the same month in the
previous year.
Fiscal Years
By default, Sisense calculates the beginning of the fiscal year as January 1st. In
some cases, you might need to express your company’s date fields according to
another fiscal month, such as April 1st. Sisense allows you to easily shift your
fiscal calendar to start at a different month according to your company’s
requirements.
This can be defined at the system level, by the Administrator, and also at the
ElastiCube level, by the Data Designer. This means that you can support one fiscal
calendar month for your system, such as January 1st, while a specific ElastiCube
can be set according to the US tax year which begins October 1st.
When you change the fiscal calendar, this affects how time is calculated in your
dashboard and you are also getting an indication, for example when filtering
your widgets and dashboards by time, through the FY tag.
reflects the year in which it ends. For example, if the fiscal year
starts in April, the year for the date June 1, 2014 would be
shown as FY 2015.
Quarter Changes the calendar quarter to that of the quarter in the fiscal
year. For example, if the fiscal year starts in April, the quarter
for the date June 1, 2014 would be Q1.
Month Not affected by fiscal year settings. The calendar month is the
same as the fiscal month.
Week Changes the calendar week to the week of the fiscal year. For
example, if your fiscal year begins April 1st, April 3rd would fall
under Week 1.
Select the relevant time period and enter the relevant placeholders in the
format you want to be displayed in your widget. A preview of the custom
format is displayed below.
The month key determines the first month of your fiscal year. The format key
determines how your fiscal dates are displayed.
For example:
years: fiscalFormatRestAPI + ' yyyy';
quarters: fiscalFormatRestAPI + ' yyyy Q';
months: 'MM/yyyy ' fiscalFormatRestAPI;
weeks: 'ww ' + fiscalFormatRestAPI + ' yyyy';
days: 'MM/dd/yyyy ' + fiscalFormatRestAPI;
If you were to set the format to the following, 'EEE d/MMM//QQ//yp-yy', the
format would be displayed in Sisense as follows:
FY Mon 1/Apr/Quarter 2/96-97 1997 Q2
In addition, you can add strings to the format as long as they are in single quotes.
To modify your fiscal date formats through the REST API, you can send a POST
request to the settings/system API.
Date and Time Fields
Many widgets include data that is relative to date and time fields. Sisense enables
you to apply date and time filters so you can easily identify trends in your data.
When you create a widget in your dashboard that includes a date field, Sisense
automatically breaks the data down by year, however, you can change this to a
shorter resolution. For example, a Date field included in a widget can be
separated into Years, Quarters, Months, Weeks, Days, and Time from your
widget’s filter.
Dashboard Viewers have the option to drill down the widget according to the
Date level as shown in the following image:
Viewers can drill down into the lowest date or time resolution available in your
data.
The highest resolution available is by Year and the lowest resolution is Time,
which includes Hour and Minute intervals.
The position of a widget can be split to contain multiple widgets within a single
column by dragging one widget on top of another.
Placing Widgets Side-by-Side
You can place widgets side-by-side using one of the following methods:
By putting each widget in a different column.
OR
By dragging one widget on top of the other. Both these widgets will then be
in the same column.
Resizing Widgets
Resizing the column height or width automatically resizes the widgets in the best
possible way.
To resize a widget:
Resize the dashboard column in which the widget is located by dragging the
edge of the column right or left. All the widgets in this same column are
resized accordingly in an optimal manner.
Resize the widget by dragging its edges right, left, up or down.
Refer to Ticker widgets below for a description of how an Indicator Widget turns
into a ticker type widget when you reduce its height.
Adding Widget Titles
You can add titles to your widgets directly in the dashboard view.
If you already added a title when you created the widget in the Widget Designer,
you can edit the title directly in the dashboard.
To add a widget title from the dashboard:
To add a title, click Add Title at the top of the widget, and type in the title. If
you are editing a title, click on the existing title, and type in the new title.
Indicator widget after resizing down Gauge widget after resizing down
Changing the Dashboard’s
Color Palette
You can easily change the color scheme of the dashboard to suit your
professional or brand preferences.
To change the color palette:
Click in the top menu, and select the preferred color palette. The default
palette is Vivid.
Note: Three of the palettes are suitable for color blindness: ColorBlind 1, 2, and
3.
Note: When you change the color of an individual widget to a new color that is
not one of the palette colors, the new color will be applied to the widget
regardless of the applied palette. If you select a new color from one of the palette
colors, then when changing the dashboard’s palette, the color will change
according to the new palette.
Examples
Creating a Custom Palette via the REST API
You can create your own brand custom palette through the REST API. Click here
to learn more about using the REST API. To learn more about creating a custom
palette using the REST API, see this support article.
Sisense provides the following endpoints:
GET /palettes
Returns a list of available palettes in the Sisense web app.
GET /palettes/default
Returns the default color palette.
POST /palettes
Adds a new color palette.
PUT /palettes/{name}
Updates the dashboard's color palette.
DELETE /palettes/{name}
Deletes a color palette from the color palettes.
The table below describes the parameters you can return and update through the
palettes endpoints:
Parameter Type Description
colors array The colors included in the palette. Your custom
palette can include up to 16 colors.
In the API Documentation, select version 0.9 on the top-right of the screen.
Click palettes to access the API operations related to roles.
Go to PUT/palettes/default and click Try It Out .
Indicate the current name of the palette, and make your changes. You can
change the palette name, colors, etc.
Click Execute and scroll down to the Responses section to very that the
response does not contain errors.
To create a new palette:
Go to POST / palettes and click Try It Out .
Enter all the relevant values.
Click Execute.
The new palette will be added to your Dashboard Palettes.
To delete a palette:
Go to DELETE/ palettes, click Try It Out, and enter the name of the palette
to delete into the Value input box. Then click Execute.
The Palette will be deleted from the list of your dashboard Palettes.
Creating a Dashboard with
Multiple Sources
Dashboards can support multiple data sources including ElastiCube and Live
data models, which means you can have widgets built on several data sources
within a single dashboard. For example, if you have widgets from an ElastiCube
on a dashboard, you can add a data set to the dashboard and create widgets built
on that data set’s live data source. The widgets from both data sources continue
to function independently of each other in the same dashboard. In addition,
filters applied to fields from each data source, do not affect the fields from
another data source.
To create a widget based on another data source, when you creating the widget,
in the top-right corner of the New Widget window, modify the default data
source collected.
Changing a Dashboard’s Data
Source
Changing a dashboard’s data source is useful when you have recently changed
your server and you to need to reassign your dashboard’s data source or in cases
where you have deleted a data source and you want to reassign the dashboards.
Dashboards can also support multiple data sources including ElastiCube and Live
data models, for more information, see Creating Dashboards with Multiple
Sources.
To change your dashboard’s data source:
In the top-left corner of your dashboard, click the ElastiCube link.
Hover over Change Data Source and select the new data source.
The source is added to your list. You now add new widgets from any of your
data sources to the dashboard.
Exploring Dashboards
In the Analytics page, you can see dashboards that you created or were shared
with you on the left or the main dashboard area below.
To open a dashboard, you can click the title of the dashboard on the left side or
click the dashboard tile below. This opens up the dashboard inside the Analytics
page.
A dashboard that was shared with you appears with this icon in the
Dashboards list.
To open a dashboard, you can click the title of the dashboard on the left side or
click the dashboard tile below.
Alternatively, if you have a lot of dashboards, you can search for dashboards by
typing the title in the Search field. As you begin typing, any relevant results are
displayed.
To locate a dashboard by name, source, or owner, you can use search operators
within the Search field. Sisense supports the following operators:
What You Can Search By Search Operator and Examples
OR
In the Sisense User Options, open the languages list and select the language
you want to display.
In chart widgets, you can drag and draw the area to be selected, as shown
below:
When you select a portion of the widget, appears in the widget's menu bar.
Click to expand your view of the selection.
You can refine your data further by toggling the switches on the left side as
shown in the example below.
Drilling Down in a Widget
This topic describes how yYou can drill down into your data in most widgets to
get an in-depth view of a selected value.
In the following example, the pie chart on the left shows a breakdown by gender.
This is the original chart as created by the dashboard’s Designer. On the right
side, the chart shows a breakdown or drill down showing age groups of the
‘female’ segment from the original pie chart.
With Sisense you can drill down from any field to any field, unless disabled by the
dashboard’s Designer.
For information about enabling or disabling the drilling feature, see Drill
Hierarchies.
To drill down into a chart:
Right-click on the item in the widget into which you want to drill down.
To manually select the drill hierarchy path, select Drill Into, and then in the
In the Data Browser, select the field into which to drill down. If you have
already drilled into this chart, then you will have shortcuts to previously
selected fields, or select Choose Another Field to select a different field
for the first time.
OR
Select a predefined drill hierarchy (if available). Predefined drill hierarchies
are defined by the dashboard's owner.
To drill up to a higher level, click on a breadcrumb. To drill all the way up, click
on the X icon.
Leverage AI to Uncover
Hidden Insights
Sisense is looking for customers who are willing to provide feedback
about this feature as part of our early-adopter program. If you would
like to influence the development of this feature, contact your CSM.
Sisense’s AI (Artificial Intelligence) Exploration Paths automatically generate
visualizations and insights that anticipate your Viewers’ questions without
requiring a Dashboard Designer to create more widgets. Sisense leverages AI to
uncover hidden insights and suggest new visualizations, all within the context of
the data model that your dashboard is based on. Exploration widgets offer a
great way to answer ad-hoc questions that naturally arise when analyzing a KPI.
They enable you to drill down into widgets in cases when it is challenging to set
up drill hierarchies to answer all the potential business questions. Now you can
build a lean and highly focused dashboard including the KPIs most important to
the business, and Sisense AI will generate exploration widgets for your users to
go deeper.
The suggestions are taken from across all dashboards based on the data model
that your dashboard is connected to. To provide Viewers with a right context
throughout the exploration, the exploration widgets inherit the dashboard and
widget filters, and go through the same security rules as any other widget in the
dashboard.
Note: To enable Viewers to receive exploration widgets in the dashboard, your
Sisense Administrator must first activate the Exploration Path feature for the
entire system and then enable it on each particular dashboard where this feature
needs to be available.
For a short video overview of exploration widgets, see the video below:
What Determines which AI-driven
Suggestions Viewers Get?
Sisense automatically suggests visualizations that anticipate the next questions a
Viewer might have, without involving a Dashboard Designer.
Sisense employs an AI algorithm that runs in the background and scans the
entire dashboard base associated with a particular data model. The algorithm
studies the analysis and the usage patterns (such as drilling down and filtering)
performed by all dashboard users, and based on that suggests new exploration
widgets. With time, as the AI algorithm picks up more input from user activity,
the suggestions become more accurately targeted to the Viewer needs.
How Does This Work?
What you can do: Work in the dashboard as usual. When the algorithm
detects some new patterns in user activity, or when data security rules or
filters change, it will start suggesting exploration widgets.
When the algorithm detects any changes in the system, the exploration widgets
will reflect these changes on the next day, because the algorithm processes the
new information overnight.
Enabling AI-driven Exploration Widgets
To enable Viewers to view AI-driven exploration widgets in their dashboards, the
Sisense Administrator must activate the Exploration Path feature system-wide.
Then dashboard Owners can enable it for each dashboard separately.
It is recommended to test-drive this feature for your Viewers by enabling it on a
single dashboard before enabling it on all dashboards.
When you enable or disable this feature, the dashboard refreshes and the feature
is enabled/disabled immediately for all users without any message being issued
to the users.
Activating System-wide
Click Admin in the top menu, and then Settings on the left.
Enable Exploration paths.
Enabling for a Single Dashboard
From the Navigation Pane, click on a dashboard to open it or create a new
dashboard.
Note: You can enable this feature only if you are the Owner of the
dashboard.
Click in the top menu, and select Exploration Paths.
In View and Edit mode, you can define your dashboard’s orientation, its layout,
and what is displayed in the header and footer on your report.
After you have customized your report, you can save the settings and use them
when sharing reports, or download the report as a PDF.
To customize a PDF report:
In your dashboard’s menu, click . The PDF Report Settings page is
displayed.
Edit the dashboard by selecting any of the following options:
Setting Description
Header The design and content of your report’s header. The header is displayed on
the top of each page or your PDF report.
From the Header list, you can define how your header is to be displayed:
Compact, Medium, Large, or No Header.
After you have set the design, you can determine what information is
included in the header.
Title: Select to display the dashboard name at the top of the PDF.
Dashboard As Of: Select to display the ElastiCube name and last build tim
at the top of the PDF.
Dataset Name: Select to display the name of the ElastiCube that contains
the dashboard’s data.
Dashboard Filters: Select to display dashboard filter selections.
Footer The content displayed in the footer section of each page of your report. You
can display the following information:
Page Number: Select to display the page number on each page of the
report.
Click Save to save your settings when sharing reports or to download
your report.
Managing Dashboards
This section is for Sisense users who have dashboard editing rights (Designers).
The topics in this section describe how you can manage your dashboards within
Sisense:
Viewing Dashboards
Locating Dashboards
Duplicating Dashboards
Organizing Dashboards
Sharing Dashboards
Deleting Dashboards
Exporting and Importing Dashboards
For information on improving dashboard performance, see Maximize
Dashboard Performance.
Viewing Dashboards
In the Analytics page, you can view all the dashboards that you own or that
were shared with you.
There are two locations from where you can access your dashboards, on the left
side in the Navigation Pane, and the Dashboard area below.
In the Dashboard area, your dashboards are displayed as clickable tiles. There
are two dashboard views you can view your dashboards with.
Tile View List View
Tile View
The Tile view displays the name of the dashboard and its owner. You can click a
tile to open the dashboard, or click its menu to see a variety of options. The
options displayed are determined by your role and whether or not you own the
dashboard.
When you see a yellow tag attached to the tile this indicates that the dashboard is
in your system, but you are viewing the owners version, and not your version.
This tag is only visible for Administrators. For more information see Managing
Your Users Dashboards.
List View
The Dashboard List provides information about your system adoption, such as
the number of Viewers of each dashboard, and the last time a dashboard was
modified.
The Dashboard List provides the following information:
Name: The name of the dashboard.
Owner: The name of the dashboard's owner.
Data Sources: The data sources that are being queried by the dashboard.
Last Published: The last time the dashboard was published.
Last Modified: The last time the dashboard was modified. Any changes to
the dashboard or to the dashboard metadata (share list, and reporting
schedule) affect the “last modified” timestamp.
Total Viewers: This column is only displayed to Administrators. The total
number of Viewers who have opened the dashboard. This number may be
lower than the number of users the dashboard is shared with if some of
them have not opened the dashboard. This number does not include
Administrators who opened a dashboard that was not owned by or shared
with them.
No. of Widgets: The number of widgets in the dashboard.
Toggling between Views
You can toggle between these views by clicking the View icon of the right-side of
the Dashboard area.
Locating Dashboards
You can quickly and easily locate dashboards without having to navigate through
your entire list of dashboards. When you enter any characters in the Search
field, the list of dashboards is filtered according to the characters found within
your dashboard titles.
To copy a Dashboard:
Right-click the dashboard’s name in the Navigation Pane and select
Duplicate.
Organizing Dashboards
You can organize your dashboards into folders and sub-folders within any of
your folders to improve how you navigate the Navigation Pane.
To create a folder:
In the Navigation Pane, click + and select New Folder.
You can drag and drop your dashboards from other folders or the Navigation
Pane to any of your folders.
For information on improving dashboard performance, see Maximize Dashboard
Performance.
Deleting Dashboards
To delete a dashboard:
Click on the menu of the Dashboard to be deleted in the list in the Home
page, and select Delete.
OR
Click the Dashboard Menu and select Delete Dashboard.
To delete multiple dashboards:
You can delete multiple dashboards by opening list view, selecting the
relevant dashboards, and clicking .
OR
In your Navigation Pane, click the checkbox icon , select the relevant
dashboards, and click .
Exporting and Importing
Dashboards
Sisense supports exporting and importing of dashboards. This is useful for
copying dashboards between separate Sisense installations, and also for making
backups.
Dashboards are exported as files with a .dash extension, which can then be
imported.
Exporting a Dashboard
Administrators and Designers can export dashboards and import them into
multiple instances of Sisense. When you export a dashboard or multiple
dashboards, a single .dash file is created. Afterwards, when the .dash file is
imported into another instance of Sisense, all the dashboards are added to the
main Anayltics page.
To export dashboards to a .dash file:
Option #1 (Single dashboard)
In the Navigation Pane on the left of the Sisense environment, click the
dashboard’s menu and click Export Dashboard.
OR
OR
In List view, select all the relevant dashboards and click .
All of these methods prompt you to download the .dash file and save it to disk.
After you have downloaded the exported file, you or your users can import it into
their instance of Sisense. For more information, see Importing Dashboards
below.
Importing a Dashboard
To import a dashboard:
Hover over Dashboards list in the home page and click the ‘+’ symbol. Select
Import Dashboard from the menu. You can also right-click anywhere in
the dashboards list, or click on the menu of one of your existing folders to
import a dashboard into a folder.
Select your exported dash file. The dashboard will be added to your list of
dashboards or folder. You can drag it from there to your desired location in
the tree.
Best Practices for Promoting
Dashboard Adoption
One of the pitfalls for successful implementation of BI Analytics in companies is
adoption. A company may invest in all the modern technology and create
attractive-looking analytics, but still struggle with long-term adoption of
analytics.
Many Sisense clients have successfully tackled this problem. Below are some
creative ideas that might help you drive analytics implementation in your
company at the different stages of your journey toward data-driven culture.
Think Ahead at Rollout
When introducing analytics into the organization, you have probably appointed a
BI champion or set up an Analytics team. Their job is to gather requirements
from all stakeholders, to design the BI solution, and finally, to execute the design.
An additional, parallel, objective of this team should be to build a User Adoption
Plan. Start thinking about the rollout of the dashboard right from the first phases
of the workflow. Making these decisions in the initial planning phases helps to
ensure your final dashboards serve your ultimate goal of achieving maximum Bl
value in your organization.
The best User Adoption Plans are built alongside the dashboards and adjusted as
your BI project expands, to ensure full adoption and utilization of BI resources by
all of your stakeholders and target audiences.
Provide Ongoing User Training
So your BI person or team has created a brand new set of dashboards to serve
your organization. If the rollout of the analytics was successful, pretty soon your
BI champion(s) will have their hands full with user requests to create more
dashboards and tweak the widgets to answer additional business questions. This
can hinder or even derail the further development of your analytics solution. And
this is not how it should work. Modern BI solutions are all about self-service,
allowing all users to use them to get insights.
That being said, there is still a learning curve. How steep the curve is depends on
your BI tool and the users’ technical level, especially if the bulk of your team isn’t
tech-savvy. You will have to train users to use the tool and to think analytically.
Below are some suggestions for user training:
Use the training courses offered by your BI vendor. Sisense provides a
rich offering of courses that cover all stages of the BI flow and cater to all
types of uses, from newbies to advanced:
Business Requirements Gathering Framework
Business Requirements Recon: The Questions
Dashboard Planning Document
Meet Si-Cling (Case Study Introduction) Session
Know the Data Session
Identifying Relationships Session
Conduct quarterly workshops to train your users - and not just the
newcomers. It’s best to include an objective-oriented component in the
workshop, which means that users should come with a business question
they struggle with. By the end of the workshop, they will have created a
dashboard exploring their actual business questions, but also will have
learned a lot about the system and built their confidence with an experience
of success.
Offer weekly office hours for one-on-one training and support of your
users.
Provide resources online - dashboard documentation, Q&A on the most
frequently asked questions, etc. You can provide this as part of your internal
user portal, web site, etc.
When the users across the organization are all inspired analytics users, do you
still need a dedicated BI resource? Of course. Business users are not familiar with
your data and data sources. They do not know much about data cleansing, ETL
processes, many-to-many joins, etc. It is good practice to leave the data
governance to professionals, and allow business users to take it from there. And
when all these training efforts are in place, they are guaranteed to save hundreds
of hours for your BI resources.
Learn how one of Sisense clients does this in this webinar: Increasing Adoption
of BI Within Your Organization.
Promote Across all Levels of the
Organization
When your BI team rolls out a new dashboard, how can you promote it across the
organization and make sure that users are aware and integrating it into their
ongoing, long-term work processes? Obviously, the number of paths to take
depends only on the creativity of those involved. Below are a few ideas that were
implemented successfully with Sisense clients:
Promote dashboards through internal email announcements. In
Sisense, that’s easy to do by sharing the new dashboard with all or just
some users across your organization in one action. For details, see here.
Prepare training on each new dashboard - this can be a short video or
one-pager that you upload to your internal BI portal. State clearly who the
audience is for this dashboard, and how the audience will benefit from
using it. Communicate clearly all the changes you make to existing
dashboards. It’s crucial that users understand the outcome of each change.
Otherwise, when they come to the dashboard and do not see what they saw
last week and what they expect to see today, their notion of the dashboard
as a single source of truth might be undermined.
Engage users with dashboard contests. This solution is as simple as it is
brilliant. Dashboard contests can encourage users across the organization
to make practical use of business intelligence, becoming well-versed in
using the system in the process. It can also help you identify the specific
datasets that most people in the organization need to use. To learn how this
benefited one of Sisense clients, see here.
Create an end-user steering committee (COE). For most organizations,
one of the main stumbling blocks to BI adoption is building consensus
between the stakeholders. To overcome this problem, make sure to invite
the three key groups of organizational stakeholders in relation to analytics:
business users, business analysts, and data engineers. To learn more about
building organizational consensus for a BI platform, see here.
Appoint executive sponsorship to enforce usage. An effective sponsor
for a BI-related initiative would be a senior-level executive with a data-
driven outlook, whose team will benefit from the introduction of this
initiative. This sponsor will have to define the business scope of the
initiative, set up business priorities and delineate a business strategy
required to adopt analytics in the organization.
Monitor Usage
Once analytics are in use across the organization, it is important to monitor the
usage of the different dashboards. This includes tracking the amount of users
using each dashboard, the amount of users creating their own dashboards,
tracing what the uses do in dashboards, and so on.
If usage is low, the next step is to gather feedback from your users to understand
why this is so. This might happen due to varying reasons, such as users see no
value in analytics, lack the knowledge to use your analytics tool, aren't clear on
the objective of certain dashboards, lack the executive sponsorship to enforce
usage, etc. When you know the reasons, you can correct …. and repeat for as
many times as necessary, till the time comes to retire the dashboard. A handy
feedback questionnaire for users is suggested in our BI Implementation
Methodology handbook.
Is there an easy way to monitor analytics usage? Yes. in Sisense, usage analytics
is a built-in dashboard that enables you to monitor your Sisense activity across
all users and business dashboards. With Sisense Usage Analytics, you can better
understand how users interact with Sisense and optimize your configuration
accordingly. For more information, see here.
IntroductionSisense Pulse
Sisense Pulse is a centralized location where you can stay on top of your most
important KPIs across multiple dashboards or manage your data and build alerts.
For example, you can consolidate and monitor important aspects of your
business by adding important values from widgets from various dashboards to
the Sisense Pulse page.
Then, you can create alerts to notify you when certain thresholds are met or
anomalies in your data are detected. Sisense Pulse provides you with access to
your most important data and notifies you when to take action.
The following sections describe Sisense alerts and managing alerts and KPIs in
Sisense Pulse.
Sisense Pulse
Overview
Managing Pulse Tiles
Alerts
Overview
Creating Data Alerts
Creating Build Alerts
Advanced Alert Settings
Sisense Alerts
This topic describes the two types of alerts you can define, data alerts and system
alerts in Sisense.
Data alerts are triggered by changes to your data. Sisense provides several
options for defining the type of changes that trigger data alerts including
threshold based alerts, automatic anomaly detection, and Always which is
triggered by any change to your data. For example, if you have an Indicator
widget that represents total sales, Sisense can notify you when a threshold you
defined is met or exceeded.
Build alerts can be configured to be sent following build attempts.
When creating an alert, you can customize your notifications, the channel
through which they are sent, and how often a notification is sent following a data
or build.
After you create an alert, the alert is added to the Sisense Pulse page where you
can manage the alert and its notifications. For example, you can delete alerts or
enable and disable notifications.
If you want to make a similar alerts, for example, alerts with different
notifications for different groups of users, you can duplicate the alert and modify
its settings.
When an alert is triggered, you and your users are notified through the channel
you defined when creating the alert and through the Pulse Feed. The Pulse Feed
is displayed in the Sisense Web Application and shows a list of your most recent
triggered alerts. From the Pulse Feed you can open the dashboard from where
the alert originated or open the Sisense Pulse page.
Related Topics
Creating Data Alerts
Creating Build Alerts
Creating Data Alerts
This topic describes data alerts and how you can add them to Sisense Pulse.
Data alerts are triggered by conditions you define for your widgets. For example,
if you have an Indicator widget that represents your company’s revenue, you can
define an alert that notifies you when this revenue reaches or falls below a
certain threshold.
Sisense supports alerts for the following widgets:
Indicator Widgets
Area Chart Widgets
Bar Chart Widgets
Column Chart
Line Chart
For each type of widget you can add to Pulse, you can monitor a single value. For
example, for Column charts you can monitor a single section (value) of a column.
To monitor multiple values, you can add each value you want to monitor to Pulse
separately.
When creating data alerts, you define the condition that triggers the alert.
Sisense provides three alert conditions that can trigger an alert:
Threshold
Sisense notifies you when a threshold is reached following a build. This condition
is useful for monitoring metrics that follow a regular, cyclical schedule.
Automatic
Sisense automatically notifies you when the Sisense alert engine identifies an
anomaly in your data based on machine learning algorithms. The Sisense
algorithm actively learns from your data and eliminates noise to identify
anomalies in your data. Sisense’s anomaly detection is based on a smoothing
algorithm that takes the latest values into account. The more times an ElastiCube
is built, the more accurate Sisense becomes at identifying any anomalies and
notifying you.
Always
Sisense notifies you after each build, regardless if there is a change in your data
or not.
In addition, you can configure advanced settings that determine who receives the
alert and what channel the alert is sent through. For more information see
Advanced Settings.
To create a data alert:
For an Indicator widget, from the widget’s menu, select Add To Pulse.
For other types of widgets, right-click any value in the chart and select Add
To Pulse.
The Add to Pulse window is displayed.
In the Name field, enter a meaningful name that represents your alert.
In the Alert Condition area, select the condition that triggers the alerts.
Threshold: Sisense defines the threshold value as the current value
displayed in the widget. You can increase or decrease this value and define
the equality and relational operators that determine when the threshold is
met.
Click Add to create the alert. The alert is added to Sisense Pulse.
For additional advanced configuration options, see Advanced Settings.
Creating Build Alerts
Administrators can set build alerts to notify themselves or other users when a
build fails or succeeds. Build alerts are created from Sisense and are sent
following an ElastiCube build.
Build alerts allow you to monitor the status of ElastiCube builds.
Administrators can create build alerts from the Admin page. After a build alert is
created, it is added to Sisense Pulse from where you can manage it.
To create a build alert:
In Sisense, select Admin > Data Sources > Add Build Alert.
OR
From the ElastiCube menu, Add Build Alert.
From the Server list, select the server where the ElastiCube is hosted.
From the ElastiCube list, select the ElastiCube(s) that triggers an alert
following a build.
Select when to notify you following a build. There are three conditions that
when met, can trigger an alert:
Build failed: The alert is sent after the ElastiCube build fails.
Build succeeded: The alert is sent after the ElastiCube is built successfully.
Build succeeded after failure: The alert is sent following a successful
build after the ElastiCube previously failed to build.
Click Add. The alert is added to your Sisense Pulse page.
For additional advanced configuration options, see Advanced Settings.
Sisense Pulse
Sisense Pulse enables you to stay on top of your most important KPIs across all
your dashboards and your latest ElastiCube builds. By adding important KPIs
from your dashboards to Sisense Pulse, you can get a comprehensive picture of
your data from a single location.
Sisense Pulse contains tiles that display information from your dashboards and
the status of your ElastiCube builds.
Within Sisense Pulse, there are two types of tiles, data tiles that display your
data's current status and recent history and build tiles that display the latest
status of your ElastiCube builds.
You can access Sisense Pulse from the menu bar of the Sisense Web
Application.
By hovering over the header of any tile in Sisense Pulse, you can view additional
options for your tiles.
The icon opens a new tab in your browser. For data tiles the dashboard
where the widget originated is displayed and for build tiles the Data Sources
section in the Admin page is displayed.
The icon is a tooltip that describes the tile in more detail. For data tiles the
tooltip describes who added the tile to Pulse and when it was added. Build tile
tooltips describe when the tile was created, which ElastiCube is being monitored,
and under what conditions an alert is triggered when alerts are enabled.
The icon displays a menu for managing tiles in Sisense Pulse. For more
information regarding managing tiles in Sisense Pulse, see Managing Tiles in
Sisense Pulse.
Adding Tiles to Sisense Pulse
To keep track of your important KPIs and ElastiCube builds, you add the relevant
data and build tiles to Sisense Pulse.
The flow for adding tiles to Sisense Pulse is the same for creating alerts for
Indicator widgets and ElastiCube builds. For more information about these flows,
see the following topics:
For data tiles, see Creating Data Alerts.
For build tiles, see Creating Build Alerts.
Each of these flows adds tiles to Sisense Pulse and creates an alert. If you want to
monitor your data and ElastiCube builds without alerts, see Deactivating
Notifications.
Managing Tiles in Sisense
Pulse
This topic describes how to manage your Pulse tiles and notifications when an
alert is triggered.
After you have created alerts or added tiles to Sisense Pulse, you can manage
those tiles from Sisense Pulse. Through the Sisense Pulse page, you can duplicate
alerts and modify them, disable notifications, and delete alerts.
Duplicating Tiles in Sisense Pulse
You can create copies of alerts and modify them to quickly generate new alerts
with different notification messages or notify various groups across separate
channels.
For example, if you want to notify Group 1 via email and Group 2 via Slack when
the same event occurs, you can duplicate an alert and modify the notification
channel.
To duplicate a tile:
In the Sisense Web Application, select Pulse.
In the relevant alert’s menu, select Duplicate. A copy of the alert is created
and the Add to Pulse window is displayed.
You can modify the alert’s settings from the Add to Pulse window. For
more information about these settings, click here.
Deactivating Your Notifications
Each time you add a tile to Sisense Pulse or create an alert, by default, you will
receive notifications when the event is triggered. If you do not want to receive
any notifications, you can disable notifications from being sent by toggling the
notifications. When you toggle the notifications, you no longer receive
notifications when an alert is triggered, however, other users with whom the
alert was shared will continue to be notified. See Deactivating Notifications for
All Users to turn off notifications for everyone associated with an alert.
To deactivate notifications:
In Sisense, select Pulse.
From the Tile menu of the relevant alert, toggle Receive Notifications.
Deactivating Notifications for All Users
If you have added an alert that is no longer relevant or you want to deactivate the
alert for all users, you can turn off the alert.
When you turn off an alert, no users are notified when the event that triggers the
alert occurs.
To deactivate notifications for all users:
In the Sisense Web Application, select Pulse.
From the Tile menu of the relevant alert, select Turn Off. A confirmation
dialog box is displayed.
Click Yes to confirm that you want to turn off all notifications for the alert.
The alert is turned off.
Alerts that have been turned off appear in the Pulse page as shaded tiles.
You can reactivate the alert by selecting Turn On from the Tile menu.
Deleting Tiles in Sisense Pulse
When a tile is no longer needed, you can delete the tile through the Sisense Pulse
page.
Deleting an alert removes it from the Sisense Pulse page and users are no longer
notified.
To delete an alert:
In Sisense, select Pulse.
In the relevant alert’s menu, select Delete.
Removing Sisense Pulse
You can remove the Pulse page from Sisense and deactivate all the alerts defined
in Sisense Pulse from the Admin page. This is useful if you have embedded
Sisense and your end users do not need to receive alerts.
To remove Sisense Pulse:
In Sisense, in the top menu, open the Admin page and select Settings.
Toggle the Pulse switch to disable Sisense Pulse. The Sisense Pulse tab on the
top menu is no longer displayed and no new notifications will be sent.
Advanced Settings
By default, when an alert is triggered, you are notified via your email address
registered with Sisense.
You can also send alerts using more advanced configurations that canlet you
notify additional users when an alert is triggered, notify them you across
multiple channels, and allows you to customize the message displayed in the
notification.
The following topics describe the functionality available in the Advanced Settings
options:
"Notifying Additional Users" on page 800
"Setting Notification Channels" on page 802
"Customizing Notification Messages" on page 816
"Configuring Additional Options" on page 814
Notifying Additional Users
When an alert is triggered, Administrators and Designers can notify additional
Sisense users and groups by configuring the alert’s advanced settings. Viewers
cannot share alerts with additional users.
Users who are notified receive a notification through Sisense Pulse and any other
additional channels you define.
To notify additional users:
Enter the email address, Sisense username, or group name of the users you
want to notify when an alert is triggered. Entering Everyone specifies that
all Sisense users and user groups associated with your account are notified.
The contact information of the people you add is listed in the center of the
window and is displayed the next time you open this window.
Click Add to add the alert to Pulse.
Setting Notification Channels
By default, your users are notified via their email addresses registered with
Sisense. In addition, Sisense supports a variety of workflows by sending
notifications across multiple applications and services. For example, your users
can receive notifications through the Sisense mobile application, Zapier, Slack,
and other 3rd services via webhooks.
To define how users are notified:
For Build Alerts, select the tab.
For Data Alerts, select Advanced Options > .
In the Notifications area, select the relevant channel for your notification. The
default channel, Email, is already selected.
You can select one or more of the following channels:
Email
Mobile
Slack
Zapier
Webhook
mobile
Click Save.
Sisense Mobile
Sisense Mobile enables users to view Sisense dashboards through their mobile
devices. You or your users can receive notifications through Sisense Mobile. After
selecting the users you want to notify, any users with a Sisense user account and
Sisense Mobile will receive a notification when an alert is triggered.
Slack
Slack is a real-time team collaboration messaging platform that allows you to
receive incoming Webhooks from external sources such as Sisense. To send
notifications through Slack, you need to enter the URL and optionally, your Slack
channel or username, where the notification is to be displayed.
You can ask your Administrator to provide you with the Slack URL and channel.
You can obtain these details by adding the Incoming WebHooks app into your
Slack configuration.
For a quick walkthrough of configuring Pulse notifications in Slack, see the
tutorial below.
In the Setup Instructions the Webhook URL is displayed. Copy the Webhook
URL.
In Sisense when sending notifications through Slack, in the URL field, enter
the URL copied in the previous step and in the #channel/@username field,
enter the channel name if you have defined one.
Zapier
Zapier is an online service that lets you create automated actions connecting
disparate business apps and services such as Sisense. To receive notifications
through Zapier, you must create a Zap and provide Sisense with the relevant URL
when configuring your alerts’ notifications.
When an alert is triggered, Sisense sends the notification to the Webhook you
define in Zapier.
You can ask your Administrator to provide you with the Zapier URL.
To obtain a Webhook URL from Zapier:
Log in to Zapier and click Make a Zap. The Trigger App page is displayed.
From the Trigger App page select Webhooks. The Connect to Webhooks by
Zapier page is displayed.
In Step 1 > Set Up Webhook, click Copy to clipboard to copy the Webhook
URL you need to provide to Sisense.
In Sisense, when sending notifications through Zapier, in the URL field, enter
the URL copied in the previous step.
Webhooks
Webhooks are a system of automated notifications that indicate that an event
occurred, in this case an alert being triggered. To send notifications through
additional 3rd party channels, you can select Webhook and enter the Webhook
name and URL.
Your Webhook server listens for incoming messages from Sisense across the URL
specified in the URL field.
You can ask your system administrator to provide you with the Webhook URL.
When Sisense sends notifications to your custom Webhook, they are sent within
a JSON payload. Your Wehbook provider must interpret the payload and display
the notification to your users. The following areis an examples of a notifications
sent in a JSON payload and a description of the contents of the payload:
{ type: 'kpi', name: 'Total Sales', message: 'Hello World', originDashboardLink:
'58128745677f52dc0f000019', measure: 'Revenue', value: 39759625.51502721,
condition: 'none', filters: [ { asDimension: false, title: 'Category', value: 'Include
all', jaql: [Object], panel: 'scope' }, { asDimension: false, title: 'Gender', value:
'Include all', jaql: [Object], panel: 'scope' } ]
Data Events Build Events
{ type:
{ type: 'kpi',
'build',
name: 'Total Sales', name:
message: 'Hello World', 'Success
Event',
originDashboardLink:
'58128745677f52dc0f000019', measure:
null,
measure: 'Revenue',
value: 1,
value: 39759625.51502721, condition:
condition: 'none', 'none',
filters: null
filters:
[ { asDimension: false, }
title: 'Category',
jaql: [Object],
panel: 'scope' },
{ asDimension: false,
title: 'Gender',
jaql: [Object],
panel: 'scope' } ]
Type String Type of alert. ‘kpi’ for data events and ‘build’ for
build events.
ds/573b4322048e5e382a000001
You can provide customized messages for your notifications when configuring
your alert through the alert’s Advanced Settings.
The message you provide replaces the string: The latest value in the KPI that you
are monitoring is:
For example, if your message is “The last value of my KPI is:” the message in your
alert’s notification will be:
Hi,
The last value of my KPI is:
Value
To customize your notification’s text:
For Build Alerts, select the tab.
For Data Alerts, select Advanced > .
Note: The Admin page is only displayed to users with the relevant privileges. In
addition, certain settings are only available to certain user roles except for
Administrators who have access to all settings.
"Managing Sisense Users" on page 821
"Managing Your Users Dashboards" on page 893
Data Source Management
"System Settings" on page 907
"Embedded Analytics" on page 955
"Sisense Security Overview " on page 1026
"Sisense Migration" on page 934
"Multi-Node Deployments" on page 1056
Managing Sisense Users
Sisense Administrators have access to the User Management section of the
Admin Page where users, groups, and advanced user settings can be configured.
The topics below describe how to create users and groups, and allow users you
authenticate to access your implementation of the Sisense Web Application.
Sisense User Roles
Managing Dashboard Users
Managing User Groups
Managing User Sessions
Customizing User Roles
License Utilization
Integrating Active Directory
Introduction to SSO
Managing Dashboard Users
This topic describes how to add and manage Sisense users that can access
Sisense dashboards.
Users are managed from the Admin page through the Users tab.
In the Users table, you can edit and delete users in your system. The table
provides the following information about your users:
Username: The user's username in Sisense.
Email: The user's email address.
Name: The name of the user.
Groups: The groups, if any, that the user belongs to. By default, the System
Administrator belongs to a group called Admins.
Role: The user role assigned to the user.
Origin: The origin of the user. This is typically your company's name.
Last Active: The date of the last time the user was active. Activity includes
opening any of the Sisense tabs (Data, Analytics, Pulse, and Admin), viewing
dashboards, working with widgets, or exporting reports. This field is blank
if the user has never been active in Sisense.
Days Since Last Active: The number of days that have passed since the user
last was active. This field is blank if the user has never been active in
Sisense.
Adding a New User
You can add users using the following methods:
Add new users by entering them one by one or in bulk
Add new users from your Active Directory database. Click here to learn how
to configure your Active Directory in Sisense
To add a new user:
Click . If a connection with Active Directory also exists, an
additional Import Many option is available. Click it to select a user from
Active Directory.
In this case, the user receives an invitation email. You must personally
notify the user of the password that you set for them.
Adding Multiple Users
To add multiple users:
Click the Import Many option at the top right of the Add users window.
In the displayed text box, paste a comma separated list of emails and click
Next.
The next screen enables you to assign User rights to the users that you
entered and to verify that the user count and permissions match your
license.
After you click Add, each user receives an activation email.
Editing an Existing User
To edit an existing user:
Click Admin and select the Users tab on the left.
Click on the right of the user’s entry in the list.
Deleting a User
To delete an existing user:
Click Admin in the upper right corner and select the Users tab on the left.
Click at the right of the user’s entry in the list.
Managing User Groups
This topic describes how to add and use user groups in Sisense.
How Do User Groups Work?
When building and sharing dashboards, wherever you can select a user, you
can also select a user group. For example, you can share a dashboard with
an entire user group at once.
When you add an additional user to an existing user group, the user receives
the role you assigned to them when you created that user
When users are added in Active Directory to a previously imported Active
Directory user group, then those users are automatically added to the
corresponding Sisense user group.
User groups can only contain users. They do not support nested user groups.
Additional users cannot be added to a user group that was imported from
Active Directory.
You can add users to a user group using the following methods:
Add existing Sisense users to a user group
Add a user group from Active Directory
Accessing User Group Management
You can add, edit and delete user groups, and assign users to them.
To access the user group settings:
Click Admin and select the Groups tab on the left. A list of the previously
defined user groups is displayed. The Origin column displays Sisense or
Active Directory to indicate whether the user group was defined in
Sisense or imported from Active Directory.
If no user groups have yet been defined, the following message is displayed: No
Groups Found
Adding a New User Group
The following procedure describes how to add a new user group by selecting
users from existing users in Sisense.
See Adding a User Group from Active Directory for a description of how to add a
user group from Active Directory.
To add a new user group:
Click Admin and select the Groups tab on the left.
Click Add Group.
In a Group Name field, enter the name for this user group.
In the Group Users field select each of the users that belong to this group. To
add each user, start typing in the user’s name. An auto-complete list is
displayed showing the users that already exist in Sisense. Select a username
to add to the group.
Note: If you want, you can leave the group empty and add members to it
later.
(Optional) The Default Language for a group is the language set by an
Administrator for that server. From the Default Language list, you can select
another default language for a group. For example, if your server supports
groups located in different countries, you can set the language for each
group.
(Optional) Select the default user role. If you have implemented SSO over
SAML, each member of the group is assigned this role when they log in for
the first time.
(Optional) The Session Inactivity Timeout options are displayed only if
you have selected Session Inactivity for your session management. You can
use the system default for a group or manually set how many minutes must
pass before the group’s users are logged out.
Note: If the user belongs to multiple groups, the highest timeout settings
are applied to that user.
For more information about these settings, see Managing User Sessions.
Click Create.
Adding Users to an Existing User Group
The following procedure describes how to add one or more users to an existing
user group.
To add multiple users to a user group:
Click Admin and select the Users tab on the left.
Select the relevant users.
Click + Add to Group.
In the Group Users field, you can type additional usernames to add more
users. An auto-complete list is displayed showing the users that already
exist in Sisense. Select a username to add to the group.
Click Add.
Adding Users to an Existing User Group
The following procedure describes how to add one or more users to an existing
user group.
To add multiple users to a user group:
Click Admin and select the Users tab on the left.
Select the relevant users and click to edit their profile.
The Sessions Tables provides the following information about the users
currently logged into your Sisense account:
Username: The Sisense username
Name: The user’s first and last name
Domain: The part of the user’s email address after the @ sign
Current Sessions: The number of sessions the user has open
Session Duration: The amount of time from the first session until now
The Session Table is useful for monitoring who is currently logged in and who
might be abusing their license. For example, if you need to declare some
downtime, you can view the currently logged in users and end their sessions
manually by revoking their session.
If you believe that a user is abusing their license, you can check the Current
Sessions column to see how many sessions they currently have open. Users can
open multiple tabs in their browser to open multiple sessions, or by sharing their
account information with other users. To view which users have the most
sessions currently open, click the Current Sessions table heading.
Note: User session in Sisense Mobile are not included in the Sessions table.
Revoking a Session
From the Session Table, you can revoke a user’s session. Revoking the session
ends the user’s current session. It does not revoke the user’s API tokens.
When a user’s session ends, the next time the user tries to perform an action in
Sisense, a message is displayed that the session has ended and your users are
prompted to log in again.
To revoke a session:
In the Admin page, select Sessions Table.
Locate the relevant user in the Session table. You can click and enter the
user’s information in the Search field to locate the user quickly. As you
begin to type, the results are filtered.
For the relevant user, click and confirm that you want to revoke the
session by clicking Revoke. The next time the user performs an action in
Sisense, they are redirected back to the Login page.
Setting Session Inactivity Timeouts
When a user signs into Sisense, a session cookie is stored in their browser. The
session cookie allows the user to remain logged in and authenticated even after
ending a session for 7 days.
For security reasons, you may want to end your user’s session sooner. Sisense
provides two methods for ending a user session, according to the user’s cookie or
by the amount of session inactivity as recorded by Sisense.
When a user’s session ends, the next time the user tries to perform an action in
Sisense, a message is displayed that the session has ended and your users are
prompted to log in again.
After making any changes to your users’ session timeout settings, all of your
users’ sessions are terminated and the user is asked to log in again.
If you have implemented SSO, your users will be logged out and redirected to the
IdP to reauthenticate.
To set the session inactivity timeouts:
In Sisense, open the Admin page and select Settings.
In the Session Management area, select the method you want to use for
defining when a user’s session ends:
Cookie: Allows you to define how much time must pass before a user’s
session is ended according to the user’s cookie. This is the default behavior
for Sisense.
Expiration(days): The amount of days that must pass for a user’s
session to end. The default is 7 days. You can enter 0 so your users'
sessions do no expire so long as they have the cookie.
Show "Remember Me" checkbox on Login screen: Toggle to remove
the Remember Me checkbox from the Login screen. Disabling this
option means that if your user ends a session, they must log in again
the next time they try to access Sisense.
or edited.
Filters
Items
reorder Tru Tru True True Fals
Reorder the fields and values in the data e e e
panel and their representation in the chart.
Filters
on_off Tru Tru True True Fals
Switch filters on or off. e e e
When changing a permission for a role, go right into the list of permissions in
the Manifest parameter, and type in the desired permission (for example,
change 'true' to 'false').
Then remove everything else from the list of permissions, including the
heading ("dashboards":), the brackets and the extra commas.
Name: The name of your Active Directory domain. This name is used to
locate your Active Directory domain in Sisense when you have
multiple domains.
Connection String: The full path to your Active Directory domain.
Example: ldap://dc.domain.com (Or ldaps://dc.domain.com for
secure connections)
Base DN: The Active Directory location from where a server searches
for users. Enter the domain by its distinguished name (DN) with its
domain components (DC) connected by commas.
For example: For the domain domain.sisense.test, use
DC=domain,DC=sisense,DC=test.
Note: If you have a hierarchy of user groups in your organization, you
can define the hierarchy in your string as follows:
If your domain is domain.sisense.com/OU1/OU2, then use OU=OU2,
OU=OU1,DC=domain,DC=sisense,DC=com. Only users and user
groups from OU2 will be available. Users/groups under OU1 will not
be available.
Username: Enter the username with domain. Example:
domain\username
Password: Enter the password for your Active Directory instance.
Sync data every: Enter how often Sisense automatically synchronizes
with the users and groups in this Active Directory domain in
milliseconds.
SSL Enabled: Select to enable a secure connection to your Active
Directory. When you select SSL Enabled, the PFX Upload area and
PFX Password field are displayed. In the PFX Upload area, drag the
PFX file into the browser or click Browse and navigate to the file. In
PFX Password, enter the password you received after your PFX was
generated.
Click Test to verify that your configuration successfully connects to your
Active Directory domain.
Click Save.
Editing Active Directory Domain Settings
You can delete an Active Directory domain from your configuration. When you
delete an Active Directory domain, the users included in that domain are no
longer displayed when sharing dashboards or reports. Deleted Active Directory
domains cannot be restored, however you can add the Active Directory domain
again from the Active Directory page.
To delete an Active Directory domain:
From the Active Directory list, select for the Active Directory settings you
want to delete. The Delete Active Directory window is displayed.
Click Delete. The Active Directory domain settings are removed from Sisense.
Adding a User from Active Directory
Once a connection with Active Directory has been established, an additional
Import from External Server option is added to the Add Users button in the
User tab.
The user’s username and email will be added from Active Directory.
Note: You can add a user from Active Directory, even if you have not imported
that user’s user group from Active Directory.
See Managing Dashboard Users for general information about working with
users/user groups in Sisense.
Associating a Sisense User with an Active
Directory User
Once a connection with Active Directory has been established, you can associate
Sisense users to your Active Directory users in the User tab. Associating a Sisense
user with an Active Directory allows you to manage your Sisense users from
Active Directory. For example, after associating your users, if you need to delete a
user, you can remove them from Active Directory and they will no longer be able
to access Sisense. Another example is if you have an Active Directory user and a
Sisense user with their own dashboards or ElastiCubes, you can associate the
accounts so you don’t need to create a new Active Directory user for your Sisense
account.
To associate a Sisense user:
From the Users tab of the Admin page, click to edit the relevant Sisense
user.
If Active Directory is not enabled, toggle the switch to enable it.
Select the relevant Active Directory domain and locate your Active Directory
user.
If an Active Directory user group has already been imported into Sisense,
the words Group already selected appear next to it, as shown above. You
can add multiple Active Directory groups, by selecting one group after
another. The groups appear in this window as follows:
Select the default Role for the members of this user group: Viewer or
Designer. It will be assigned to new users from this group, when the users
are created. Subsequently, user’s role can be changed in the Sisense Users
list.
Changes to a group’s default role will affect users created after that time,
but will not affect existing users.
Click Add.
Account Lockout Thresholds
You can prevent brute-force account attacks in Sisense by limiting the number of
failed login attempts that can be performed before an account is locked.
In the Settings tab of the Admin page, you can set your account lockout
thresholds for your users. Account lockout thresholds determine after how many
failed login attempts a user is locked out of Sisense and for how long. A locked
account cannot be used until you unlock it or until the number of minutes
specified by the Account lockout duration policy setting expires.
Setting Account Lockout Thresholds
To set your account lockout thresholds:
In the Admin page, click Settings. The Account Lockout settings are
displayed on the bottom of your Settings.
maxFailedAttempts number How many failed login attempts must occur before a
user is locked out.
lockoutPeriod number The amount of time in minutes that a user is locked out
for after exceeding the allowed amount of login
attempts.
To access the login_lockout endpoints:
Access the Sisense REST API.
In version 1.0 of the REST API, the login_lockout endpoints are located under
/Settings.
Introduction to SSO
Single Sign-On (SSO) is a mechanism that allows a system to authenticate users
and subsequently tell Sisense that the user has been authenticated. The user is
then allowed to access Sisense without being prompted to enter separate login
credentials.
The SSO security mechanism allows Sisense to trust the login requests it gets
from your corporate authentication system, and grant access to the users that
have been authenticated by it. An SSO session begins when the authenticated
user requests a secured resource from Sisense while logged into your site or
application. The user’s browser sends an HTTP request to Sisense that includes a
cookie which contains session and authentication information. This information
is then used for session validation.
Users who already have Sisense accounts can continue to access Sisense through
the Sisense Login page with their current accounts. To prevent users from
directly logging in to Sisense instead of your login page, your Sisense
administrator can change the passwords of your current users forcing them to
log in with your company’s credentials in your company’s login page.
Sisense recommends that administrators always keep a Sisense password, so
that the administrator can access Sisense in case the SSO server is not available.
Sisense SSO supports two SSO protocols for securing the exchange of user
authentication data , JSON Web Token (JWT) and SSO via SAML 2.0 (Security
Assertion Markup Language). For more information, see SSO via JWT or SSO via
SAML 2.0.
SSO via JWT
JWT is a technique that can be used for single sign-on (SSO) between your site
and Sisense. JWT is a token that represents your users credentials wrapped in a
single query string. In addition, Sisense uses the jti parameter (see below), which
adds a unique ID to the token that prevents the token from being used more than
once, thus preventing attacks on the system (also known as replay attacks).
The Sisense SSO via JWT authentication flow is explained in the following
diagram.
Note: See the Developers Community for a tutorial that shows how to implement
SSO via JWT.
SSO Authentication Flow
The following is a diagram of the SSO authentication flow from your site or
application to Sisense.
typ Yes Define the type of token with the attribute typ. You
should also specify HS256 as the JWT algorithm in the
header of your JWT payload.
{
"typ":"JWT",
"alg":"HS256"
}
iat Yes Issued at the time the token was generated. This is
used to help ensure that a given token gets used
shortly after it is generated. The value must be the
number of seconds since UNIX epoch. Sisense allows
up to five minutes clock skew.
Note: The date must be an integer and not a float.
sub Yes Email of the user being signed in, used to
uniquely identify the user in Sisense. If the user
does not exist in Sisense, it will be created with
default viewer privileges.
After your users successfully authenticate, Sisense returns them to a URL defined
as the return_to URL.
For example:
https://yourcompany.sisense.com/dashboards/
To define the return_to URL in Sisense:
In your browser, open the Configuration Manager located at
http://localhost:3030.
In SSO Return to, enter your base URL.
Click Save to save your changes.
Logging Users Out
When a user is logged in, anyone using that browser can access the session, or
users may encounter an issue where they remain logged in until the Sisense
cookie is cleared.
Users are logged out when the session ends. A session ends when the user closes
their browser or according to the value of the attribute exp you send in the JWT
payload.
You can log the user out through the Sisense REST API.
To manually log a user out, access version .9 of the REST API. Through the Auth
method, you can issue a get request to log out specific users.
While the logout REST API can delete the SSO authentication cookie, it can only
delete it when the call is made from within the Sisense domain. Scripts on
different pages can access each other only if the pages that executed them are at
locations with the same protocol.
If you have embedded Sisense in an iFrame and you want to log out the user from
your application and Sisense, you can use the window.postMessage method to
call the logout when the users asks to logout from your application. This method
overcomes any cross-origin communication limitations. Sisense has created a
plugin that implements a listener, which calls the Logout API when the
postMessage method() is called. For more information, click here.
SSO via SAML 2.0
The Sisense SAML authentication process is based on the SAML 2.0 protocol, and
is explained in the following diagrams:
Phase 1
The first phase of this process begins when a user requests a resource from
Sisense via their browser (1). The browser generates a resource request to the
Sisense server. The server processes this request (2), and for unauthenticated
users, returns a special save-hash page to save the requested hash data.
After the browser loads the save-hash page from the Sisense server, it runs a
script, which loads the requested resource hash from the URL and sends it to the
Sisense Server (3).
At the end of this phase, the Sisense Server converts the requested resource URL
and sends it to the browser as a part of the redirect to IdP Server command (4).
Phase 2
The second phase of the authentication process starts after the browser retrieves
the redirect command from the Sisense Server, and sends the authentication
request to the IdP Server (1) as described in the diagram below.
The base URL for this request is taken from the Remote Login URL field in the
Single Sign On section of the Admin page in the Sisense Web Application.
The requested resource address is passed to this request as a RelayState
parameter. All other data is provided as a SAMLRequest parameter.
The next step of this phase depends on the user authentication state and the IdP
implementation.
If the current user isn’t logged in as an IdP user, the IdP server redirects the
browser to your Login page (2), where the user enters their IdP credentials. After
logging in, the IdP Server sends the browser the Auto-Sign-In page with encoded
data about the currently logged-in user (4).
Note: Two-factor authentication for Sisense is supported for SSO providers that
support two-factor authentication.
After this document is loaded in the user’s browser, it runs a script which creates
the POST-query to the Sisense Server API, and passes the SAML response to this
query (1). At this time, the third phase of the authentication process begins.
Phase 3
The Sisense Server handles the POST-query (2), decrypts it with the certificate
specified in the Public X.509 Certificate field defined in the Single Sign On section
of the Admin page. The Sisense Server uses the decrypted User ID as a key to
locate the Sisense user in the internal database.
If a user is not found in the system, Sisense creates a new user (3).
Associating SSO Users with Sisense Groups
When Sisense creates a new user, Sisense analyzes the “memberOf” field to
locate one or more groups related to the logged-in user.
If the “memberOf” field is empty, the user is assigned the role: “Viewer”. If the
“memberOf” field contains one or more groups, and the groups were previously
defined in Sisense, the newly created users’ Role is taken from the groups’
default role. When multiple Sisense Groups are found, the user is assigned the
role with the maximum privileges.
After a user is created in the system, an administrator can modify the user role, if
needed.
Below, is an example of an SAML XML where the “Test” group is specified:
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic
Name="memberOf">
<saml:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:type="xs:string">
Test
</saml:AttributeValue>
</saml:Attribute>
After the user is located or created, a new session is initialized, and the Sisense
Server redirects the user browser to the requested resource (4).
Enabling SSO via SAML in Sisense
After you have configured your SAML server, sign in to Sisense as an
Administrator and follow the instructions below.
To enable SAML in Sisense:
In the Sisense Web Application, click Admin and select Single Sign On.
Click Save.
Note: Changes to the group’s default role are applied when new users are
created, and do not affect existing users. After a user is created in the system, an
administrator can modify the user role, if needed.
Related Topics
For Administrators, the Analytics page is a centralized location for managing all
the dashboards in your system and performing administrative actions on them.
As an Administrator, you can perform the following operations:
Sharing the dashboard with other users in the system, or change the
dashboard’s owner
Accessing a user’s dashboard as a Viewer
Copying the dashboard to another server
Downloading a PDF of the dashboard
Deleting the dashboard
This is in addition to the functionality available to you for your own dashboards.
When you click the All Dashboards button on the Analytics page, you can see
all your dashboards and the dashboards of your users. A yellow border displayed
on top of the dashboard tile indicates that you are looking at the dashboard
version of one of your users, and not your copy of the dashboard. This can be
useful to view a dashboard that the owner modified, but has not yet republished
the changes.
You can click the dashboard tile to open the dashboard. When opening a
dashboard not shared with you, you will see the dashboard as a Viewer without
editing rights. If you need to modify the dashboard, you must first make yourself
the owner of the dashboard. You will then have full edit permissions for the
dashboard.
The menu on the right of the dashboard tile is from where you can manage your
or your users’ dashboards. The example below includes the options available to
you when the dashboard belongs to another user.
Keep in mind that the All Dashboards button is displayed only if the grid-view
area of the Analytics page is available to you. If you have rebranded the whole
Analytics landing page, the All Dashboards button will not be displayed. If you
rebrand just the top part of the Analytics landing page, the All Dashboards
button will be available. For Administrators, if you have enabled the Dashboard
Admin feature, the default Sisense Analytics page is displayed while all non-
admin users continue to see the rebranded page.
You can rebrand the top part of the Analytics and Data pages by defining the
URL of the marketingPart key, which is part of the POST /branding endpoint. The
marketingPart key is an iFrame that displays the Welcome banner and Sample
dashboards and ElastiCubes.
Note: This feature can be disabled over REST API, if you are not interested in
exposing the system dashboards to Administrators. See the
isAdminAccessAllDashboards key of the POST /settings/system endpoint for
more information.
For information on improving dashboard performance for your users, see
Maximize Dashboard Performance.
Data Management
The topics below describe how you can share data models with other users and
you can create drill hierarchies that you want to make available for Designers:
Adding and Removing ElastiCube Servers
Sharing ElastiCubes
Managing Drill Hierarchies
Adding and Removing
ElastiCube Servers
This topic describes how to manage your ElastiCubes.
By default, the Sisense Web Application is connected to the ElastiCube server
that is installed with it on the same machine.
By default, all ElastiCubes on that machine are accessible to all dashboard users,
and are visible under LOCALHOST.
Opening an ElastiCube in Sisense
You have a number of ways to open your ElastiCube in Sisense:
From the Sisense Web Application:
If you have an open dashboard, click on the ElastiCube name next to the
dashboard name. Select View in ElastiCube’s Page to open the ElastiCube
management page in the web app. In the ElastiCubes page, select the
ElastiCube and click Open. To open the ElastiCube of the open dashboard,
click Open Sisense .
From Windows: From the Start menu, open the ElastiCube Manager.
Adding Another ElastiCube Server
To add another ElastiCube Server to Sisense:
Click Admin and select the Data Sources tab on the left.
Click Add Server.
Select whether this ElastiCube Server is intended for Admins only. This
selection also applies to all new ElastiCubes that will be added to this
ElastiCube Server. A user that has access to an ElastiCube Server can access
all the ElastiCubes on it.
Add the IP of the ElastiCube Server to which you want to connect and click
Add Server. The new ElastiCube Server is added to the list with all
itsElastiCubes.
Click Save. Once a new ElastiCube Server has been added, its ElastiCubes
immediately become available to all designers (by default) when they
create a new Dashboard.
To define which users are allowed to access the data of an ElastiCube Server,
see Assigning Rights to an ElastiCube Server.
To define which users are allowed to access each specific ElastiCube, see
Assigning Rights to an ElastiCube.
Removing an ElastiCube Server
To remove an ElastiCube server from the list:
In the Data Sources page, for the relevant server, click the Trash button.
Note: The LOCAL MACHINE server cannot be removed.
Sharing ElastiCube Models
You can share ElastiCube models with other Sisense users through the Admin
page.
There are two types of access rights that can be assigned to a Sisense user, edit
rights and query rights. Edit rights allow the user to modify the ElastiCube
model, while query rights allow the user to query or create a dashboard based on
the shared model, but not modify it.
The user's role determines what access they have and what access can be
assigned to them when the ElastiCube model is shared.
Administrators and Data Administrators have edit rights to the ElastiCube model,
even without sharing the ElastiCube model with them. Data Designers can have
edit or query rights, while Designers can only have query rights.
When an ElastiCube model is created on the Data page, it is not shared with
anyone. This allows the model’s creator to work on the model and publish it only
once it's ready.
When you assign specific users/user groups access rights to this ElastiCube, then
only the users/user groups that you assign can access the ElastiCube.
When an ElastiCube is shared with other users, the ElastiCube is displayed in the
Data page with a list of the other shared users.
To share an ElastiCube:
In the Sisense, select Admin > Data Sources and then the menu icon for the
relevant ElastiCube.
Click Share.
Enter the names or groups of users with whom to share the ElastiCube.
Selecting Everyone specifies that this ElastiCube is shared with all Sisense
users and user groups.
The contact information of the people you add is listed in the center of the
window and is displayed the next time you open this window.
In the dropdown menu next to each user/user group select what rights the
user has. (You can only select the rights for a Data Designer as all other
roles have predefined permissions.)
Click Save.
Managing Drill Hierarchies
Dashboard viewers can drill down in most widgets to get an in-depth view of a
selected value. To make it easier for viewers to select drill-down paths,
Administrators can add predefined drill hierarchies to their widgets.
As an Administrator, you can create a pool of drill hierarchies, from which you
can select the drill hierarchies they want to include in the widgets they build.
This section describes how to create and manage the drill hierarchies that you
want to make available for designers.
To create a drill-down hierarchy:
Click Admin in the Sisense Web Application. In the left menu, select Data
Sources.
For the relevant ElastiCube, click and select Manage Hierarchies.
If this is the first hierarchy you are adding, select Add Hierarchy. If you
already have hierarchies, click Add Hierarchy in the top-right corner.
Select the field. This will be the first field in the drill hierarchy, and the same
field used in the widget.
Click Add Field to add the next level in the drill hierarchy. Repeat this step
for as many levels as you need.
Add as many hierarchies as you need for the ElastiCube. When done,
dashboard designers will have access to the hierarchies in the widget
designer, and will be able to select and add them to the widget.
To delete a hierarchy:
Click on the bin to the right of the hierarchy.
System Settings
Sisense Administrators can perform a variety of tasks related to implementing
and maintaining an implementation of Sisense.
The following topics describe system-related tasks that Sisense Administrators
are responsible for handling:
System Configuration
Internationalization and Localization
Managing Plug-ins
Setting Up a Custom Email Server
Sisense Narratives
Changing the Sisense Web
Application’s Language
Sisense supports multiple languages in the Sisense Web Application making it
easier to extract meaningful insights from your data in your users’ local language.
The following images display two interfaces, one in English and the other in
Spanish.
English Spanish
What has been Translated?
Sisense has translated text that your users might see including menu names,
buttons, messages, and other elements in the Sisense Web Application.
Translating the Sisense Web Application does not affect your data or how it is
displayed.
The Sisense Web Application has been localized to the following languages:
Chinese (Simple)
French (France)
German
Italian
Japanese
Portuguese (BR)
Russian
Spanish (ES)
Spanish (LA)
Dutch
Note, the following content is not being localized:
Built-in Javascript editor
ElastiCube Manager and Server Console
Sisense documentation and online help
REST API and documentation
Sisense automated emails
Note: You can use your own translation of Sisense automated emails by defining
your own. Click here for more information.
Changing Sisense’s Default Language
Administrators can select the default language for the Sisense Web Application.
Setting the default language affects all users and groups who access the Sisense
dashboard. Additionally, Administrators can then set the language for specific
groups and users when adding new users or by editing a group or user account.
After selecting a new language, each string with a translation is displayed in that
language across all your Sisense users’ interfaces.
If you have defined a custom translation, the name of the language as defined in
the settings.json is displayed in this list. See Embedding Custom Languages
below for more information.
Sisense’s default language is English. After changing the system language, you
can revert back to the English or any other language by selecting it from the list.
To modify your default language:
In the Sisense Web Application, click Admin in the top menu, and then
Settings in the left menu.
Select the relevant language from the Language list. After selecting the
language, the UI is immediately translated.
Click Save. The Sisense Web Application is translated in the selected
language.
Embedding Customized Languages
Sisense enables you to display your own translations in the Sisense Web
Application by replacing the values of strings in any language you choose.
You can embed customized languages by modifying configuration and resource
files replacing the string values according to your requirements.
For example, in the homepage of the Sisense Web Application, the word
“Explore” is displayed. In the resource file home.js, you can modify the value of
this string to display your own text as shown below.
"welcome_user": "Welcome",
"explore": {
"explore": "Explore",
"learn": "Learn & find new tips
& tricks",
"links": {
"welcome_user": "Welcome",
"explore": {
"explore": "TEST",
"learn": "Learn & find new tips
& tricks",
"links": {
In addition to modifying the resource files, you must modify the settings.json file
and specify your language’s name and update the version. In this example, the
language has been changed to “test” and the version increased from 1.0.0 to 1.0.1.
{ “displayName”: “test”, “version”: “1.0.1” }
The value of “displayName” is displayed as your language’s name in Default
Language list on the System Configuration page. In the example below, the
displayed was set to Test.
Upgrading Sisense may replace the bundled translation files. If you wish to
modify a bundled language, copy of all of the translation files to a new directory,
and change the copied versions to prevent your translation from being
overwritten.
To customize the Sisense Web Application’s language:
Navigate to the directory ...\Program
Files\Sisense\app\translations\.
In the \translations directory, copy the en-us(default) directory, paste it in
the \translation directory and rename it.
In the new directory, open each resource file and translate the strings into the
desired language saving each file after your changes are made.
Open the settings.json file and replace the following key values:
displayName: Enter the name of the language.
version: Enter the name of the new version. Currently, the version is 1.0.0.
For each version, increase this value, for example, 1.0.1.
Save the changes in a file called settings.json in your new language folder.
In the Sisense Web Application, click Admin in the top menu, and then
Settings in the left menu.
Select your customized translation from the Language list. The Sisense Web
Application is displayed in your customized translation.
Click Save.
Internationalization and
Localization
Sisense supports localization and internationalization by displaying your users’
native language in the Sisense Web Application. You can select the language
displayed in the Sisense Web Application from a list of languages provided by
Sisense or display your own translation. Each time you select a language, the
Sisense Web Application interface is displayed in that language.
When you change the default language displayed in the Sisense Web Application,
words that are part of the Sisense framework such as menu items, buttons, and
messages are displayed in the selected language. Words specific to your
dashboard, such as table names, field names, and filters, are not automatically
translated when you select a new language to display. These words are called
metadata and you can provide your own translation of these terms and display
those translations to your users through a Dashboard script.
For instructions on how to change the language displayed in the Sisense Web
Application, see Changing the Sisense Web Application’s Language.
For instructions on how to translate your metadata, see Translating Sisense
Metadata.
Translating Sisense Metadata
Sisense enables you to translate metadata in your users’ native language. Sisense
metadata is displayed in your users’ dashboards and includes the following:
ElastiCube fields
ElastiCube tables
Widget Titles
Dashboard Names
Folder Names
Saved formulas
Default and custom hierarchies
Customized renamed field titles
The following images display two interfaces with metadata, one in English and
the other in Russian.
English Russian
As fields such as ElastiCube names and tables are defined by you, these fields are
not translated when changing the default language of the Sisense Web
Application.
You can translate your metadata by modifying the default values using a
JavaScript plugin. Through the plugin, you define the new values to be displayed.
You may also include additional logic to determine which users or user groups
the translated values should be displayed to.
When you create a JavaScript plugin, you should create a folder for the plugin
and place it inside the plugins folder in the following location:
In Windows:
...\Program Files\Sisense\app\plugins
In Linux:
See Uploading Files through the File Manager and upload the files to the plugins
folder.
OR
Upload all the folders to your Sisense Server through the File Manager. See
Uploading Files through the File Manager for more information.
If the \plugins\ folder does not exist, create it and then create a new folder
within the \plugins\ folder with the relevant files.
You can download an example of a Metadata Translation plugin here. This is just
an example, you define how your metadata is to be translated.
Extract the enclosed folder into the plugins folder.
This file contains a folder called Metadata and two files:
plugin.json: The plugin.json file contains the name of the plugin and a link to the
file that describes the plugin’s functionality, in this example, run.js.
run.js: The run.js file contains the plugin’s functionality and describes which
metadata is to be translated and how it is to be translated.
This example, and any metadata translation JavaScript file you write should
include three parts:
Provider Function: These functions provide the mapping context contained in
the Mapping object.
Event Subscription: This event is triggered when a datasource changes, and
calls the Provider function.
Mapping Object: Contains key/value pairs with your default and translated
metadata.
Provider Functions
The code sample below is an example of two Provider functions, the first is a
global provider function for folder and dashboard aliasing. The second is the
datasource provider function for translating ElastiCube and formula names. You
can replace the parameters in this example to provide the mapping context you
define in the Mapping object.
Global Provider
function (resolve, reject) {
//an ajax request or any other logic.
setTimeout(function () {
resolve(globalAliasing);
}, 0);
};
The following table describes the Provider function and its arguments:
Parameter Description
resolve A callback function which should be called with the provided aliasing
context object or without any parameter if aliases shouldn't be
provided for the datasource.
aliasname Defines which alias object to use for the group defined in the
groupID.
Event Subscription
To trigger the Provider functions, your plugin should include a handler for a
global event ‘beforealiascontextinit’.
In the example below, datasourceProviderFunction and globalAliasingProvider
are the Provider functions. The timeout parameter is optional and configures the
amount of time in milliseconds which the system waits for the aliasing context to
be resolved by the provider function. By default the system uses a timeout of
2000 ms
prism.on("beforealiascontextinit", function (ev, args) {
var timeout = 2000;
args.register(datasourceProviderFunction,
globalAliasingProvider, timeout);
});
Mapping Object
The translation context is a simple JavaScript object which contains key value
pairs for tables, columns, hierarchies, formulas and custom item titles, all case-
insensitive.
The sample below is a skeleton of a Mapping object that defines what metadata is
to be translated and its new value.
/**
* tables - aliases for table names
* "tables": {
* "table_name_1": "alias_1",
* "table_name_2": "alias_2",
* }
* columns - aliases for column names in scope of table
* "columns": {
* "table_name_1": {
* "column_name_1": "alias_for_column_name_1"
* "column_name_2": "alias_for_column_name_2"
* "column_name_3": "alias_for_column_name_3"
* },
* "table_name_2": {
* "column_name_1": "alias_for_column_name_1"
* "column_name_2": "alias_for_column_name_2"
* "column_name_3": "alias_for_column_name_3"
* }
* }
* titles - aliases for custom dimension titles, etc
* "titles": {
* "Custom title": "Alias",
* "Sample Revenue": "Sample Profit"
* },
* formulas - aliases for custom formula titles
* "formulas": {
* "Custom title": "Alias"
* },
* hierarchies - aliases for hierarchy titles
* "hierarchies": {
* "Custom title": "Alias"
* }
*/
var datasourceAliasing = {
"tables": {
"brand": "бренд",
"category": "категория",
"country": "страна",
"commerce": "коммерция"
},
"formulas": {
"Revenue": "Чистый доход"
},
"hierarchies": {
"Category by Brand and Age Range": "Категория через
Бренд и Год"
},
"titles": {
"CUSTOM REVENUE": "ДОХОДЫ"
},
"columns": {
"Brand": {
"Brand": "Бренд",
"Brand ID": "Бренд Id"
},
"Category": {
"Category": "Категория",
"Category ID": "Id Категории"
},
"Widgets": {
"Revenue": "Чистый доход",
},
"Commerce": {
"Age Range": "Возрастные диапазоны",
"Brand ID": "Id Бренда",
"Category ID": "Id Категории",
"Condition": "Состояние",
"Cost": "Затраты",
"Country ID": "Id Страны",
"Date": "Дата",
"Gender": "Пол",
"Quantity": "Количество",
"Revenue": "Доходы",
"Visit ID": "Id Посетителя"
},
"Country": {
"Country ID": "Id Страны",
"Country": "Страна"
}
}
};
/**
* Global object example
* folder - aliases for folder names
* "folder": {
* "folder_name_1": "alias_1",
* "folder_name_2": "alias_2",
* }
* dashboards- aliases for dashboard names
* "dashboards- ": {
* "dashboard_name_1": "alias_1",
* "dashboard_name_2": "alias_2",
* }*
*/
var globalAliasing = {
"folders": {
"New Folder": "Folder renamed",
"my folder": "my folder renamed",
"Any name": "любое название"
},
"dashboards": {
"Sample - Ecommerce (1)": "Коммерческий Dashboard",
"Sample - Healthcare": "Sample Healthcare renamed",
"Sample - Healthcare (1)": "Healthcare renamed",
"my dashboard": "my dashboard renamed"
},
};
System Configuration
The System Configuration settings let you define the web server’s alias, the first
day of the week, email settings, and more.
To update one or more System Configuration settings:
Click Admin in the top menu, and then Settings on the left.
Update one or more of the following settings:
Alias: Define the web server’s alias or IP address. This is especially
important when you have customized your domain name (alias), for
example, to prevent example, sharing dashboards from the incorrect
IP address. Reports will be sent from the alias entered in this field.
First Day of the Week: Select the first day of the week so all of your
Sisense users’ queries will be calculated according to the day you
define. By default, the first day of the week is Monday when querying
an ElastiCube. Sisense defines Monday as the first day according to ISO
8601. This means that when selecting filters such as Week 1, Week 2,
etc., the first day of the week is not that defined by first day of that
year, but rather the first Monday of the year. Each week starts on a
Monday and ends on a Sunday for 52-53 full weeks in a year.
Note: Changing the first day of week after using a dashboard or widget
filter/drill with Weeks filter in use might lead to bad results. To
resolve the issue, the Weeks filter should be removed and added again.
First Month of Fiscal Calendar: Select the first month of your
company’s fiscal calendar. By default, the first month of the fiscal
calendar is January.
Note: Changing the first month of the fiscal calendar after using a
dashboard or widget filter/drill with the related date fields is in use
might lead to bad results. To resolve the issue the date filter should be
removed and added again.
Default Language: Select the language to be displayed in Sisense. If you
have defined a custom translation, the name of the language as defined
in the settings.json is displayed in this list. Select it to display your
custom translation. For more information about custom translations,
click here.
Send Emails: You can disable sending emails. This will disable emails
sent when sharing dashboards as well as any scheduled email reports.
Pulse: Toggle to remove the Pulse page from the top menu bar and the
Pulse Notification Feed. This option hides the Pulse page from all
users in your system and stops sending Pulse notifications.
Dashboard Administration: Toggle to enable/disable the dashboard
administration feature. Turn this feature off if you do not want
Administrators to have access to all of the dashboards of every user in
the system in the Analytics page. For more information, see Managing
Your Users Dashboards.
Widget Narrative: Toggle to allow your Designers to add narratives to
widgets. For more information about this feature, see Sisense
Narratives.
Field Suggestions: You can toggle on field suggestions. Field
suggestions are displayed to Dashboard Designers to help them add
the relevant fields to widgets quickly and easily. For more information,
see Field Suggestions.
Exploration Paths: Toggle to enable Viewers to receive exploration
widgets in the dashboard, see Leverage AI to Uncover Hidden Insights.
End-User Scheduling: Toggle to allow the dashboard owners to enable
dashboard recipients to manage their own subscription setting, see
Sharing and Distributing Dashboards.
Session Management: You can choose which method to use for
handling the expiration of your users' sessions: Cookie or Session
Inactivity. For more information, see Managing User Sessions.
Embedded Domain White List: You can define which domains can
embed your dashboards into iFrames on their site. This is useful for
controlling where your dashboards can be embedded. In the Add
Domain field, enter each domain where your dashboards can be
embedded and click Add. If you do not add any domains, then your
dashboards can be embedded into any site. After adding a domain,
your dashboards can be embedded only in those domains.
Number of failed login attempts before lockout: Enter the number
of times a user can fail to log in before they are locked out of Sisense.
Lockout duration (minutes): Enter the number of minutes that a user
is locked out of Sisense.
Click Save to update your system settings.
License Utilization
Sisense provides your licensing information in the Admin page of the Sisense
Web Application.
In the License Utilization section, you can see when your license expires, how
many user licenses are in use for your account, and additional features that are
supported in your account.
The License Utilization section includes the following information:
Details Description
License The date when your Sisense license expires in the format of
Expiration Date Month/Day/Year.
Trial License Indicates if your license is for a trial or full version of Sisense.
True indicates that you are using a trial license.
Big Data Indicates if your account supports big data. Big data as defined
by Sisense is typically considered to be data sets above ~1 billion
Details Description
rows.
To access the License Utilization section:
Note: This section is accessible to System Administrators only.
In the Sisense Web Application, click Admin and select License Utilization in
the left menu.
Configuration Manager
This topic provides an overview of the Sisense Configuration Manager, which you
can use to configure and administer a variety of functionality and services in
Sisense.
For example, you can use the Configuration Manager to perform the following
tasks:
Configure SSL in your Sisense environment
Configure your application database for high availability
Define where log files are stored and how detailed your logs are
The Configuration Manager can be accessed from your browser at
http://localhost:3030.
Below you can find descriptions of the fields that appear in the Configuration
Manager and how they relate to tasks you can perform in Sisense. When relevant,
links are provided to topics that provide a more in depth explanation of the field
and the tasks you typically use the field for.
Web Server
The following fields are used to configure SSL for your Sisense environment. You
should enable SSL if you have configured your web environment with SSL
security (HTTPS) and certificates. This will enable HTTPS in the URLs of shared
dashboards. For a complete explanation of these fields and their purpose, see
Setting up SSL.
Enable SSL: Toggle to enable/disable SSL.
Upload Certificate: Select the type of SSL certificate you are using.
SSL Certificate: Enter your SSL certificate.
SSL Key: Enter your SSL key.
Port: The port to be used when connecting to Sisense. The default value is 8081.
For traffic over a secure connection, typically, this port is 443.
After setting a new port, restart the following services in Windows Services:
Sisense.Identity
Sisense.Galaxy
Sisense.ECMServer
Sisense.Gateway
Proxy URL: This field is used for implementing Base URLs. See Configuring Base
URLs for more information.
Domain Binding: This field is used to allow external domains to access Sisense,
for example, if you have implemented iFrames. You can add multiple domains
separated by a comma and click Save to save your changes.
Build Node Server: When implementing a multi-node configuration, for
example for high availability, you must define which node is your build node in
the Configuration Manager. The address of the build node should be the server IP
address and not the server name.
Application Database
The following fields are used to communicate with your Sisense application
database. Typically, this is only necessary when implementing a high availability
environment. For more information, see High Availability.
Connection String: The connection string contains all the necessary attributes
for accessing the Sisense application database.
Encryption Key: The value of this field is the encryption key used by Sisense to
encrypt your application database users. This value is used when you need to
create users for your application database. See Hosting the Application Database
for more information
Logs
Sisense stores logs locally on your Sisense server. These logs are typically used
by Sisense Support when troubleshooting any issues with your Sisense
environment. You can define the location of these logs and the level of logging.
Path: The current path when Sisense stores logs. You can enter a new path for
your logs on your Sisense server.
Level: Select the level of logging.
General
The following fields are used to communicate with your Sisense Configuration
database and the Sisense Message Broker. Typically, this is only necessary when
implementing a high availability environment. For more information, see High
Availability.
ZooKeeper Connection String: The connection string to the configuration
database. Click Test to verify the connection. See Replicating Zookeeper for more
information.
RabbitMQ Connection String: The connection string to the Sisense message
broker. Click Test to verify the connection. See Replicating the Message Broker
for more information.
Manual Discovery Connections: This is used internally by Sisense Support and
does not need to be configured.
Sisense Migration
Many times, you may want to set up Sisense or upgrade Sisense in a development
environment before migrating it to your production environment. In a
development environment, you can test and verify your dashboard behavior and
data accuracy before publishing dashboards to a production environment.
The migration process for Sisense involves migrating your ElastiCubes,
dashboards, and Sisense system configuration.
Additionally, if you are using plugins, you will need to replace the Plugins folder
with your current plugins located at C:\Program
Files\Sisense\app\plugins.
Backing up your installation is recommended before a migration process, but
also on a regular basis for securing your data and Sisense configurations.
Note: The original server and the target servers to which Sisense is being
migrated must be running the same version of Sisense.
For a complete walk-through of the migration process, see the video below:
Next Steps
Migrating ElastiCubes
Migrating Dashboards
Migrating Sisense System Configurations
Migrating ElastiCubes
There are two ways to migrate your data to a new server, by exporting and
importing .ecube files or exporting and importing .ecdata files.
An .ecube file includes the model metadata: model schema and data connection
settings.
An .ecdata file includes both the model metadata and the data itself.
Both .ecdata and .ecube files can be used to make backups and transfer data
between ElastiCube Servers, depending on whether you want to move the
metadata only, or the metadata and data.. After building your ElastiCube from an
.ecube file, your ElastiCube with the metadata and the raw data combined is
stored in an .ecdata file.
You can migrate ElastiCubes with .ecube files or .ecdata files. As .ecdata files can
be quite large depending on how much data you imported, it may be easier to
migrate your .ecube files. The steps below describe how to migrate your Sisense
ElastiCubes via .ecube files. If you prefer to migrate the .ecdata files, see
Migrating .ecdata Files for more information.
Exporting .ecube Files
You can export .ecube files from the Sisense Desktop Manager. Once these files
have been exported, you can back them up with your source control and import
them into your target environment.
To export .ecube files:
In the Sisense Desktop Manager in the source environment, open the
ElastiCube you want to migrate.
Select File > Save ElastiCube As… and download the .ecube file to your
machine.
After selecting the relevant .ecube file, the schema is displayed, you can
build the ElastiCube or if you are importing it in a new environment, see
Deploying ElastiCubes.
Deploying ElastiCubes
As .ecube files only contain the metadata for your ElastiCube in your source
environment, you need to build the ElastiCube in the target environment to bring
in the data. If your target environment has different data sources from your
source environment, for example, the source environment uses development
databases whereas the production environment uses production databases, then
the .ecube files need to be updated with the new data sources.
There are two ways to edit the ElastiCube with the new data sources:
Sisense PSM Shell to automate the process
Manually open the .ecube file and edit it
Both methods are outlined below.
Automating ElastiCube Deployment
Using the Sisense Shell, or Sisense PSM, it is easy to edit the database connection
attributes. This set of APIs allows you to edit Elasticube parameters via a
command line interface. The most commonly used command in a dev-to-prod
scenario redirects .ecube build queries to a production database. Below is an
example where “myecube.ecube” is redirected from a development database
called “tracking” to a production database called “trackingX”.
psm ecube edit connection database
ecube="c:\users\myuser\documents\mycube.ecube"
server="10.0.0.1" database="tracking"
newserver="localhost" newdatabase="trackingX"
newusername="mynewuser" newpassword="newpassword"
The server and database parameters contain the details of the previous database
and the newserver and newdatabase parameters should contain the location and
name of your updated data source on the production server.
The build can also be initiated on the production server through the Sisense
interface or through the PSM. The following example code builds the Elasticube
on the production server with the PSM:
Full Build, Local Server: psm ecube build name="<elasticube name>"
mode=restart serverAddress=localhost
Accumulative Build, Remote Server: psm ecube build name="<elasticube
name>" mode=full serverAddress=192.168.1.134
Manually Deploying Elasticubes
Choose your Database server location, then click Connect to Server. Make
sure the correct database is selected under Select Database and then
select OK and Close.
Next Steps
Migrating Dashboards
Migrating Dashboards in
Sisense
There are several ways to migrate dashboards to other Sisense environments:
Migrating Dashboards in Sisense (Recommended - described below)
Migrating Dashboards via REST API
Exporting and importing .dash files
The easiest way is to migrate the dashboards through Sisense as described
below, however, if you want to implement version control for your dashboards,
you may prefer to export .dash files that represent your dashboards in Sisense.
Administrators and Designers with access to a remote Sisense server can copy
dashboards from one Sisense server to another from the Sisense Web
Application. When you copy a dashboard or a folder to a remote server, all the
dashboards, including those in the selected folders are duplicated into the main
Navigation Pane in the target server. Folders are not duplicated on the target
server.
Before copying a dashboard to a target server, the Administrator of the target
server must provide access to target server. The procedure below explains how
to provide access to another server and then how to copy a dashboard from the
source server to the target server through the Sisense Web Application.
Note: When migrating a dashboard to another server, you must be logged in to
your local server with the IP address as the URL. You cannot copy dashboards
from localhost.
To copy your dashboard to another Sisense server:
On the target server, the Administrator needs to provide access for the source
server to the target server. On the target Sisense server, select Admin >
Trusted Server List.
The Trusted Server List page is displayed.
In the Trusted Server List page, click Add Server. The Create a New Server
Access dialog box is displayed.
OR
To copy multiple dashboards, in the Dashboards list, click the Select
Dashboards button to display checkboxes next to the dashboard and
folders, which allows you to select multiple dashboard to be exported. Then,
select the relevant dashboards and folders to be exported and click . The
Copy Dashboards to Server dialog box is displayed.
In the Copy Dashboards to Server dialog box, enter the following information:
Server: The URL or Hostname of the remote server. Sisense supports SSL
connections so dashboards can be transferred securely when SSL is
activated.
Republish dashboards after copying: Select to automatically republish
the dashboard on the target server after the selected dashboards are
copied. Republishing a dashboard refreshes the dashboard definitions
(widget types, titles, scripts etc.) for each of the users who share the
dashboard.
Click OK.
If the dashboards already exist on the recipient server, Sisense prompts you
to select how you want to handle each dashboard that already exists. You
can select one of the following options for each dashboard:
Skip: No changes are made to the dashboard on the recipient server.
Overwrite: The new dashboard writes the existing dashboard on the
recipient server.
Duplicate: A new dashboard is created on the recipient server with a
number added to the end of the dashboard’s title, for example, “Sample
Dashboard (1)”.
After you have defined how the dashboards are to be handled, the
selected dashboards are copied to the remote server and displayed in
the Dashboard’s list.
Once the copy is completed, you may need to update the data source for your
dashboard or set data security rules for your ElastiCube (see the links below for
detailed documentation):
Change the Data Source to the Production ElastiCube
Set Security on the Production ElastiCube
Share or Republish the dashboard to users
Next Steps
Migrating the Sisense Configuration
Migrating Sisense System
Configurations
To migrate your Sisense Web Application configuration, you must copy several
directories from the current environment and migrate them to the new
environment.
In addition, your Sisense application database has an identifier associated with it
when you install Sisense. This identifier must be deleted when migrating Sisense
as each database should have its own unique identifier. A new identifier will be
generated in the environment the next time Sisense is opened. You can access the
database through RoboMongo and remove the identifier as described below.
To migrate the Sisense Web Application:
Back up the old environment, open your machine’s Control Panel, and go to
System and Security > Administrative Tools > Services, and stop the
SisenseRepository service (this will make the website inaccessible).
Rebranding Sisense enables you to white label the Sisense Web Application
Sisense to display your company's logos and colors and mask the URL to
display your company's domain.
For documentation regarding how you can customize and
rebrand your Sisense solution, see the following topics:
White Labeling Sisense
Rebranding Sisense Automated Emails
Displaying Custom URLs
Embedding Sisense also allows you to embed widgets and dashboards
Sisense directly into your site or application through the use of iFrames
Task Description
Advantages: Low hardware costs, high resource utilization, simple asset change
management
Disadvantages: Tenant resource usage may affect other tenants
Typically Best for: Tenants with identical data models and dashboard
requirements
The first type of architecture for OEM deployments utilizes shared Sisense
servers for multiple tenants, and shared ElastiCubes and dashboards.
Segregation between tenants is achieved by using row-based data security within
ElastiCubes. All of the customers’ data resides in a shared ElastiCube, but each of
the tenants gets access only to their own data.
This methodology makes it easy to maintain system assets, and handle changes
that occur during the lifecycle of the asset. Modifying the ElastiCube schema is
done only once in the shared ElastiCube for all users. Changing the shared
dashboards is also done once for all users.
This methodology is well suited for customers providing a service based on
identical data sources and reports. For example, a customer analyzing shopping
statistics for tenants on a shared shopping portal will take data for all of the
customers from the shopping portal analytics data using each tenant’s
credentials. But all of the data has the same exact structure, so the generated
dashboards are common analytics of this data.
This methodology provides good utilization of the server resources, and ensures
that asset maintenance remains easy.
Note that as the server is shared by multiple tenants, they are also sharing
resources. High resource usage by one of the tenants, for example, generating
multiple reports or heavy builds that require a lot of CPU, may affect other
tenants.
Option 2: Dedicated Cube per Tenant
Advantages: Low hardware costs for small number of tenants, high resource
utilization
Disadvantages: High hardware costs for large number of tenants, more
complicated asset change management, tenant resource usage may affect other
tenants
Typically Best for: Tenants who require customized data models
The second architecture for OEM deployments utilizes shared Sisense servers for
multiple tenants, together with providing a dedicated ElastiCube and
dashboards for each tenant. In this deployment, multiple tenants use the same
server. Typically, the OEM has default ElastiCubes and dashboards, and creates a
dedicated copy of them for each of the tenants. The ElastiCubes and dashboards
can be identical copies for each of the tenants, or customized per tenant. The
OEM uses access control for ElastiCubes and dashboards to ensure each of the
tenants only has access to their own data. Typically a user group is created for
each of the tenants. All of the tenants users are assigned to the same group. The
relevant ElastiCubes and Dashboards are shared with the tenants group. In this
way, the asset access control layer ensures that users of each tenant only gets
access to their own data.
This methodology is well suited for customers whose data sources are not
identical. It allows for customizing the data import process so that the data
preparation and ETL processes can handle the specific customers data structure,
and transform it to the desired target structure. This methodology is also well
suited for tenants who have different reporting needs. While the tenant is
initially provisioned with default ElastiCubes and default dashboards,
customizations can be made per tenant, without affecting other tenants. It is
easier to accommodate the specific needs and requirements of each tenant.
In this use case, the OEM needs to manage multiple copies of ElastiCubes and
dashboards. Making a change to an ElastiCube schema or to dashboards needs to
be replicated across all of the tenants. When there are many tenants, the cost of
making changes to assets is high.
This methodology provides better utilization of the server, and can reduce the
cost of ownership as multiple tenants are sharing the same server. But as with
the previous option, shared servers means that multiple tenants are also sharing
the server resources. The behavior of one tenant may affect other tenants using
the server.
With this solution, you need to consider how the system scales to support your
future needs, to support additional tenants. There are limitations to the number
of ElastiCubes that can be deployed on a single machine. While initially, you
enjoy shared server resources, as you add more tenants, you may have to
provision additional servers, increasing the hardware costs of this solution.
Option 3: Dedicated Sisense Server per Tenant
Sisense supports a range of flexible architectures for OEM deployment. The type
of architecture suitable for a specific customer depends on the use-case, the
needs of the customer, the resources that can be dedicated to the deployment
(both allocated people, and allocated hardware), and preferences.
Embedding Dashboards and
Widgets
This article is about getting started with embedded Sisense dashboards. If you’re
new to Sisense, check out our embedded analytics solutions.
You can embed Sisense dashboards and widgets in non-Sisense environments,
such as in your own websites or applications by concatenating parameters to the
URL of your dashboard or widget.
In addition, you can customize what aspects of the dashboard and widget are
displayed in your environment.
For example, if you want to remove the Sisense header from the dashboard, you
can concatenate the “?embed=true&h=false” parameter in the URL of the
dashboard to hide the header.
mysite.com/app/main#/dashboards/5541dc7a80a4e2181e00011
a?embed=true&h=false
In this example, the “embed=true” embeds the dashboard into your environment.
When you embed a dashboard or widget, viewers can only view the dashboard or
widget and do not have any editing privileges. The “h=false” parameter hides the
Sisense header allowing you to whitelabel the dashboard.
This article provides a full list of the parameters you can concatenate, their
functionality, and examples.
Embedding Dashboards
To embed a dashboard, add “?embed=true” to the URL of the dashboard, and
refresh the page. If your dashboard is within a folder, then first delete “?folder=”
and everything that follows, before adding “?embed=true”.
This will open the dashboard without the surrounding Sisense environment.
For example:
Dashboard URL:
mysite.com/app/main#/dashboards/5541dc7a80a4e2181e00011a
Embedded URL:
mysite.com/app/main#/dashboards/5541dc7a80a4e2181e00011a?embed=tru
e
Dashboard URL for dashboard within folder:
mysite.com/app/main#/dashboards/550952417404b2981a000029?folder=550
955a27404b2981a00003b
Embedded URL for dashboard within folder:
http://localhost:8081/app/main#/dashboards/550952417404b2981a000029?
embed=true
You can use this URL to embed the dashboard in an iframe, for example:
<iframe id="ifm" name="ifm" width="100%" height="100%"
frameborder="0"
src="http://mysite.com/app/main#/dashboards/536f2b70d093e
26c280000d5?embed=true" scrolling="auto"></iframe>
Dashboard Embedding Configuration Options
You can control which aspects of the Sisense environment are available when
embedding by concatenating the following parameters to the embedded URL:
Show/Hide the left Navigation Panel
Parameter: "l" (left) or "i" to hide it completely
Default: false
Example: ?embed=true&l=true
Show/Hide the right filter panel
Parameter: “r” (right)
Default: true
Example: ?embed=true&r=false
Show/Hide the toolbar
Parameter: “t” (toolbar)
Default: false
Example: ?embed=true&t=true
Show/Hide the environment header
Parameter: “h” (header)
Default: false
Example: ?embed=true&h=true
Embedding Widgets
To embed a single widget, add “?embed=true” to the URL of the widget when it
edit mode.
This will open the widget without the surrounding Sisense environment.
For example:
Dashboard URL:
http://mysite.com/app/main#/dashboards/536f3a54d093e26c28000114/widg
ets/536f3a54d093e26c2800011b
Embedded URL:
http://mysite.com/app/main#/dashboards/536f3a54d093e26c28000114/widg
ets/536f3a54d093e26c2800011b?embed=true
You can use this URL to embed the widget in and iframe, for example:
<iframe id="ifm" name="ifm" width="100%" height="100%" frameborder="0"
src="http://mysite.com/app/main#/dashboards/536f3a54d093e26c28000114
/widgets/536f3a54d093e26c2800011b?embed=true"
scrolling="auto"></iframe>
Widget Embedding Configuration Options
You can control which aspects of the Sisense environment are available when
embedding by concatenating the following parameters to the embedded URL:
Show/Hide the left data panel
Parameter: “l” (left)
Default: false
Example: ?embed=true&l=true
Show/Hide the right design panel
Parameter: “r” (right)
Default: false
Example: ?embed=true&r=false
Show/Hide the toolbar
Parameter: “t” (toolbar)
Default: false
Example: ?embed=true&t=true
Show/Hide the environment header
Parameter: “h” (header)
Default: false
Example: ?embed=true&h=true
Authentication in Embedded Dashboards and Widgets
All templates contain the style.less file that refers to a stylesheet that defines the
branding used in Sisense’s automated emails. The content of every style.less is as
follows:
@import '../styles.less';
The stylesheet referred to by all the email templates is called styles.less located
at:
In Windows:
...\Program Files\Sisense\app\galaxy-
service\src\features\emails\templates
In Linux:
/opt/sisense/storage/emails
By replacing the content of the styles.less file with your own CSS, you can
redefine the branding used in all of the email templates to your custom branding.
EJS Files
Each template folder contains an EJS file, which contains HTML and JavaScript
that describe the content of the email.
You can use any text/HTML editor to modify the HTML.ejs files according to your
needs.
The following is an example of an HTML.ejs file.
<tr>
<td>
<div class="contentText">
<p class="userText" style="margin: 0;"><%=
i18nContent.hi %> <%= newOwnerUserName %>,</p>
<p class="generalInfo" style="margin: 0;"><%-
i18nContent.generalInfo %></p>
</div>
</td>
</tr>
When you replace the HTML.ejs file with your own files, you can still use the
Sisense tokens. For more information about tokens you can add to your
automated emails, see Applying Sisense Tokens.
In addition, each template contains an object such as i18nContent.hi that displays
strings predefined by Sisense. These strings cannot be modified, however, you
can remove and replace the object with your own content.
The final section, Section 3 contains the footer. Like the header, the footer, <%
include ../footer %>, is a reference to a footer.ejs file located at:
In Windows:
...\Program Files\Sisense\app\galaxy-
service\src\features\emails\templates
In Linux:
/opt/sisense/storage/emails
The footer.ejs file defines the copyright text and image used in the footer section
of each email template. You can modify the footer by replacing the footer.ejs file
with or replace the <% include ../footer %> tag from each template with your
own HTML and JavaScript.
Images that are displayed in the Header and Footer are stored in the following
location:
In Windows:
...\Program Files\Sisense\app\galaxy-
service\src\features\emails\templates\images
In Linux:
/opt/sisense/storage/emails/images
You can replace these with your own images by maintaining the same file names
used, however, it is recommended to replace the content of the Header and
Footer sections altogether with your own content.
Replacing Sisense Automated Emails
If you prefer to implement your own email templates for Sisense’s predefined
scenarios, you can replace Sisense’s emails with your own through the Sisense
REST API.
Note: Rebranding Sisense emails must be enabled for your license. Contact your
Account Manager for more information.
For each automated email, Sisense provides an email template in the format of
EJS and LESS files. These files are located within template folders inside the
Template Parent folder located at:
In Windows:
...\Program Files\Sisense\app\galaxy-
service\src\features\emails\templates
In Linux:
/opt/sisense/storage/emails
Some template folders may contain an html-org.ejs file. These files are legacy
templates and are maintained for backwards compatibility. Newer developments
should only modify or replace the html.ejs files.
Note: While it is possible to modify the content of your automated emails
through the language.js file located in the templates folder, the recommended
method is modify the email templates as described in the procedure below.
After you have prepared your new automated emails, through the /branding
endpoint of the REST API, you can configure Sisense to send the customized
automated emails when the relevant event is triggered.
To define the location of your branded emails:
Copy the contents of the directory:
In Windows:
...\Program Files\Sisense\app\galaxy-
service\src\features\emails\templates
In Linux:
/opt/sisense/storage/emailsOR
Upload all the folders to your Sisense Server through the File Manager. See
Uploading Files through the File Manager for more information.
Paste all the folders in the following directory:
...\Program Files\Sisense\app\galaxy-
service\src\features\emails\
In Linux:
/opt/sisense/storage/emails
OR
Upload all the folders to your Sisense Server through the File Manager. See
Uploading Files through the File Manager for more information.
Note: You will modify the templates in this folder and configure Sisense to
send them instead of the original Sisense automated emails.
For each template you want to modify, change the contents of html.ejs files
and styles.less as described in Sisense Automated Emails.
Access the Sisense REST API.
In version .9 of the REST API, select the POST /branding.
server at
.../resources/branding/emails
passwordRecoverySubject The subject line of the password
recovery email.
Small
Desktop: 120x48
Tablet: 92×24
Phone: 92×24
Large
Desktop: 204×60
Tablet: 163×74
Phone: 198×168
Important Notes:
Images must be in URI format (web
address)
No spaces are allowed in the
address of the images
Transparent .png format is
preferred
"logo":{
"desktop":{
"small":"/resources/<YourBrand>/logoD
esktopSmall.png",
"large":"/resources/<YourBrand>/logoDe
sktopLarge.png"
},
"phone":{
“small”:”/resources/<YourBrand>/logoP
honeSmall.png”,
“large”:”/resources/<YourBrand>/logoPh
oneLarge.png”
},
“tablet”:{
“small”:”/resources/<YourBrand>/logoTa
bletSmall.png”,
“large”:”/resources/<YourBrand>/logoTa
bletLarge.png”
}
},
Page Title and Favicon The page title that appears in the browser
tab/page and the Sisense favicon.
Note:
Image must be in URI format (web
address)
.ico format is preferred
You can modify these images by updating
the values of the following JAQL
parameters in the REST API:
"favicon" :
"/resources/<YourBrand>/fav.ico"
"pageTitle": "Sisense",
Contact The full name of the person responsible for managing the None.
Person rebranding of Sisense Mobile. Mandato
ry
Display The application name that is displayed below the icon on None.
Name the phone home screen. Mandator
y
Android Google Play identifier. The ID must match the criteria None.
package ID described here. This ID must be unique. You can verify Mandator
whether or not the ID is taken by opening this URL y
Informati Description Default
on Value
https://play.google.com/store/apps/details?id=com.myco
mpany.myapp
replacing com.mycompany.myapp with your preferred
app ID.
iOS Bundle App Store identifier. This ID must be unique. For iOS, you None.
ID need to sign in to your account at Mandator
https://developer.apple.com and click Certificates, IDs & y
Profiles > App IDs > Registering an App ID (+ sign) > select
Explicit App ID.
Android Google certificate in the form of a JKS file. See Publishing None.
Signing Your App for more information. Mandato
Certificate ry
Apple Apple certificate in the form of a p12 file. See Publishing None.
Signing Your App for more information. Mandato
Certificate ry
Server IP If this option is provided, the rebranded mobile app will None.
Address/ be bound to this specific IP address. This means that users Optional
hostname of your app will be able to skip the screen for providing
the server IP address/hostname.
Keep in mind that if you do provide this address, your app
can be used only for this IP address. If you intend to use
the mobile app for different Sisense servers, or you are not
sure your IP address/hostname will remain your
permanent identifer, you should not provide it.
Informati Description Default
on Value
Primary Background color of the top navigation bar, the splash #FFCB05
backgroun screen and the buttons. (Sisense
d color yellow)
Primary The color of the text that is positioned on top of the #000
text components with primaryBGColor background. (black)
(foregroun
d) color
Title The color of separators and pipes that are displayed #FFCB05
border around titleHighlightColor components. (Sisense
color yellow)
Icon Resource Files
The following icon resources are used by the mobile app for push notifications
and for the store listing in iOS. All sizes are mandatory. Please use the exact file
names specified below.
Splash screen images are displayed on the full screen until the app is loaded
when the app is cold-launched. All sizes are mandatory.
Platform Size (Width x Height) File Name
2 Matthew TV $300
Each Data Security Rule applies to a specific field in a data model and to specific
user(s)/user group(s). It enables you to define the values that must be contained
in a specific field to enable that entire row of data to be available to a user.
If you want to exclude or hide data from certain users, you can define these rules
in the Sisense REST API. For more information, see Restricting Data Access for
Data Models.
To access Data Security:
Click Admin and select the Data Sources tab in the menu.
For the relevant data model, select and click Data Security.
If no data security rules have yet been defined for this data model, then the
following message is displayed:
Click Add Field to display a list of the fields in this data model.
Note: Row-based data security rules are may caused reduced performance
when applied to floats.
Select a field. For example, Brand. The following window is then displayed in
which you can define rules.
Note: You cannot select date type fields.
The left side of this table enables you to define which users/user groups can
access this data. Click + Add Restriction and start typing into the
Restricted User/Groups field to get a drop-down list.
Add as many users/user groups, as necessary.
The right side of this window enables you to define which values the
specified users/user groups are permitted to see.
Start typing into the Values field to get a list.
Multiple values can be selected.
The value of numeric type fields must be typed into this field, as no auto-
complete option appears for numeric type fields.
Alternatively, you can start typing in one of these values (in both text and
numeric type fields):
Everything: To specify that the selected users/user groups can see this data
no matter what the value is in this field.
Nothing: To specify that the selected users/user groups cannot see this data
no matter what the value is in this field.
For example, you can define that the following Users/User Groups must have the
following values in the Product Category column to enable them to see their data
row in a widget.
# User/User Group Product Category
1 Management Everything
In Sisense, all users who have access to your data models can see all of the data. If
you define any data security rules, the default behavior is inclusionary, which
means you define what values of a field a user is allowed to see. For example, you
can allow each Sales rep to see transactions for their own customers, and prevent
Sales reps from seeing the transactions of other customers. In this case, you
define a row-based data security rule for each Sales rep, based on the customer
IDs of each customer.
In some cases, you may want to allow all of your users to see your data except for
a specific user or group of users. In this case, exclusionary rules are preferred.
For example, let’s assume that your company has thousands of customers, and
your policy is that all Sales reps can see information for most of your customers,
not only for their own customers. You may have certain customers whose data is
sensitive and should only be accessed by certain authorized Sales reps. In this
case, it’s easier to manage a definition that allows access to everything, except
the few restricted customers, than to manage a list of the thousands of customers
whose data is freely available to all Sales reps.
To restrict certain rows of data to a specific user or group of users, through the
Sisense REST API, you can change the default data security behavior to
exclusionary, which allows you to hide or restrict access to data to certain users.
You can combine inclusionary rules with exclusionary rules. In case the rules
conflict, the exclusionary rules take precedence.
Note: When multiple data security rules exist for a specific field-user or field-
group combination, the “inclusionary” rules will be combined with “OR” logic
between them. “Exclusionary” rules will be combined with “AND” logic between
them.
To change the data security behavior for a rule:
In Sisense, click Admin, and then Rest API, followed by REST API Reference.
Reset IIS.
In your browser, open the System Configuration at http://localhost:3030/.
Verify that Enable SSL is enabled.
Upload or enter your SSL certificate. Sisense supports two types of
certificates, PFX and CERT files. Typically, these files are provided by a third
party provider.
When using SSL, the certificate must include the root certificate and
any intermediate certificates.
PFX: PFX files contain the public key file (SSL certificate file) and the
associated private key file in a single file. If you select PFX, drag the PFX file
into the browser or click Browse and navigate to the file. In PFX
Password, enter the password you received after your PFX was generated.
CERT-Key: A .cert file is the public key, which is used to verify client
authentication requests. It is what is received by an HTTP client from a
server in the SSL handshake. If you select CERT-KEY, two boxes are
displayed CERT File and Key File. In CERT File, drag the .cert file into the
browser or click Browse and navigate to the file. In Key File, drag the key
file into the browser or click Browse and navigate to the file. The .key file is
the private key to the certificate.
Alternatively, if the files are not provided, and you have received a coded
certificate and key, you can enter these values in the SSL Certificate and
SSL Key fields.
In Port, enter the port to be used when accessing Sisense. By default, this is
8081, however, if you are implementing SSL, typically the port is set to 443.
Click Save.
Click Yes to restart the Sisense services.
Optional Security Hardening
for Sisense Web Pages
This topic provides additional security options that can be applied for hardening
the security of Sisense web pages for your needs.
Cookie Security
By default, Sisense web pages have cookies that contain a secureFlag. This flag
instructs the browser that the cookie should only be returned to the Sisense Web
Application over encrypted connections (HTTPS).
Account Lockout Thresholds
To prevent brute-force attacks, you can configure account lockout thresholds.
For more information, see Account Lockout Thresholds.
Strict Transport Security
HTTP Strict Transport Security (HSTS) is a method for preventing any
communications from being sent over HTTP to the specified domain and allows
only communication over HTTPS. This is useful for preventing man-in-the-
middle attacks or users with invalid certificates from accessing your dashboards.
This is automatically applied when you enable SSL for the Sisense Web
Application.
Allowed Domains for Embedded Dashboards
If you are embedding a dashboard on your website, you can control who can
access the website by adding allowed domains to a whitelist.
Allowed Domains enable you to limit where your embedded dashboards can be
viewed, even if someone takes the embed code from your page.
When you add a domain to the whitelist, Sisense includes the domain in the X-
Frame Options header of the dashboard web page.
For example:
<add name=”X-Frame-Options” value=”ALLOW-FROM
https://dashboardurl.com” />
The header is not included by default. You can enable it from the
Configuration Manager located at http://localhost:3030.
Click Add.
Click Save at the bottom of the page.
Multi-Node Deployments
Overview
Sisense provides flexible design choices for supporting high availability (HA) and
scalability for your Sisense deployments. Typically, you want to implement
multi-node deployments when you want to optimize performance or build in
redundancy. Before implementing a multi-node environment, you can ask
yourself the following questions:
Do you want to improve dashboard load time?
Are your ElastiCubes taking a long build time to build?
Do you need to support a lot of concurrent users?
Do you have a lot of ElastiCubes?
Do you need high availability for your system?
If you answered yes to any of these questions, you may want to consider scaling
out Sisense.
The basic Sisense architecture looks like the diagram below where Sisense is
installed on a single machine. Your users connect to your machine and you
import or connect to your data sources from the same machine. This machine
supports the Sisense web application, your data models, and all of your users.
One way to scale out Sisense is to improve your hardware with more storage,
CPU, and memory; however, this can get quite expensive and doesn’t provide any
redundancy.
Another way to scale out Sisense is to add more machines, thus improving
performance and building in redundancy into the system as shown in the
diagram below.
While Sisense is fully-functional in a single node environment, a multi-node
deployment is necessary for scalability to support large amounts of concurrent
users and redundancy in case of a failure of one of the Sisense components.
Replicating each of these components provides redundancy and fault tolerance
against the failure of any single component. The replicated components are
combined into nodes. There are three types of nodes, a build node, query nodes,
and an application node. These nodes and their components are described below.
Nodes
Build Node
The build node is responsible for building ElastiCubes and distributing the build
to query nodes via the Sisense Orchestrator Service. The Sisense Orchestrator
Service is an automated service that you configure on the build node to
synchronize and distribute built ElastiCubes to the query nodes. For more
information, see Distributing ElastiCube Builds to Query Nodes.
Build nodes include an ElastiCube Server, application database, Sisense plugins,
and the Sisense Orchestrator Service.
The build node is not replicated as its failure only prevents building new
ElastiCubes, not issuing queries from Sisense.
Note: Sisense plugins must be located on the build node.
Query Nodes
Query nodes are responsible for supporting queries from Sisense dashboards on
the application layer. ElastiCube models are distributed by the build node to the
query nodes. The query nodes’ ElastiCube models are then combined into
ElastiCube Sets to increase redundancy by separating the web and ElastiCube
servers across multiple query nodes. If a build node is distributing a build to one
ElastiCube server, Sisense automatically directs any queries to the other
ElastiCubes in the ElastiCube Set.
The query node can be configured as a single application stack where each node
hosts Sisense, ElastiCubes, and an application database. In this configuration, if
the machine hosting the components fails, the whole query node will fail. Queries
will then be redirected to the next available query node. Another option is to host
each component of the query node separately in a distributed application stack.
In this configuration, if a component of the query node fails, the rest of the query
node is not affected. For an example of a single application stack, see Scenario 1
and for an example of a distributed application stack, see Scenario 2.
Application Nodes
The application node supports your Sisense application. This is the interface you
see when you log into Sisense, including the Model Editor, dashboards, etc. In
some models, this resides on the same node as the query node.
Components
Sisense has many components that reside on each of the nodes. These
components are highlighted in the diagram below. Some of these components are
responsible for supporting Sisense, such as the application database,
configuration database, and message broker. Other components, such as a load
balancer, Multi-Node Deployment Wwizard, and ElastiCube Sets are responsible
for supporting high availability in Sisense. Each of these components is described
in more detail below.
Application Database
The application database is installed with Sisense and supports Sisense. The
application database is a central repository for Sisense metadata including user
information, permissions, data sources, dashboards. jobs, etc.
If the application database fails, the Sisense web application will fail.
To achieve redundancy and high availability of the application database, a
minimum of three nodes is required.
Message Broker
The message broker is a component of Sisense and is responsible for the
communication of events between various Sisense services across your Sisense
configuration. Sisense availability and functionality are heavily dependent on the
broker service. It should be replicated with at least two nodes to ensure that the
services can continue to communicate with each other in case the message
broker fails.
Configuration Database
The configuration database provides a single representation for the cluster
regarding the topology, configurations, and state.
To achieve redundancy and high availability, the configuration service should be
replicated with at least three nodes to ensure that your configuration is up-to-
date across your entire deployment.
Load Balancer
To support a multi-node configuration, you must handle load balancing on your
side prior to directing traffic to one of your Sisense nodes. Load balancing
spreads requests across multiple query nodes according to an algorithm you
define and the current status of the query node.
When implementing ElastiCube Sets, Sisense’s query nodes operate in active-
active mode. This means that each of the query nodes is active and can handle
requests when the node is not building and its components are available. For
example, traffic could be spread 50-50 across two web servers and if a
component fails, a load balancer should redirect traffic to the other available web
server.
ElastiCube Sets
SisenseElastiCube Sets are collections of identical ElastiCube models that allow
you to query running ElastiCubes within the ElastiCube Set while other
ElastiCubes are building.
Components that Cannot be Replicated
Several Sisense components are deployed as single services that can not be
replicated and do not have redundancy:
ElastiCube web management
Plug-ins
Scheduled reporting jobs
Sisense Orchestrator
Build nodes
Multi-Node Configuration
To support more concurrent users and queries, and build in redundancy into
your deployment, you must provide additional machines and configure the
orchestration between the various Sisense nodes and their services. Sisense
makes it easy to implement a multi-node deploment with the Multi-Node
Deployment Wizard. This wizard automates the configuration of your nodes.
If you want to implement high availability, after you have run the wizard, you
configure the Sisense Orchestrator service that manages the distribution of
ElastiCubes across multiple machines.
The following pages describes the multi-node deployments Sisense supports,
how to configure them in the Multi-Node Deployment wizard, and how to
configure the distribution of ElastiCubes with the Sisense Orchestrator.
Next Steps
Supported Deployments
Setting Up Multi-Node Deployments
Distributing ElastiCubes to Query Nodes
Setting Up ElastiCube Sets
Securing the Message Broker's Communication
Supported Deployments
Previous Steps
Overview
Sisense supports four different multi-node deployment models:
Model 1: 1 Application Node, 1 Query Node/Build Node
Model 2: 1 Application Node, 1 Query Node, 1 Build Node
Model 3: 2 Application Nodes/Query Nodes, and 1 Build Node
Model 4: 2 Application Nodes, 2 Query Nodes, and 1 Build Node
Which model should you choose is determined by these three parameters:
Redundancy: Which components require redundancy?
Concurrency: How many users do you need to support?
Resources: How many servers can you add and maintain to your
configuration?
The differences between each model are the amount of redundancy they
provides, how much scale they support, and how many resources you need to
implement them.
Model 1 Model 2 Model 3 Model 4
Enhanced Security ✓ ✓ ✓
High availability & Redundancy ✓ ✓
Scale Performance ✓ ✓ ✓ ✓
Dedicated Hardware ✓ ✓
In Model 1, Sisense is vertically scaled out, which means that the application
node is separated from the query and build node. This deployment provides the
following benefits:
Enhanced Security: When the application node and query/build nodes are
separated, Viewers who interact with just the application node, are less
vulnerable
Scale Performance: Vertical scaling enables more users to query data while
the build node can continue to build ElastiCube models
Dedicated Servers per Task: Support greater concurrency by dedicating
one machine to supporting Sisense, while another machine supports
queries and building ElastiCube models
For more information, see:
Model 1 Architecture, Services, Ports
Deploying Model 1
Model 2
In Model 2, Sisense is vertically scaled out with the application, query, and build
node separated. This deployment provides the following benefits:
Enhanced Security: When the application node, query, and build nodes are
separated, Viewers who interact with just the application node, are less
vulnerable
Scale Performance: Vertical scaling enables more users to query data while
the build node can continue to build ElastiCube models
Dedicated Servers per Task: Support greater concurrency by dedicating
one machine to supporting Sisense, while another machine supports
queries and building ElastiCube models
For more information, see:
Model 2 Architecture, Services, Ports
Deploying Model 2
Model 3
In Model 4, Sisense is horizontally scaled out with the application and query
nodes replicated. This deployment provides the following benefits:
High Availability: Multiple application and query nodes that have been
replicated mean that if a single-server fails, your Viewers will not affect
performance or lead to downtime
Scale Performance: Horizontal scaling enables more users to query data
and build models at the same time
Dedicated Servers per Task: Support greater concurrency and redundancy
by dedicating multiple machines to supporting Sisense, while other
machines support queries and building ElastiCube models
Scales as You Grow: Add additional application/query nodes as needed
For more information, see:
Model 4 Architecture, Services, Ports
Deploying Model 4
Note: If you want to implement a topology not supported by Sisense, contact
your CSM.
Next Steps
Installing the Multi-Node Deployment Wizard
Distributing ElastiCubes to Query Nodes
Setting Up ElastiCube Sets
Securing the Message Broker's Communication
Installing the Multi-Node
Deployment Wizard
Previous Steps
Supported Deployments
With a multi-node deployment, you can increase the reliability of your
configuration further by adding additional query and build nodes, and an
application node.
To simplify the process of setting up a Multi-Node environment, Sisense provide
a Multi-Node Deployment Wizard that automates most of the setup process for
you.
Note: If you are expanding a single-node deployment to a multi-node
deployment, see Expanding Single-Node Deployments to Multi-Node
Deployments.
Prerequisites
Windows 8, 10, and Windows Server 2012, 2016
Local System Admin account where the wizard is to be installed and deployed
To install the Multi-Node Deployment Wizard:
Download the Sisense High Availability Multi-Node Deployment Wizard to
your build node. When saving the file, make sure there are no spaces in the
file name. This can happen if you download the file to the same directory
multiple times, for example, MultiServerDeploymentWizard.zip(1).
Extract the contents of the zip file.
Download the Cygwin script and Sisense-install-ansible.bsh and save the files
to the directory ...MultiServerDeploymentWizard/resources/
located in the directory where you extracted the contents of the Multi-Node
Deployment Wizard zip file.
Run install-cygwin.ps1 with Powershell. This process can take between 20-30
minutes.
During the process, Cygwin is downloaded and installed. Once the
installation is complete, you are prompted to press any button to close the
script.
The Multi-Node Deployment Wizard is installed.
Next Steps
Model 1: 1 Application Node, 1 Query Node/Build Node
Model 2: 1 Application Node, 1 Query Node, 1 Build Node
Model 3: 2 Application/Query Nodes and 1 Build Node
Model 4: 2 Application Nodes, 2 Query Nodes, and 1 Build Node
Model 1: 1 Application Node,
1 Query Node/Build Node
Previous
Installing the Multi-Node Deployment Wizard
Model 1 Architecture, Services, Ports
In Model 1, your application node is on a separate server from the query/ build
node. The benefit of Model 1 over a single node is that by separating the nodes,
your data can be secured on a different node than your application node. In
addition, you can utilize your hardware to support more different tasks; one
node for queries and builds, and one node for supporting the Sisense application.
The disadvantage of Model 1 compared to other models is that high availability is
not supported and workloads for the application and query nodes cannot be
scaled. If your query/ build node fails, the Sisense application will not be usable
as the data models cannot be queried.
To learn how to implement this model in the Deployment Wizard, see Deploying
Model 1.
Limitations
Maximum of four concurrent builds on one build node
Maximum of 40 ElastiCubes per query node
Components High Availability Load Distribution
App Node No No
Components High Availability Load Distribution
Query Node No No
Build Node No No
Click Download Agent Installation to install the Sisense Agent. This agent
must be installed on all the Sisense servers that are part of your
deployment. It allows Sisense to communicate with each of the other
machines in your deployment. To install the agent, right-click on the file and
select Run with PowerShell. Click Next.
Select the version of Sisense you are using. You can view your version of the
Sisense Server by clicking in the top right corner of Sisense.
Select Model 1 and click Next.
In this model, your application, query, and build node are located on separate
servers. The benefit of Model 2 over a single node is that by separating each
node, your data can be secured on a different node than your application node. In
addition, you can utilize your hardware to support different tasks; one node for
queries, one node for builds, and one node for supporting the Sisense application.
The disadvantage of Model 1 compared to other models is that high availability is
not supported and workloads for the application and query nodes cannot be
scaled. If your query node fails, the Sisense application will not be usable as the
data models cannot be queried.
To learn how to implement this model in the Deployment Wizard, see Deploying
Model 2.
Limitations
Maximum of four concurrent builds on one build node
Maximum of 40 ElastiCubes per query node
No component replication
Components High Availability Load Distribution
App Node No No
Components High Availability Load Distribution
Query Node No No
Build Node No No
Application Database No No
Services Mapping
Sisense utilizes multiple communication ports. Some of the ports are used for
communication between Sisense modules, and others are used for
communication with remote locations.
The table below describes the ports used for communication between the
Sisense modules that need to be opened in a firewall for this architecture.
Note: "N/A" means the ports are not relevant (internal process).
Click Download Agent Installation to install the Sisense Agent. This agent
must be installed on all the Sisense servers that are part of your
deployment. It allows Sisense to communicate with each of the other
machines in your deployment. To install the agent, right-click on the file and
select Run with PowerShell. Click Next.
Select the version of Sisense you are using. You can view your version of the
Sisense Server by clicking in the top right corner of Sisense.
Select Model 2 and click Next.
In Model 3, your application node and query nodes reside on the same servers
and are separate from the build node. You can add additional query and
application nodes as needed. The benefit of this architecture over Model 4 is that
it requires fewer machines, while still providing redundancy in case one of the
nodes fails.
The disadvantage of Model 3 compared to Model 4 is that fewer concurrent users
are supported and larger queries may burden the system.
To learn how to implement this model in the Deployment Wizard, see Deploying
Model 3.
Limitations
Maximum of four concurrent builds on one build node
Maximum of 40 ElastiCubes per query node
Components High Availability Load Distribution
Build No No
Plugins No No
Jobs No No
Orchestrator No No
Services Mapping
Sisense utilizes multiple communication ports. Some of the ports are used for
communication between Sisense modules, and others are used for
communication with remote locations.
The table below describes the ports used for communication between the
Sisense modules that need to be opened in a firewall for this architecture.
Note: "N/A" means the ports are not relevant (internal process).
Servic Service Ports Build App/Q App/Q Directi
e Type uery 1 uery 2 ons
Infra Sisense.Oxygen 31112 Yes Yes Yes Inboun
d
Click Download Agent Installation to install the Sisense Agent. This agent
must be installed on all the Sisense servers that are part of your
deployment. It allows Sisense to communicate with each of the other
machines in your deployment. To install the agent, right-click on the file and
select Run with PowerShell. Click Next.
Select the version of Sisense you are using. You can view your version of the
Sisense Server by clicking in the top right corner of Sisense.
Select Model 3 and click Next.
In Model 4, your application node is on a separate server from the query and
build node. The application and query nodes are replicated for redundancy. You
can add additional query and application nodes as needed. The benefit of Model
4 over a single node is that by you can support more concurrent users, and if one
of the application or query nodes fails, the other can take on the load to ensure
availability of the Sisense application.
To learn how to implement this model in the Deployment Wizard, see Deploying
Model 4.
Limitations
Maximum of four concurrent builds on one build node
Maximum of 40 ElastiCubes per query node
Components High Availability Load Distribution
Build No No
Components High Availability Load Distribution
Plugins No No
Jobs No No
Orchestrator No No
Services Mapping
Sisense utilizes multiple communication ports. Some of the ports are used for
communication between Sisense modules, and others are used for
communication with remote locations.
The table below describes the ports used for communication between the
Sisense modules that need to be opened in a firewall for this architecture.
Note: "N/A" means the ports are not relevant (internal process).
Servi Service Ports Build Quer Quer Applic Applic Com
ce y1 y2 ation ation ment
Type 1 2 s
Infra Sisense.Oxygen 31112 Yes Yes Yes Yes Yes Inbou
nd
Click Download Agent Installation to install the Sisense Agent. This agent
must be installed on all the Sisense servers that are part of your
deployment. It allows Sisense to communicate with each of the other
machines in your deployment. To install the agent, right-click on the file and
select Run with PowerShell. Click Next.
Select the version of Sisense you are using. You can view your version of the
Sisense Server by clicking in the top right corner of Sisense.
Select Model 4 and click Next.
The Sisense Orchestrator Service is defined in a JSON file called config.json in the
Sisense.Orchestration Config folder
(C:\ProgramData\Sisense\Sisense.Orchestrator\config.json
) of your Sisense Installation folder of your build node.
To distribute your ElastiCube builds through the Sisense Orchestrator Service,
you define and save the config.json file. After saving the file, the Sisense
Orchestrator Service automatically begins to build ElastiCubes in your ElastiCube
Set. You can review the progress of the build in the
C:\ProgramData\Sisense\application-logs\orchestrator-
service folder in a log file whose file name you define in the JSON file.
The default config.json file has a basic structure with no values.
To learn more about how to configure the config.json file, see the following
tutorial:
Sisense supports a wide range of objects and values and several examples and
their descriptions are provided in the table below:
Key Example Value
Error.
"email":"[email protected]",
"name":"Example"
}
]
Sisense\\PrismServer\\ElastiCube
Data\\",
"localPath":"C:\\ProgramData\\Si
Key Example Value
sense\\PrismServer\\ElastiCubeDa
ta\\"
},
"url":"\\\\127.128.129.91\\C:\\P
rogramData\\
Sisense\\PrismServer\\ElastiCube
Data\\",
"localPath":"C:\\ProgramData\\Si
sense\\PrismServer\\ElastiCubeDa
ta\\"
},
example.
"url":"\\\\127.128.129.91\\C:\\P
rogramData\\
Sisense\\PrismServer\\ElastiCube
Data\\",
"localPath":"C:\\ProgramData\\Si
sense\\PrismServer\\ElastiCubeDa
ta\\"
},
"HA_QueryWeb1",
"HA_QueryWeb2"
],
"HA_QueryWeb2"
]
}
},
"HA_QueryWeb2"
]
}
},
"HA_QueryWeb1",
"HA_QueryWeb2"
]
}
Key Example Value
},
In this example, there is one build node and two query nodes. Each query node is
hosted on a separate machine while the components that make up the query
node are hosted on the same machine as a single application stack.
In this example, the build cube is called “Sample ECommerce”. This ElastiCube is
distributed to two ElastiCube servers defined in the cube1 and cube2 objects.
The build cube is distributed first to cube1 and then to cube2 as defined in the
tasks object. The first time the Sisense Orchestrator Service tries to build the
BuildTest1 ElastiCube, it attempts an accumulative build and if that fails, an
entire build. After each build is replicated, the previous version of the ElastiCube
is deleted as specified in the reattach object. This task takes place hourly. If the
distribution fails, Sisense sends an email to [email protected] with a debug
log attached.
{
"general":{
"logLevel":"INFO", //Determines type of log
events recorded
"emails":[
{
"email":"[email protected]", //Who
to send reports
"name":"Example1"
}
]
},
"cubes":{
"localCubeBuildTest1":{
"ecube":"Sample ECommerce" //Name of the
ecube to be distributed
},
"cube1":{
"ecube":"Sample ECommerce", //Name of the
ecube on the query node
"url":"\\\\127.128.129.91\\C:\\ProgramData\\Sisense\\Pr
ismServer\\ElastiCubeData\\Sample ECommerce",
"localPath":"C:\\ProgramData\\Sisense\\PrismServer\\Ela
stiCubeData\\Sample ECommerce"
},
"cube2":{
"ecube":"Sample ECommerce", //Name of the
ecube on the query node
"url":"\\\\127.128.129.92\\C:\\ProgramData\\Sisense\\Pr
ismServer\\ElastiCubeData\\Sample ECommerce",
"localPath":"C:\\ProgramData\\Sisense\\PrismServer\\Ela
stiCubeData\\Sample ECommerce"
}
},
"tasks":{
"task1":[
{
"build":{
"cube":[
"cube1",
"cube2"
],
"queue":[
"accumulate", //The first type of
build to be attempted
"entire" //The second type of build to
perform if the first fails
]
}
},
{
"distribute":[ //The order of how ecubes
on the build node is distributed to query nodes
"cube1",
"cube2"
]
},
{
"reattach":{
"deleteOldDbfarm":true,
"cube":[
"cube1",
"cube2"
]
}
},
{
"mail":"build" //What event triggers an
email
}
]
},
"scheduler":[
{
"task":"task1", //The name of the task
object that is to be executed
"schedule":"0 * * * *", //How often to
perform a task in Cron format
"enabled": true
}
]
}
In this example, there are three query nodes in which each component is located
in a different remote location. This scenario, while costly to implement,
demonstrates a distributed application stack configuration where each
component is replicated and located on a separate server independent of the
other components. If any component fails, the rest of the architecture remains
intact. For example, the web server is on one server, the ElastiCubes are stored
on another server, and the MongoDB is located on another server.
The build cube in this example is called “BuildTest1”. This ElastiCube is
distributed to three remote ElastiCube servers defined in the cube1, cube2, and
cube3 objects. The build cube is distributed first to cube1, then cube2, and then
cube3 as defined in the tasks object. The URLs are standard URLs for cube1 and
cube2 while the URL for cube3 is secured through SSH. When the URL is secured,
you must provide the URL and the required credentials to access it.
The first time the Sisense Orchestrator Service tries to build the BuildTest1
ElastiCube, it attempts an accumulative build and if that fails, an entire build. If
both builds fail, Sisense attempts to update the schema only. After each build is
replicated, the previous version of the ElastiCube is deleted as specified in the
reattach object. This task takes place At 14:15 on the 1st of every month. After a
build is successful, Sisense sends an email to [email protected].
{
"general":{
"logLevel":"DEBUG",
"emails":[
{
"email":"[email protected]",
"name":"Example1"
}
]
},
"cubes":{
"localCubeBuildTest1":{
"ecube":"Sample ECommerce"
},
"cube1":{
"ecube":"Sample ECommerce",
"url":"\\\\127.128.129.91\\C:\\ProgramData\\Sisense\\Pr
ismServer\\ElastiCubeData\\Sample ECommerce",
"localPath":"C:\\ProgramData\\Sisense\\PrismServer\\Ela
stiCubeData\\Sample ECommerce"
},
"cube2":{
"ecube":"Sample ECommerce",
"url":"\\\\127.128.129.92\\C:\\ProgramData\\Sisense\\Pr
ismServer\\ElastiCubeData\\Sample ECommerce",
"localPath":"C:\\ProgramData\\Sisense\\PrismServer\\Ela
stiCubeData\\Sample ECommerce"
},
"cube3":{
"ecube":"Sample ECommerce",
"url":"\\\\127.128.129.93\\C:\\ProgramData\\Sisense\\Pr
ismServer\\ElastiCubeData\\Sample ECommerce",
"localPath":"C:\\ProgramData\\Sisense\\PrismServer\\Ela
stiCubeData\\Sample ECommerce"
}
},
"tasks":{
"task1":[
{
"build":{
"cube":[
"cube1",
"cube2",
"cube3"
],
"queue":[
"accumulate",
"entire",
"schemachanges"
]
}
},
{
"distribute":[
"cube1",
"cube2",
"cube3"
]
},
{
"reattach":{
"deleteOldDbfarm":true,
"cube":[
"cube1",
"cube2",
"cube3"
]
}
},
{
"mail":"fail"
}
]
},
"scheduler":[
{
"task":"task1",
"schedule":"15 14 1 * *",
"enabled": true
}
]
}
Add Query Nodes
In the Sisense Web Application, click Admin and select the Data Sources tab
on the left.
Hover over the ElastiCube you want to add to the ElastiCube Set and click on
the menu that appears. Click Add to ElastiCube Set and select the set that
you want to add the ElastiCube to.
Edit the config.json located at Sisense/Sisense.Orchestration/Config/ and add
the new ElastiCube to the Cubes object.
Save the config.json file.
Restart the Sisense Orchestrator Service.
Remove Query Nodes
You can remove query nodes by removing them from the ElastiCube Set and the
config.json file.
To remove a query node:
Stop the Sisense Orchestrator Service. Open Windows Services, select
Sisense.Orchestrator, and click .
In the Sisense Web Application, click Admin and select the Data Sources tab
on the left.
In the ElastiCube Set table, click and clear the checkboxes of the ElastiCubes
to be removed. Click Save after you have selected the relevant ElastiCubes.
Edit the config.json located at Sisense/Sisense.Orchestration/Config/ and
delete the relevant ElastiCubes from the Cubes object.
Save the config.json file.
Restart the Sisense Orchestrator Service.
Next Steps
Setting Up ElastiCube Sets
Setting Up ElastiCube Sets
Previous Steps
Distributing ElastiCubes
Sisense ElastiCube Sets are collections of ElastiCube models with identical
schemas that allow you to query running ElastiCubes within the ElastiCube Set
while other ElastiCubes are building.
Note: From Sisense V6.5 onwards, you can query ElastiCubes during
accumulative builds without ElastiCube Sets. However, to ensure that your users
can query ElastiCubes after a failed build, you can implement ElastiCube Sets to
handle your queries while Sisense rebuilds the failed ElastiCube.
Grouping ElastiCubes into ElastiCube sets has several benefits:
Allowing viewers to query the most up-to-date cubes within an ElastiCube
Set.
Reducing server load during builds by using multiple nodes in which only the
non-building node is queried.
Achieving data redundancy by running builds interchangeably across
multiple nodes.
To maximize availability and reduce build and dashboard response times,
administrators can distribute resource allocation across multiple Sisense nodes.
By adding ElastiCubes across multiple servers to a single ElastiCube Set,
administrators can configure ElastiCube Sets to run builds interchangeably via
the Sisense Orchestrator Service so the most up-to-date and complete
ElastiCubes are queried.
The Sisense Orchestrator Service is an automated service that can be configured
to synchronize builds across the ElastiCube Set. If you change your schemas
within any of the ElastiCubes, you must manually change the schemas in all of the
ElastiCubes and rebuild the cube entirely.
This page provides the following information:
Instructions on Creating and Deleting ElastiCube Sets.
A walkthrough for how you can create a set and configure the Sisense
Orchestrator Service. See Working with ElastiCube Sets.
(Optional) Instructions on how to implement and configure the Sisense
Orchestrator Service. See Activating the Sisense Orchestrator Service.
How to update an ElastiCube within an ElastiCube Set.
Creating ElastiCube Sets
From the Admin page, Administrators can create ElastiCube Sets.
ElastiCube Sets require at least two ElastiCubes. The Administrator can add
multiple ElastiCubes to a set, however, ElastiCubes can only be part of a single
ElastiCube Set at a time. After an Administrator creates an ElastiCube Set or adds
an ElastiCube to an existing set, the ElastiCube is disabled in the original server
and no further actions can be performed outside of the set.
Sisense recommends that you develop ElastiCubes in a development
environment or separate ElastiCube to ensure they work before adding them to
an ElastiCube Set.
Note: Build nodes used in high availability configurations should not be included
in your ElastiCube Set. If you have implemented high availability, only query
nodes should be included in the ElastiCube Set.
To create an ElastiCube Set:
Click Admin and select the Data Sources tab on the left.
For the relevant ElastiCube you want to add to the ElastiCube Set, select and
click Create ElastiCube Set.
In the Create ElastiCube Set window, enter a name for the set and select the
ElastiCubes you want to include in the set.
From the Routing Strategy list, select a strategy for how you want to route
traffic to your ElastiCube Set. See Routing Queries in ElastiCube Sets for
more information.
From the Failover ElastiCube list, select which ElastiCube you prefer to use if
the other ElastiCubes in the set are not available. Failover ElastiCubes only
handle queries when an ElastiCube that is part of the ElastiCube Set
fails.(Note: this feature is available in Sisense V6.7 onwards).
Click Create.
In the Existing Dashboards popup message, indicate if you want to associate
your ElastiCube’s dashboards with the ElastiCube Set or maintain the
association with the original ElastiCube.
Click OK. The ElastiCube Set is created and displayed in the Admin page.
After you have created an ElastiCube Set, you can configure the ElastiCube
Set’s Hierarchies, Access Rights, and Data Security.
Adding ElastiCubes to ElastiCube Sets
After you have created an ElastiCube Set, you can add more ElastiCubes to the
set.
When you add an ElastiCube to an existing ElastiCube Set, any dashboards
associated with that ElastiCube are passed on to the ElastiCube Set.
Note: You cannot add ‘localhost’ to an ElastiCube Set. Instead, you can add your
localhost as a new server with its IP address as the server name and then add
ElastiCubes from it to an ElastiCube Set.
To add an ElastiCube to the ElastiCube Set:
Click Admin in the upper right corner and select the ElastiCubes tab on the
left.
For the relevant ElastiCube you want to add to the ElastiCube Set select and
click Add to ElastiCube Set.
OR
In the ElastiCube Set table, click and select Edit and select the
ElastiCubes to be added to the set. Click Save after you have selected the
relevant ElastiCubes.
The ElastiCube is added to the ElastiCube Set and displayed in the
ElastiCube Set table on the Admin page.
Deleting ElastiCube Sets
In Sisense, if an accumulative build fails, you must rebuild the ElastiCube that
failed entirely to ensure the validity of the ElastiCube.
If you use the Sisense Orchestrator Service, Sisense recommends that you define
the value of the Queue key as “FullUpdateExisting, Full”
"queue": ["FullUpdateExisting","Full"]
In this configuration, the Sisense Orchestrator Service attempts to build the set
using accumulative builds and in the event of a failure, a full build is initiated.
Retrieving a Token
As part of the config.json file, you must provide a token that Sisense uses for
authenticating your ElastiCube Sets.
You can retrieve this token through Sisense’s API documentation. After you
retrieve the token, save it as the value of apiKey in the config.json file.
To retrieve a token:
In Sisense, access the API documentation, select Admin> REST API > REST
API Reference.
In the REST API Reference site, select Version 1.0 in the top-right corner of
the page.
Open the authentication method.
Enter your login credentials and click Run. The access_token is displayed in
the Response Body below.
Copy the token and paste it into the value of apiKey in the config.json file.
Updating ElastiCubes within an ElastiCube Set
The application must know the IP address of the build server. You can specify
the build node server IP address in the Configuration Manager:
In your browser, open the Configuration Manager at: [server address]:3030,
for example, 127.61.98.2030:3030.
In Build Node Server, enter the IP address of the build node.
Step 2
To edit and build ElastiCubes in the Data page, you must add the build node as a
remote server.
In the Admin page, select Data Sources and click Add Server.
Enter your IP address. Make sure to use the server IP address and not the server
name when you add
it.
Note: If you initiate a build from the Data page at the same time that a build is
initiated by the Orchestrator service or when a build is already in progress, one
of the builds may fail. If this happens, initiate another build.
You will now see the ElastiCubes from the build server on your Data page. This
ElastiCube is displayed with the IP address of the build node.
You can now edit and build ElastiCubes that reside on your build server from the
Data page.
Step 3
If you want to use multiple query nodes, configure the Orchestrator to distribute
your ElastiCube models from the build node to the query nodes.
For more information, see Activating the Sisense Orchestrator Service.
Step 4
Sisense must know the IP address of the build server. You can specify the build
node server IP address in the Configuration Manager on your application node:
In your browser, open the Configuration Manager at: [server address]:3030,
for example, 127.61.98.2030:3030.
In Build Node Server, enter the IP address of the build node.
Step 2
Enter your IP address. Make sure to use the server IP address and not the server
name when you add
it.
Then, on the build node, schedule builds for the Usage Analytics Model
ElastiCube.
Configure the Orchestrator on your build node to distribute the Usage Analytics
Model ElastiCube to the query nodes.
See Distributing ElastiCube Builds to Query Nodes for more information.
Step 5
Enter your IP address. Make sure to use the server IP address and not the server
name when you add it.
Step 6
Create ElastiCube Sets for the Usage Analytics Model ElastiCubes for the query
nodes.
Update your default Usage Analytics dashboards to use the Usage Analytics
Model ElastiCube Set.
The Usage Analytics dashboards included with Sisense are visible after you
activate the Usage Analytics feature in the Admin page. After activating Usage
Analytics, Sisense displays the default Usage Analytics ElastiCube in the Data
page and your default Usage Analytics dashboards in the Analytics page.
You can fully customize the default ElastiCube and dashboards as you like.
Note: The Usage Analytics ElastiCube is built on a CSV file where your data is
stored. This CSV should not be modified in any way or the ElastiCube will not
build. To update the Usuage Analytics data, you should perform a full build.
If you modify your ElastiCube and it no longer builds, or if you ever need to
revert back to the original ElastiCube and dashboards, you can do so through the
Admin page or through the REST API. See Restoring Usage Analytics for more
information.
If you have implemented a multi-node environment and want to view usage data
across all your nodes, there are additional steps you must take to set it up. See
Supporting Usage Analytics in Multi-Node Environments for more information.
Note: Groups with ';' in their name will lead to incorrect data being displayed in
your Usage Analytics as this causes the groups to be parsed as two separate
groups.
Related Topics
Activating Usage Analytics
Dashboard Analytics
Domain Analytics
General Analytics
Groups Analytics
Users Analytics
Restoring Usage Analytics
Supporting Usage Analytics in Multi-Node Environments
Activating Usage Analytics
There are two steps to activating Usage Analytics. The first step is to enable
Usage Analytics from the Admin page, and the second step is to build the model
called Usage Analytics Model that is automatically created when Usage
Analytics is enabled.
Once Usage Analytics is enabled, your server’s activity is recorded on your
Sisense Server. Enabling Usage Analytics adds a Usage Analytics ElastiCube to the
Data page and a Usage Analytics folder to your Dashboards list where all the pre-
defined usage dashboards are stored.
These dashboards are initially empty until you complete the second step, which
is to build the pre-defined Usage Analytics model. After you build your Usage
Analytics model, your Usage Analytics dashboards will display the updated usage
data. The data displayed in your Usage Analytics dashboards is collected when
Usage Analytics is enabled. All the data displayed in your Usage Analytics is
stored on your Sisense Server for 30 days.
If you have implemented a multi-node environment and want to view usage data
across all your nodes, there are additional steps you must take to set it up. See
Supporting Usage Analytics in Multi-Node Environments for more information.
Note: To display the latest usage analytics data, you need to perform a full build
on the Usage Analytics model. You can automate this step by scheduling periodic
builds.
To activate Usage Analytics:
In the Admin page, select Usage Analytics.
Question Widget
How long does it take to load a Average Dashboard Load Time, Avg Action per
dashboard? Dashboard, Dashboard Load Time
The Usage - Domain dashboard contains data regarding how many domains were
active for the recorded period of time, the number of Viewers per domain, how
often they are using your dashboards, and what type of dashboard load
performance your customers are experiencing.
You can filter the information displayed in your widgets with a set of filters on
the right. With these filters, you can filter the details displayed in your dashboard
by each domain.
With the Usage - Domain dashboard, you can keep track of how many users you
have per domain. For example, in the Users per Domain and Number of
Dashboard Viewers per Domain tables, you can view how many users your
customers have, and monitor their license utilization.
This dashboard is useful for answering the following questions:
Question Widget
How many dashboards are users from Avg Viewed Dashboards per Domain, Avg
each domain viewing? Viewers per Domain, Users per Domain
How often are dashboards being Avg Refreshes per Dashboard per Domain,
refreshed by users from the domain? Dashboard Refreshes and Viewers
How many Viewers do I have per domain? Avg Viewers per Domain, Number of Dashboard
Viewers per Domain
How much are users from each domain Avg Actions per Domain, Actions over Time
interacting with my dashboards?
How well are my dashboards loading? Avg Load Time, Dashboard Load Time
How often are dashboards being refreshed? Avg Refreshes per Day, System Usage
How many Viewers are active each day? Avg Viewers per Day, System Usage
Have many actions occur in my dashboards Avg Actions per Day, Actions, System Usage
per day?
How long does it take to load a dashboard? Avg Load Time, Dashboard Load Time,
Question Widget
System Usage
The Usage Domain dashboard contains data regarding how many groups were
active for the recorded period of time, how often they are using your dashboards,
and what type of dashboard load performance your users are experiencing.
You can filter the information displayed in your widgets with a set of filters on
the right. With these filters, you can filter the details displayed in your dashboard
by each user, group, or dashboard.
With the Group Analytics dashboard, you can keep track of your groups and
remove or edit any groups that aren’t being used.
This dashboard is useful for answering the following questions:
Question Widget
Question Widget
How many active groups do I have? Active Groups in Period, Dashboard Refreshes and
Viewers
Can unnecessary groups be Active Groups in Period, Avg Active Viewers per
deleted? Group, Dashboard Viewers per Group
How many active users are in a Avg Actions per Group, Actions, Dashboard Refreshes
group? and Viewers
How many actions does a group Avg Actions per Group, Actions
perform?
How many times was a dashboard Avg Dashboards Refreshed per Group
refreshed by a group?
Whats the dashboard load time for Avg Load Time per Group, Load Time
my groups?
The User Analytics dashboard contains data regarding how many users were
active for the recorded period of time, how often they are using your dashboards,
and what type of dashboard load performance your users are experiencing.
You can filter the information displayed in your widgets with a set of filters on
the right. With these filters, you can filter the details displayed in your dashboard
by each user, group, or dashboard.
This dashboard is useful for answering the following questions:
Question Widget
How many active users do I have? Active Users in Period, Dashboard Refreshes and
Viewers, User Activity
Question Widget
Can unnecessary users be deleted? Active Users in Period, Viewed Dashboards per
User, User Activity
How many times are users interacting Avg Actions per User, User Actions
with my dashboards?
From the Plug-ins page, you can enable or disable your plugins. This is useful for
testing new plugins or troubleshooting issues with your dashboard. When a plug-
in is disabled, its functionality is no longer available in the Sisense Web
Application.
To enable or disable a plug-in:
In the Sisense Web Application, select Admin > Plugin-Ins.
Toggle the Enable/Disable switch to activate or deactivate a plug-in.
OR
To activate/deactivate multiple plugins, select the checkbox of the relevant
plugins. When you select any of the checkboxes, an Enable/Disable switch is
displayed in the menu bar. Toggle the switch to enable or disable all the
selected plugins.
After enabling or disabling a plug-in, Sisense rebuilds your Plug-ins’ list. The
next time you refresh your dashboard, the plugins will be enabled or
disabled as defined in the Plug-ins page.
Setting Up a Custom Email
Server
Sisense includes a default email server configuration, which uses Mandrill by
MailChimp to send automated emails such as dashboard reports or password
reset emails. This configuration can be used for POC and testing environments.
For production environments, you should provide your own email server.
Custom email servers allow all your email transactions to be completely
managed on your side.
Through the Sisense REST API, you can send an HTTP POST request to issue
Sisense emails through your own custom email server instead of the default
Sisense email server. The REST API exposes properties that you can configure for
the custom email servers such as security, timeout, and logging properties.
When authenticating an HTTP request, Sisense only supports the basic
authentication through the Authorization method using plain text.
To set up a custom email server:
In the Sisense Web Application, click Admin, and then Rest API, followed by
REST API Reference.
In version 1.0 of the REST API, select Settings, then POST
/settings/email_server.
In the body of your call, define the values of the following keys:
Key Value
{
"emails": {
"senderEmail": "[email protected]"
}
}
Click Run.
Activating a Sisense AMI from
the AWS Marketplace
Sisense provides a BYOL (Bring Your Own License) AMI (Amazon Machine
Image) on the Amazon AWS Marketplace. You can utilize your image to run your
Sisense instances on AWS. Before you create an instance, make sure you have
your Sisense account user and password available to initialize the instance.
Note: The payment to AWS covers the price of the machine on AWS, using an
existing Sisense license. Your Sisense license payment is part of the existing
Sisense account billing, and is not charged to your AWS account.
To initialize your Sisense instance:
Instantiate the Sisense 7.x AMI from the AWS Marketplace to create your
Sisense server.
Connect to your Sisense server using Remote Desktop. The Sisense Activation
screen is displayed.
Sign in using the your Sisense credentials: the email address and password
you provided when acquiring your Sisense license.
Click Sign In to continue. Your account information will be verified, and your
server automatically initialized. After completing the initialization, your
browser will automatically be launched, displaying the Sisense login
window (http://localhost/app/account#/login).
Enter the same user name and password you provided to activate the server,
and click Login to login to Sisense server. You Sisense server is now active
and available for your use. The Sisense Web UI is available - and displays
the Analytics landing page.
Troubleshooting:
In case you activate Sisense server, and login to it, and the Sisense WebUI isn’t
displayed, restart your Sisense server. As you have already activated the
Sisense instance, your Sisense application is ready. Click Start to launch the
application, and display the login screen.
Provide your Sisense user and password to begin working with the
application.
Getting Started with Linux
Welcome to the Linux Getting Started guide.
Before you begin…
Sisense supports many different types of business users, but this guide is
designed for DevOps and IT users.
This guide explains all the steps you need to provision Sisense on Linux, but you
should have at least some experience configuring server software and with Linux
Below are the primary steps required to get Sisense up and running on Linux.
"Step 1. Verifying System Requirements" on page 1236
"Step 2. Planning Your Configuration" on page 1240
"Step 3: Configuring Port Settings" on page 1246
"Step 4: Initializing Sisense on Linux" on page 1252
"Step 5: Creating Data Groups" on page 1268
"Step 6: Monitoring Sisense on Linux" on page 1272
In addition, here are some additional topics you might be interested in:
Linux FAQs
Supported Connectors
Sisense on Windows versus Linux
Migrating Sisense from Windows to Linux
Debugging Cloud-Native Sisense on Linux
Upgrading Sisense on Linux
Uninstalling Sisense from Linux
Uploading Files through the File Manager
Rebranding Sisense Automated Emails
Translating Sisense Metadata
White Labeling Sisense
Step 1. Verifying System
Requirements
Previous Step
Getting Started with Linux
The following minimum hardware requirements and recommendations apply to
all servers running Sisense, including physical hardware and virtual machines.
The Sisense Linux deployment is certified to run on the following operating
systems:
Ubuntu 18.04 LTS
RHEL 7.x
Centos 7
Amazon Linux 2.0
The Sisense Linux Cloud-native deployment is currently certified to run on local
data centers and on AWS. Certification on Azure and GCP will be provided in the
future.
Your servers should meet or exceed the minimum of these hardware
recommendations.
Note the Linux cloud-native deployments require an additional 4 GB RAM
beyond the Sisense requirements for Windows deployments, to handle the
cluster infrastructure.
The actual hardware requirements of the cluster depends on many parameters,
including the data size, the models created in the system, and the dashboard
complexity, and needs to be determined per specific deployment. Additionally,
using custom queries in model definitions adds additional compute load to the
system, and needs to be considered when planning your deployment.
Deployment Processor CPU RAM DISK SPACE
Type
Single node 64-bit 8-core, 16 GB 50 GB for the first partition. For the
2.0 GHz second partition or disk
or /opt/sisense, the space should be
higher two times the amount of your data
Multi-Node (per 64-bit 8-core, 16 GB 50 GB for the first partition. For the
server) 2.0 GHz second partition or disk
or /opt/sisense, the space should be
higher two times the amount of your data
Additional Requirements
Root Linux file system ("/") must have at least 50GB of free space
Sisense recommends that your Linux deployment include AVX2 which is
introduced in Haswell
The default network plugin Calico is required for cluster support for IP-in-IP
tunneling in your network. Optionally, you can use the network plugin
Weave with encrypted VXLAN
Servers must be connected to the Internet and must have network access to
Dockerhub
The installation requires the user/password or SSH key. In a multi-node
deployment, the same user needs to be defined on all of the servers
If your deployment includes shared storage with GlusterFS, each node must
have a second unformatted unmounted unpartitioned hard disk with at
least 30GB disk space available, and additional storage for the ElastiCubes.
Sisense recommends that the second disk size be at least the size of all
ElastiCubes multiplied by 2.
Next Steps
Step 2. Planning Your Configuration
Step 2. Planning Your
Configuration
Previous Step:
Step 1. Verifying System Requirements
Sisense supports two deployment topologies on Linux: a single-node
deployment, and a multi-node deployment. This page describes the two
supported deployments and the differences between them.
In both deployments, the Sisense application is provided as Docker containers.
The orchestration between these containers is managed through Kubernetes as
displayed in the diagram below.
This diagram illustrates how Sisense utilizes Kubernetes for redundancy and
load balancing regardless of the number of machines. When you initialize
Sisense, it is installed as a Kubernetes namespace. The services and ElastiCubes
that make up the Sisense application are pods spread across the node or nodes in
your deployment.
In addition, Sisense supports shared storage with GlusterFS or Amazon EFS for
data distribution, consistency, and resiliency.
Single-Node
In its most basic configuration, Sisense can run on a single Linux machine. The
deployment scenario is straightforward to set up, maintain, and upgrade.
The single server deployment will deploy all Sisense nodes on a single server
using Kubernetes orchestration. It can support a sandbox environment for
development and testing, but it is also a valid configuration for some production
environments.
The deployment will utilize the storage available locally on the host server.
Multi-Node
Sisense supports the configuration of multiple machines, or nodes. In a multiple
node deployment, you have one build-node, two application/query nodes. You
can add additional query nodes as needed. In addition, Sisense supports
GlusterFS and EFS for shared storage.
TCP 22 SSH. This port should be opened when your Administrator needs to
deploy or upgrade Sisense.
TCP 6443 This port should be opened when your Administrator needs to
access the Kubernetes dashboard.
Cluster Mode
When deploying multiple nodes, the following ports should be opened between
each node:
Ports Description
Parameters Value
k8s_nodes K8S node/nodes are the set of machines that are used to run
Sisense.
The installation machine is used only during installation to run
the installation scripts. The Installation machine can be one of
the K8S nodes, but it can also be a different machine (remote
installation).
This parameter defines the following:
node: name of your node.
internal_ip: The internal IP addresses define the location
within your Kubernetes cluster.
external_ip: The external IP address defines how your cluster
can be accessed from outside, or the DNS name of the node. It
can also be the same value as the internal IP in case this is the
only IP used to access the node.
update If you are upgrading Sisense, enter true, otherwise, keep this
value as the default.
If you enter true, Sisense skips the Kubernetes installation. If
Parameters Value
application_dns Enter your DNS name. The default is the first node of your
_name external IP. If you have not defined a secure connection (No
SSL), Sisense uses the external IP of your first node when
accessing Sisense.
linux_user Enter the name of your Linux user. This user must not be the
"root" user, but should have sudo privileges, and all the other
privileges as a root user.
ssh_key If you have a secure connection to your server, enter the SSH
key of the Linux user defined in sisense_user. The SSH key
should be in .pem format.
storage_type For single deployments, leave this field empty as Sisense use the
host path /opt/sisense.
gateway_port Enter the port of the API gateway for your deployment.
If you are not implementing SSL, this will be the port used to
connect to Sisense.
is_ssl Enter true for secure connections to Sisense. Enter false if you
have not implemented SSL.
ssl_cn_name Enter the Host name (CN name) the certificate is issued for.
Example: test.sisense.com
ssl_key_path If you connect to your server securely, enter the SSL keypath.
When SSL is defined, the Sisense API Gateway Port will be 443
and not the value defined in gateway_port.
ssl_cer_path If you connect to your server securely, enter the SSL certificate
Parameters Value
recover_kubern Enter true if one of your nodes is broken. Sisense removes the
etes node and recovers it.
http_proxy If you must use a web proxy, set this to the unsecured proxy
value.
https_proxy If you must use a web proxy, set this to the secured proxy value.
no_proxy If you must use a web proxy, to exclude certain addresses from
your proxy, enter the IP addresses separated by a comma.
remove_user_da Enter true to delete all user data. This deletes your ElastiCube
ta models, application database, message broker, and plug-ins.
Run the configuration script.
./sisense.sh config.yaml
Your configuration settings are displayed with a message to confirm that
you want to deploy Sisense with these settings.
Enter Yes to confirm that you want to deploy Sisense. Enter No to abort the
deployment. If you entered Yes, Sisense will be deployed. If there are any
issues, you can view the installation logs here: [installation-dir]/sisense-
ansible.log. When this installation is complete a list of endpoints are
displayed for accessing Sisense and managing your deployment. The URLs
are listed below. In addition, you can run the following command to return
the URL to access Sisense.
kubectl cluster-info
This displays the URL of your Sisense application. You can enter this
address into your browser to access Sisense. To verify that all your services
are running as expected, you can enter the URL of Sisense with the port and
/app/test to the end of the address in your browser. This displays the status
of each of your services. For example, 0.0.0.0:PORT/app/test.
List of endpoints in the single installation:
To connect to Sisense, in your browser, enter the following in your browser:
For non-secure connections:
http://{IP}:30845/
For secure connections:
https://{IP}/
To connect to your Kubernetes dashboard, enter the following in your browser:
https://{IP}:6443/api/v1/namespaces/kube-
system/services/https:kubernetes-dashboard:/proxy
Click here for instructions for Multi-Node Deployments
To initialize Sisense in a Linux environment:
In your Linux CLI, enter the following command to download the Sisense
tar.gz file.
wget [sisense-linux-deployment-link]
Contact Sisense to receive the latest Linux archive file.
Extracting the tar.gz file:
tar zxf [sisense-linux-deployment-package-name]
Navigate to the directory where you extracted the tar.gz file.
cd sisense-[sisense-version]
Edit the config.yaml file.
vim config.yaml
After running this command, the parameters of the config.yaml file are
displayed.
In config.yaml file, insert values for the following parameters:
Parameters Value
k8s_nodes K8S node/nodes are the set of machines that will be used to run
Sisense.
The installation machine is used only during installation to run
the installation scripts. The Installation machine can be one of
the K8S nodes, but it can also be a different machine (remote
installation).
This parameter defines the IP address of your internal and
external IP address.
If you are implementing a multi-node deployment, remove the
comments from # k8s_nodes and define the internal IP,
external IP, disk_volume_device, and role for each node.
The internal IP addresses define the location within your
Parameters Value
update If you are upgrading Sisense, enter yes, otherwise, keep this
value as the default.
If you enter yes, Sisense skips the Kubernetes installation. If
your Kuberenetes cluster is already configured and running,
keep yes to skip cluster installation.
Staging and dev environments can run on the same cluster as a
separate namespace. Make sure you have enough storage in the
GlusterFS for a second namespace. For installing on a separate
namespace ,the value of namespace_name needs to be update.
application_dns Enter your DNS name. The default is the first node of your
_name external IP.
If you have not defined a secure connection (No SSL), Sisense
Parameters Value
linux_user Enter the name of your Linux user. This user must not be the
"root" user, but should have sudo privileges, and all the other
privileges as a root user.
ssh_key If you have a secure connection to your server, enter the SSH
key of the Linux user defined in sisense_user. The SSH key
should be in .pem format.
mongodb_disk_ The amount of disk space allocated for the Sisense application
size database.
This value should be multiplied by the number of nodes your
deployment has.
It is recommended to leave the default of 3 GB. If only metadata
is stored in the MongoDB, there is no need to increase the size.
zookeeper_disk The amount of disk space allocated for the ZooKeeper service.
Parameters Value
gateway_port Enter the port of the API gateway for your deployment.
If you are not implementing SSL, this will be the port used to
connect to Sisense.
is_ssl Enter true for secure connections to Sisense. Enter false if you
have not implemented SSL.
ssl_cn_name Enter the Host name (CN name) the certificate is issued for.
Example: test.sisense.com
ssl_key_path If you connect to your server securely, enter the SSL keypath.
When SSL is defined, the Sisense API Gateway Port will be 443
and not the value defined in gateway_port.
ssl_cer_path If you connect to your server securely, enter the SSL certificate
path (.crt file).
Parameters Value
weave_enabled Enter true if your cluster uses Azure virtual machines or any
other place in your deployment does not support IP in IP
network protocol. The default network plugin is calico,. Sisense
supports the Weave network plugin for communication
between nodes. You must include your Weave password in the
value for weave_password below.
Enabling weave will change the network protocol between the
nodes to secured vXLAN
If the weave_password is empty, the vXLAN will not be
encrypted.
remove_node Enter true to remove a node from your cluster. Enter the node
to be removed in the value of node_to_remove below.
recover_kubern Enter true if one of your nodes is broken. Sisense removes the
etes node and recovers it.
http_proxy If you must use a web proxy, set this to the unsecured proxy
Parameters Value
value.
https_proxy If you must use a web proxy, set this to the secured proxy value.
no_proxy If you must use a web proxy, to exclude certain addresses from
your proxy, enter the IP addresses separated by a comma.
You need to include the internal IP address of the host in the list.
remove_user_da Enter true to delete all user data. This deletes your ElastiCube
ta models, application database, message broker, and plug-ins.
Run the configuration script.
./sisense.sh config.yaml
Your configuration settings are displayed with a message to confirm that
you want to deploy Sisense with these settings.
Enter Yes to confirm that you want to deploy Sisense. Enter No to abort the
deployment. If you entered Yes, Sisense will be deployed. If there are any
issues, you can view the installation logs here: [installation-dir]/sisense-
ansible.log. When this installation is complete a list of endpoints are
displayed for accessing Sisense and managing your deployment. The URLs
are listed below. In addition, you can run the following command to return
the URL to access Sisense.
kubectl cluster-info
This displays the URL of your Sisense application. You can enter this
address into your browser to access Sisense. To verify that all your services
are running as expected, you can enter the URL of Sisense with the port and
/app/test to the end of the address in your browser. This displays the status
of each of your services. For example, 0.0.0.0:PORT/app/test.
List of endpoints in the single installation:
To connect to Sisense, in your browser, enter the following in your browser:
For non-secure connections:
http://{IP}:30845/
For secure connections:
https://{IP}/
To connect to your Kubernetes dashboard, enter the following in your browser:
https://{IP}:6443/api/v1/namespaces/kube-
system/services/https:kubernetes-dashboard:/proxy
Next Steps
Step 5: Creating Data Groups
Step 5: Creating Data Groups
Previous Step
Step 4: Initializing Sisense on Linux
If you choose to set up a multi-node deployment, your ElastiCubes are stored in a
shared storage . For each ElastiCube, there is one instance stored on your shared
storage resource. You can create multiple instances which are loaded in memory
on the other machines in your deployment. Creating multiple instances of
ElastiCubes can improve performance.
To create and manage each of the instances of your ElastiCubes, you can create
Data Groups in Sisense. Data Groups are collections of ElastiCubes that make it
easy to manage your resources for multiple instances of ElastiCubes. Data Groups
allow you to assign and split a system’s resources between the ElastiCubes
according to your use-case.
For example, let’s assume you have several high priority ElastiCubes with a lot of
concurrent users, and some other ElastiCubes with fewer users with data that
doesn’t change very often. You can group your high priority ElastiCubes into one
data group, and your lower priority ElastiCubes in another group. For the first
group, you can create multiple instances of your ElastiCubes on each of the
machines in your deployment and allocate more resources to this data group. For
the lower priority group, you may want to create fewer instances and provision
these instances in memory on one of your slower machines.
To create a data group:
In the Sisense Admin page, select Data Groups.
In the Data Groups area, click .
OR
In your browser, type http://{IP}:(random _port*)/login
You can retrieve the port with the following command: kubectl get svc
-n monitoring prom-operator-grafana
EFK (Elasticsearch, FluentD and Kibana)
Elasticsearch, FluentD and Kibana (EFK) is a combined logging mechanism that
lets you build dashboards for monitoring important parts of your deployment
from metrics collected by FluentD. If you provisioned EFK (is_efk = true) when
you initialized Sisense on Linux, Sisense activated EFK.
This means that Sisense began collecting metrics about your deployment that
you can access through Kibana. Keep in mind that Sisense does not provide a
Kibana dashboard, only access to Kibana with metrics collected by FluentD.
You can access Kibana and create your own dashboard with the collected metrics
by entering the IP of your node, and port 30561 in your browser.
NodeIPaddress:30561
Kubernetes Dashboard
The Kubernetes Dashboard provides an interface for troubleshooting Sisense
containers, and manage the cluster’s resources. You can use the dashboard to get
an overview of how Sisense is running on your cluster as well as monitoring
Sisense resources.
To access your Sisense Kubernetes dashboard, enter the following URLs
into your browser:
Single Node Deployments
https://{IP}:6443/api/v1/namespaces/kube-
system/services/https:kubernetes-dashboard:/proxy
Multi-Node Deployments
https://{IP}:6443/api/v1/namespaces/kube-
system/services/https:kubernetes-dashboard:/proxyquee
Note: {IP} should be replaced with the IP address you defined in the config.yaml
file when you provisioned Sisense.
Linux Connectors
The table below contains a list of connectors supported in Linux and what
version their support started in:
Connector Support ElastiCube Live Models Commen
ed From ts
CSV V7.3 Documentati ElastiCub
Linux on e models
Beta only. Live
not
currently
supporte
d
EXPORT_ECDATA Set the value to true to export your ecdata and JSON
schema files or false to export only the JSON schemas.
Section: STATIC_ASSETS
PLUGINS_PATH Enter the location of your plugins directory on your
Windows machine.
Section: SISENSE_API
USERNAME Enter the Sisense Administrator's user name for
Windows.
WIN_BASE_URL Enter the BASE URL for Sisense including the port.
Section: LINUX_SCP
HOST Enter your host or the IP address of your Linux machine.
DESTINATION_DIREC Enter the Linux directory where all assets and scripts will
TORY be transferred to.
Section: LINUX_TOKEN_LOGIN
PORT Enter the port number for your Linux API Gateway.
URL_SUFFIX The location of your Sisense API token. This value should
not be changed.
Section: WIN_MONGODB
MONGODB_IP Enter the address of the Sisense application database on
your Windows machine.
If you have not changed this address, you can use the
default value.
DB_PORT database.
If you have not changed this, you can use the default value.
Section: WIND_ZOOKEEPER
ZOOKEEPER_IP Enter the address of the Sisense configuration database
on your Windows machine.
If you have not changed this address, you can use the
default value.
Section: LINUX_MONGODB
NAMESPACE Name of the Sisense namespace where the application
database is to be migrated to.
Section: LINUX_ZOOKEEPER
SERVICE_NAME Enter the name of service responsible for the
configuration database.
EXPORT_ECDATA Set the value to true to export your ecdata and JSON
schema files or false to export only the JSON schemas.
Section: STATIC_ASSETS
COLLECT In multi-node migrations, enter true to collect the static
Parameter Description
Section: SISENSE_API
USERNAME Enter the Sisense Administrator's user name for
Windows.
WIN_BASE_URL Enter the BASE URL for Sisense including the port.
Section: LINUX_SCP
HOST Enter your host or the IP address of your primary Linux
machine.
DESTINATION_DIREC Enter the Linux directory where all assets and scripts will
TORY be transferred to.
Parameter Description
Section: LINUX_TOKEN_LOGIN
PORT Enter the port number for your Linux API Gateway.
URL_SUFFIX The location of your Sisense API token. This value should
not be changed.
Section: WIN_MONGODB
MONGODB_IP Enter the IP address of the Sisense application database
on your primary Linux machine.
If you have not changed this address, you can use the
default value.
Section: WIND_ZOOKEEPER
ZOOKEEPER_IP Enter the address of the Sisense configuration database
on your Windows machine.
If you have not changed this address, you can use the
default value.
Section: LINUX_MONGODB
Parameter Description
Section: LINUX_ZOOKEEPER
SERVICE_NAME Enter the name of service responsible for the
configuration database.
Backup existing version using the following guide - Linux k8s Sisense assets
collector
Upgrade Sisense using the following guide - How to Install Sisense in Linux -
Kubespray Cluster/Single Installation (tar.gz)
Restore Sisense Data from the previous version using the following guide - Linux
k8s Sisense assets restore
build-cores-usage-
percentage
enable-recycler
rename Rename a data group. Mandatory:
Example: name
si datagroups create -name example -new- new-name
name example
update Update a data group. Mandatory:name
Example: Optional:
si datagroups update -name example connector-mode
index-size
default
query-instances
query-cpu-limit
query-cpu-request
query-memory-
limit
query-memory-
request
query-cores-usage-
percentage
build-cpu-limit
build-cpu-request
build-memory-
limit
build-memory-
Commands Description Parameters
request
build-cores-usage-
percentage
enable-recycler
assign Assigns an ElastiCube to a data group. Mandatory:name
Example: cube
si datagroups assign -name example -cube
examplecube
attach Attaches a node to a data group. Mandatory:name
Example: node
si datagroups attach -name example -node roles
myhost -roles BUILD,QUERY
detach Detaches a node to a data group. Mandatory:name
Example: node
si datagroups detach -name example -node
myhost
delete Deletes a data group. Mandatory:name
Example:
si datagroups detach -name example
ElastiCube
s, Mon
Amaz o ZK
on
Linux
2
(AKS) Cento
s
Widgets
Linux supports the latest version of the Pivot widget, replacing the previous
Pivot widget available on Windows. All existing widgets using the Windows
Pivot widget are migrated automatically to the new Pivot widget.
The following features are not yet supported on Linux Pivot widgets:
Plugins on pivots (front-end plugins)
Sisense Narratives
Changing the “First day of week” doesn’t affect all the weeks in a pivot
table
The Scatter Map widget isn’t fully functional Linux
Pie and Scatter charts do not highlight filtered slices
ElastiCubes
ElastiCubes imported from Windows must be fully built on Linux after
importing them. Afterwards, you can perform accumulative builds
Connectors
Excels with static ranges cannot be built
In PostgreSQL, CSV, and MySQL, you need to import time fields as text, and
then convert them to a time field
When importing an ElastiCube that was exported from Windows, the file
paths are not automatically converted to Linux paths
("/opt/storage/sisense/..."). You need to change the connectivity settings
for each table to a valid CSV file
Sisense Live is supported on MySQL, excluding MySQL 8.0
Accumulative build by date using SalesForce connector fails
Google Ads and Google Analytics connectors’ table customizations are not
supported
Admin Page
Data Designers cannot see their own Live models in the Admin page.
Session inactivity timeout always uses the system global parameter and
doesn’t enforce separate Admin inactivity configuration values
Data Security
Following importing an ElastiCube, you must open the ElastiCube on the data
page at least once, before you can add row-based data security rules
Plugins
The Jump to Dashboard plugin functions on Linux, but once you associate the
plugin with a dashboard, you cannot edit it. You need to delete it and
redefine it
Other
Sisense Narratives is not supported on this version
Pre/post build plugins (This is planned for a future release)
After upgrading from Sisense Linux beta, you need to restart the management
service using the CLI command:
kubectl -n sisense delete pods $(kubectl -n sisense
get pods | grep management | awk '{print $1}')
7.4.1
7.4.1.571 - Selected bug fixes - July 11, 2019
7.4.1.564 - Selected bug fixes and security hardening - June 25, 2019
7.4.1.561 - Selected bug fixes - June 19, 2019
7.4.1.555 - Official release of Sisense V7.4.1 - June 11, 2019
Announcing Breaking Changes
The ElastiCube Set concept is not supported on Linux, and therefore the API
/elasticubes/sets is not supported. The “Data Group” entity can be used for
ElastiCube resource management.
New Features and Enhancements
Dashboard responsiveness was significantly improved when navigating
between dashboards
Google BigQuery connector supports worldwide query location for improved
performance
New informative tooltips for ElastiCube and Live tiles in the Data page
The “return to” parameter for SSO via JWT is now configurable in the
Configuration Manager (Documentation)
Scheduled reports are sent even if some of the widgets are not loaded in the
dashboard (Documentation)
Find functions quickly in the Formula Editor by name or syntax
(Documentation)
Non-Admin Redshift users can now connect to specific databases in Redshift
(Documentation)
Performance improvements for Live models on top and bottom ranking
filters. This is relevant for all databases and MySQL from v5.8 and above
Supported Connectors
ElastiCubes
ElastiCubes imported from Windows must be fully built on Linux after
importing them. Afterward, you can perform accumulative builds
You cannot import ElastiCubes over REST API
Widgets
Linux supports the new Pivot widget, replacing the previous Pivot widget
available on Windows. All existing widgets using the Windows Pivot widget
are migrated automatically to the new Pivot widget.
The following features are not yet supported on Linux Pivot widgets:
Plugins on pivots (front-end plugins)
Sisense Narratives
Export to PDF (Export to excel and CSV is supported)
The Scatter Map widget isn’t supported on Linux
Connectors
Excels with static range cannot be built
In Postgres, CSV, and MySQL, you need to import time fields as text, and then
convert to a time field
When importing an ElastiCube that was exported from Windows, the file
paths are not automatically converted to linux paths
("/opt/storage/sisense/..."). You need to change the connectivity settings
for each table to a valid CSV file
Sisense Live is supported on MySQL, excluding MySQL 8.0
Data Security
Defining data security over REST API is not supported
Data security attributes are applied only after a 5 minute delay
Data security values are not populated correctly for a live connection with
direct query toggled off
Plugins
All of the certified plugins are supported on Linux, except for the following
plugins which are not yet supported on the Linux release:
Sisense BloX
Insight Miner
Embed Images
Histogram
JAQLine
The Jump to Dashboard plugin functions on Linux, but once you associate the
plugin with a dashboard, you cannot edit it. You need to delete it and
redefine it
Other
Usage Analytics is not currently supported for Linux (planned to be
introduced in a future release)
After upgrading from Sisense Linux beta, you need to restart the management
service using the CLI command: kubectl -n sisense delete pods $(kubectl -n
sisense get pods | grep management | awk '{print $1}')
7.3.1
7.3.1.632 - Initial release of Sisense Linux V7.3 - March 31, 2019
New Features and Enhancements
Monitor your Sisense Linux deployment with Promoetheus, Grafna, and
FluentD bundled with Sisense
Supported Connectors
The following data sources are supported by the Linux release: (Documentation)
MySQL
SQL Server
PostgreSQL
Redshift
Oracle
Google BigQuery
Snowflake
Generic JDBC (ElastiCube models only, no live models)
CSV (ElastiCube models only, no live models)
Excel (ElastiCube models only, no live models)
SalesForce (ElastiCube models only, no live models)
Google Sheets (ElastiCube models only, no live models)
Limitations
ElastiCubes
ElastiCubes imported from Windows must be fully built on Linux after
importing them. Afterward, you can perform accumulative builds
You cannot import ElastiCubes over REST API
Widgets
Linux supports the new Pivot widget, replacing the previous Pivot widget
available on Windows. All existing widgets using the Windows Pivot widget
are migrated automatically to the new Pivot widget.
The following features are not yet supported on Linux Pivot widgets:
Plugins on pivots (front-end plugins)
Sisense Narratives
Export to PDF (Export to excel and CSV is supported)
The Scatter Map widget isn’t supported on Linux
Connectors
Excels with static range cannot be built
In Postgres, CSV, and MySQL, you need to import time fields as text, and then
convert to a time field
When importing an ElastiCube that was exported from Windows, the file
paths are not automatically converted to linux paths
("/opt/storage/sisense/..."). You need to change the connectivity settings
for each table to a valid CSV file
Sisense Live is supported on MySQL, excluding MySQL 8.0
Data Security
Defining data security over REST API is not supported
Data security attributes are applied only after a 5 minute delay
Data security values are not populated correctly for a live connection with
direct query toggled off
Plugins
All of the certified plugins are supported on Linux, except for the following
plugins which are not yet supported on the Linux release:
Sisense BloX
Insight Miner
Embed Images
Histogram
JAQLine
The Jump to Dashboard plugin functions on Linux, but once you associate the
plugin with a dashboard, you cannot edit it. You need to delete it and
redefine it
Other
Usage Analytics is not currently supported for Linux (planned to be
introduced in a future release)
After upgrading from Sisense Linux beta, you need to restart the management
service using the CLI command: kubectl -n sisense delete pods $(kubectl -n
sisense get pods | grep management | awk '{print $1}')
Pre/post build plugins (planned to be introduced in a future release)
The Sisense Cloud Managed
Service
Sisense’s Cloud Managed Service is a cloud-based service that provides a secure,
high-performance BI environment. Sisense’s Cloud Managed Service enables
organizations to focus on their businesses and BI results, without having to
manage the technical aspects of deploying a BI project. The Sisense Cloud is
based on the same scalable, performant, and agile solution that is available to
Sisense’s entire client community through our on-premises offering.
Cloud Security
Sisense Cloud customers take advantage of the robust security and available
certifications provided by Sisense and industry’s cloud computing leaders, such
as Amazon Web Services. A description of the Sisense security measures can be
found here.
Cloud Managed Service SLA (Service Level
Agreement)
The Sisense Managed Service is a robust and reliable solution. It is hosted on
AWS, one of the most reliable computing platform with the highest SLA standard,
as set out in the AWS SLA. Based on the AWS SLA, Sisense defines the BI Service
SLA, as set out in the Sisense Cloud Terms and Conditions.
Cloud Managed Service Administration
Sisense deploys your system in a dedicated virtual private network on AWS. The
Sisense Cloud Operations Team sets up the cloud environment and works with
your Administrative users on establishing access to the cloud environment and
securely connecting to your data sources.
In addition, there are a few other steps you must take:
Complete the Cloud Setup Form: This form should be completed by you and
provides Sisense with the necessary information for configuring your Cloud
environment on Sisense's side.
Setting Up the Cloud Environment: On your side, there are few things you
must configure including access to Sisense, and verifying that the relevant
ports are open.
(Optional) Complete the Cloud Migration Form: If you need to migrate your
existing production/trial/POC system, complete this form. Once complete,
return the form to your Customer Success Manager. The Cloud Operations
team reviews the form, requests clarifications as needed, and assists you
with migrating Sisense.
Setting up the Cloud
Environment
While Sisense configures your cloud environment, there are a few steps you must
complete to manage Sisense. The Sisense Cloud Operations team will assist you
to complete the following tasks described below.
Access to the Cloud Environment
Data Transfer
Configuring your Network
Optional Configuration
Access to the Cloud Environment
Based on the details provided in the Cloud Setup Form, the Sisense Cloud
Operations Team deploys the cloud environment. How your users access the
environment is described in the diagram below.
All users can access dashboards and Sisense via secure HTTPS from any location.
The default Sisense site is https://<customer_name>.sisense.com. Should a
custom domain be required, Sisense supports custom URLs using SSL certificates
provided by you, as described here.
If necessary, you can access the Desktop ElastiCube Manager as described in
Accessing the Desktop ElastiCube Manager.
Data Transfer
In some cases, you may want to transfer data to Sisense, for example, when
uploading Excel files or customized add-ons.
Sisense supports the following data source connections to connect to the Sisense
application database:
Direct connection to a database with or without SSL
If selected, you will provide Sisense with your public/external IP and port of
the database. If SSL encryption is required, you will provide an SSL
certificate and send it to Sisense
Site-2-site VPN (IPSec) tunnel
If you choose this option, Site-2-site VPN, Sisense will create a dual-tunnel
AWS VPN. You must configure a firewall to connect to the database via
internal IP routing based on the AWS configuration instructions provided
by Sisense.
SSH Tunnel
The SSH server should be set up on the database server or via a bastion
gateway.
VPC Peering
For databases deployed on an AWS VPC, you need to provide the VPC
details. Once the cloud environment is deployed, Sisense will issue a
peering request or, alternatively, you can issue a peering request from your
VPC.
Access to AWS RDS, Athena, etc. with or without SSL
Secure FTPS as described here: Transferring Files to Sisense Cloud.
Sisense Customer Data Proxy
If none of the above methods is applicable, the Sisense Customer Data Proxy
(CDP) can be deployed on a virtual machine behind a firewall to locally
connect to your data source(s). The CDP is an OVA VM image to be deployed
within your network where it should have at least one interface on a subnet
with the source DB, and at least one interface routable to the internet, and
open for outgoing connections on port TCP 22. The CDP maintains the
outbound connection to the Sisense cloud to transfer the data via an
encrypted SSH tunnel. The CDP supports multiple data sources within your
network. For a detailed description of the CDP, click here.
Configuring your Network
Sisense’s Cloud Managed Service is deployed on secure AWS server(s)
specifically dedicated to you. Access to the server is restricted to designated
applications only. No other programs/processes can be run on the Sisense
Server.
To connect the Sisense Managed Cloud Service to your database, the following
ports should be open for outbound traffic:
990
8443-8444
4000-4100
The relevant IP addresses are provided to you by Sisense from the Sisense Cloud
Operations Team.
After setting up your cloud environment, Sisense will contact you to schedule an
online Cloud Access Verification Session.
Optional Configuration
Custom DNS: Review to implement a rebranded URL for Sisense.
SSO: Review to implement SSO in your cloud environment.
Drivers: Review to connect to various data sources with the Sisense
JDBC connector.
Accessing the Desktop
ElastiCube Manager
While the Sisense web application has most of the features of the desktop version
of the ElastiCube Manager, some features have not been migrated yet. If you need
to connect to the desktop ElastiCube Manager for any reason, you can connect
through Microsoft's Remote Desktop Web Access. Once connected, you can
access the Desktop ElastiCube Manager for your environment.
To connect to the desktop ElastiCube Manager with Microsoft Remote
Desktop Web Access:
Type the URL of the RDWeb Access Web site into your browser. It can only be
entered using the verified IP's given to Sisense. By default, you can access
the RDWeb Access website at the following location.
https://server_name:8443/rdweb
Where server_name is the fully qualified domain name of the web server
where you installed RD Web Access:
Once downloaded, you may continue to use the file to access the ElastiCube
Manager. You are not required to download a new one each time except for
rare cases where there is a Windows update.
Open the file and re-enter your credentials to allow the certificate. Mac users
must download the Windows Remote Desktop application from the app
store to open the RDP file.
After you have accessed the ElastiCube Manager, you can open and modify your
settings as needed.
Troubleshooting
The flow for connecting the Sisense backend through a Sisense proxy is as
follows:
1. Connect to the VPN. See the steps below for instructions on how to connect to
the VPN from a Mac or in Windows.
2. Use the remote desktop connection to connect to the proxy server.
3. Log in to the proxy server where you can use the FTP and RDWeb application.
Connect to the VPN
For Mac:
Open the Terminal as an Administrator and run this command:
sudo chmod 776 /Users
Uninstall any old Java versions from your computer, and download and install
the latest Java SE Development Kit (JDK).
Ensure that Safari is not blocking popups by clicking Safari > Preferences
then navigate to the Websites tab. Select Pop-up Windows and then set
the site to Allow.
After this is installed you should see Connected under the Status line.
Windows VPN
Download the Check Point Capsule VPN from the Microsoft Store.
Extract and install the Check Point Capsule VPN.
Create the VPN connection profile by going into your Network Settings and
adding a new VPN connection:
VPN Provider: CheckPoint Capsule VPN
Server name: nydcvpn.sisense.com
User Name and Password: Enter your user name and password.
Connect to the VPN you created.
Transferring Files to Sisense
Cloud
After you have opened the relevant ports, you can transfer files to the Sisense
Server using an FTP site.
The types of files that you need to transfer are static data files, custom
connectors, and plugins.
Sisense shares the following folders on the FTP site:
C:\Customer Data: This folder is used mainly for uploading Excel and CSV
files that you want to import into the ElastiCube.
C:\Program
Files\Sisense\DataConnectors\DotNetContainer\Connectors: This
folder is used to add and manage REST Connectors.
C:\Program Files\Sisense\DataConnectors\JVMContainer: This folder
contains XML files responsible for connecting to web-based data sources,
such as Facebook.
C:\program files\Sisense\app\plugins: This folder contains your web
plugins and add-ons.
C:\program files\Sisense\app\Resources: This folder contains
rebranding files and additional images to be displayed in your Sisense
application.
C:\Program Files\Sisense\Prism\Server\Plugins: This folder contains
Pre and Post plugins for the ElastiCube Manager.
C:\program files\Sisense\app\galaxy-
service\src\features\emails\templates: This folder contains
automated emails sent to your users from Sisense, for example, when you
create an account for a user. See Rebranding Sisense Automated Emails for
more information. If you are making a change in this folder, notify your
Cloud administrator so changes can be tracked to prevent any problems
when upgrading Sisense.
The following is an example of how to connect with FileZilla:
Enter the following information and click Quickconnect:
Host: Your domain name for the Sisense Machine. For example
mysite.sisense.com
Username: Your cloud user name, for example cloud\user.
Password: Your cloud password.
Port: The port, typically, 990.
Drag and drop the file from your File Explorer or Finder.
For plugins, you need to download them locally, unzip them, and move the
unzipped folder into PrismWeb_plugins FTP directory.
Uploading CSV and Excel Files
When uploading CSV or Excel files to the Customer Data FTP directory, how you
access this folder from the desktop ElastiCube Manager differs from the Sisense
Web Application. The instructions for both are provided below.
Desktop ElastiCube Manager
Click Add Data in the top menu of Sisense.
Under the Files category select Microsoft Excel File.
Select Server Access to define the location of your files on the Sisense
Server. If your Excel files frequently change, or you have scheduled builds,
you should place your files on your server as the data is taken from the
Excel files each time the ElastiCube is built.
Note: To use this option, you must have remote access to the server.
Select Input Folder Path and enter the full file path with the file name
where your Excel files are located. This will display each Excel file in the
folder in the next screen where you select what tables to add to the
ElastiCube.
OR
Select Input File Path and enter the full file path with the file name and its
extension of your Excel file. For example, C:\Example.xlsx. This file display
all the tables in the Excel file on the next screen where you select what
tables to add to the ElastiCube.
If you need to access any other folder or are having issues connecting and using
the application, submit a ticket through Support.sisense.com.
Restarting Sisense Services
There may be scenarios where you need to restart or stop a service on the
Sisense Server. You can reset the Sisense services through the following site:
https://mysite.sisense.com:8444
Note: Your firewall must allow traffic to the Sisense machine on port 8444.
To restart a Sisense service:
Open your Restart Service page at the following address:
https://mysite.sisense.com:8444, where mysite is your domain.
Enter your cloud user name without the cloud\ domain in the beginning. For
example, if its cloud\username enter just username.
Enter the cloud password.
To restart a service, click Restart and wait for 30 seconds.
Sisense BloX 2.0 includes major infrastructure changes. These changes will affect
how your Sienese BloX widgets from earlier versions are displayed.
Sisense encourages you to upgrade to the latest version of Sisense BloX as this
version provides more flexibility, allowing you to customize every element in
your widgets.
The following are a list of breaking changes that you can expect when upgrading
to the latest version of Sisense BloX:
Styling and layout changes. You should verify that the styling of your Sisense
BloX widgets works as expected
The value of <style> is no longer a string and should now include CSS
Values of attributes are now case-sensitive
Conditional formatting includes a max value
JumpToDashboard and lightboxes are not supported with SisenseJS
If you have an earlier version of Sisense BloX or want to install an earlier version,
you can find the documentation here.
Sisense’s BloX lets you create dynamic, rich widgets that can turn your
dashboard into an interactive business app. BloX are JSON objects rendered as
HTML inside widgets on your dashboard. The idea behind Sisense BloX is to
allow you to create dynamic and interactive content in your widgets, thus
allowing you to gather insights and take immediate action from within your
widget or dashboard. For example, you can create widgets that visualize an
important KPI, while also displaying buttons that allow you to push a webhook to
take an action you define.
Sisense BloX offers much more than just a customizable design. With Sisense
BloX, you can:
Add images to your widget
Embed iFrames
Add custom scripts
Organize your content in containers and columns
Add multiple types of actions
Collect input from your users
Who Should Try This
Sisense BloX are JSON objects that render HTML and CSS. Therefore, to create
your own interactive BloX, you should have a basic understanding of how JSON
works, and have knowledge of HTML and CSS.
The following pages will show you how you can create interactive dashboards
with Sisense BloX:
Tutorials
Installing Sisense BloX
How Sisense BloX Works
Creating Interactive Dashboards
Customizing Your BloX Widget's Look and Feel
Embedding BloX Widgets
Sisense BloX Reference
Limitations
Sisense BloX requires Sisense V7.2 or later
If you have users using Internet Explorer or if you need to export Sisense
BloX to PDF, use JS ES5 rather than ES6 in your custom actions as well as IE-
compliant CSS syntax
BloX responsiveness is limited, meaning the sizes will be adjusted with
background image size or the original widget size, but have some
compatibility limitation due to the Sisense overall grid. You should test your
BloX widgets in different screen sizes
Images from an external source may not load properly in the Excel or
PDF reports. See Adding Images for information on how to load images
locally.
BloX are not compatible with Amazon's Echo. This will be available in a future
release
If you use the Custom-Style Plugin, this will overwrite the conditional color of
BloX
Items and values are limited to 20 panels each
List view ( Carousel: false) is limited to 100 first items
Sisense BloX v1.1 does not support any native Sisense visualization
Once BloX is installed, refresh plugin list on the Admin page to see it
displayed
Base64 as an image will cause the widget to load slowly
BloX for Mobile
BloX responsiveness is limited. For optimal view, Sisense suggests you design
widgets for desktop or widgets for mobile,
Mobile best practice:
Choose images that can fit mobile screens or keep the background as a color
Keep all text below 10 font size
Make a clear Call-to-action to be displayed on the center
Limit your items into 1 column and no more than 5 different text/data
elements
Limit all icons to Small
Social feed template is not supported
Click here for Terms and Conditions.
Installing Sisense BloX
Download and install Sisense BloX 2.1.0. If you want to install an earlier
version, you can find the documentation here. Once the installation is
complete, the BloX widget is added to your list of widgets.
Note: If Sisense BloX does not appear in your list of plugins, in Windows,
restart the Sisense.Plugins service.
Installation in Multi-Node Environments
Layout: Displays the current state of your visualization as defined in the BloX
Editor and Configuration Editor.
Filters: Add dashboard and widget filters to your Sisense BloX widgets. For
more information about filters, see Creating Widget Filters and Creating
Dashboard Filters.
Templates: Contains a list of predefined templates Sisense has designed that
you can edit to fit your use case. The easiest way to design BloX widgets is
to choose the template closest to your use case and modify it. However, you
can create one by deleting the content from the editor and using the code
snippets to create your own templates. After you create a template, they can
be exported and imported.
Editor: Contains the HTML JSON objects that determine the content of your
BloX, including text and interactive actions such as buttons. This is where
you provide the content of your BloX and describe what actions your BloX
can do. See Creating Interactive Dashboards for more information.
Configuration Editor: Contains CSS JSON objects that determine the look
and feel of your cards. See Customizing Your BloX Widget's Look and Feel
for more information.
Snippets: Contains predefined code snippets for BloX elements that you can
copy into the editor to add those elements to your widget.
From the BloX Design Panel, you can create your own cards by customizing
predefined templates created by Sisense or by creating your own templates
from scratch.
Actions: Contains predefined code samples for creating actions. You can
create your own actions as well.
Creating Interactive
Dashboards
While you can continue using Sisense's default widgets in your BloX dashboard,
the real value of BloX is turning your dashboard into an interactive business app.
The typical work flow for creating BloX widgets is to take a pre-made template,
and then modify it by adding content, snippets, and actions. After you have
finished modifying the template, you can save it and start creating new widgets
from it.
The sections below explain how you can use in Sisense BloX to transform your
dashboard.
BloX Widgets: Describes how to build BloX widgets
Templates: Describes how to modify and create templates
Adding Content to Widgets: Describes how to add content to your widgets
using snippets and actions.
If you haven't already, you may want to review the tutorials for more
information.
BloX Widgets
Interactive dashboards in Sisense consist of BloX widgets. In the Editor, you
define the content of your BloX widgets.
BloX widgets are built on schemas that have the following basic structure:
Body: The body of your BloX is made up of building-blocks known as
elements. Elements can be composed in a variety of arrangements to create
many types of BloX.
Actions: Many BloX have a set of actions that you can take. This property
describes the actions that typically get rendered in an "action button" at the
bottom of your widget.
The example below illustrates the JSON structure common to all BloX:
{
"style": "",
"script": "",
"title": "",
"body": [
{
"type": "TextBlock",
"text": "This is my Sisense
InfoCard"
},
{
"type": "Image",
"Url":
"https://cdn.sisense.com/dotcom/images/sisense-
logo.png"
}
]
}
At the top are two keys, style and script, for adding your own JavaScript and CSS
if you want to use custom classes in your BloX widgets.
Below is the body element that behaves just as a body element does in a typical
web page. Within the body element, each element has a type property that
determines what type of object it is. In the example above, there are two
elements; a TextBlock and an Image:
TextBlock: Adds a block of text with properties to control what the text
looks like.
Image: Adds an image with properties to control what the image looks like.
As in web pages, in BloX widgets, every element stacks vertically and expands to
the width of its parent. You can use snippets like containers, columns, and
column sets to add multiple elements side-by-side. Containers act as HTML divs
where you can define a collection of elements. Column Sets contain columns.
Within a Column Set, each column can be placed next to another column to allow
you to add multiple elements on the same row instead of stacking them one on
top of the other.
Other elements you may use are Input and Action elements for collecting and
submitting data. These elements and more are described in the Reference page.
You can build a widget based on this structure, but each template pre-defined by
Sisense already uses this structure, so Sisense recommends using these
templates and modifying them for your use case.
Templates
In the right corner of the BloX Design Panel, under the Design tab you can see
your templates.
Templates are created by Sisense, but you can modify these to create your own
templates. Templates are pre-built widgets with content and actions.
The easiest way to work with Sisense BloX is to modify templates that are the
closest to your use case. After selecting a template, the Layout, Editor, and
Configuration Editor are updated with the content of your template. In the
Editor, you can add the content that is displayed in your widget. You can create
this yourself as described in the BloX Widgets section, however, it is much easier
to use snippets and actions to modify them as describe in sectionsSnippets and
Actions.
The procedures below describe how to save your templates after editing them
and import and export them.
Saving Templates
From the menu in the right corner of the editor you have two options for saving
templates:
Save Changes: Saves your changes to the current template you are working on.
Save As New Template: Saves your changes in a new template. If you select this
option you are prompted to enter a name for the template. The template is then
added to your list of templates above.
Exporting Templates
You can export your templates and import them later or share them with other
Sisense users so they can add them to their dashboards. Templates are exported
as JSON files that include the content under the Editor and Configuration tabs
(HTML and CSS).
To export a template,
In the BloX Design Panel, click the download icon and select Export
Template.
You are them prompted to download the JSON file that represents your
template.
Importing Templates
You can import templates (JSON files) that you have exported or that you
downloaded.
To import a template:
In the BloX Design Panel, click the menu and select Import Template.
If you no longer need a template, you can delete it. Before deleting a template,
you may want to export it in case you need to use it in the future.
To delete a template:
In the BloX Design Panel, click the menu and select Delete Template. The
template is removed and no longer visible in the BloX Design Panel.
{
"title": "BloX",
"showCarousel": true,
"backgroundImage": "",
"body":
[
{ "type": "Container",
"items":
[
{
"type": "TextBlock",
"text": "This is my Sisense BloX
Card"
}
]
}
]
}
From this basic snippet, more snippets can be copied and pasted into the BloX
Editor and then modified according to your needs.
For example, the TextBlock snippet can be added to your template to add a text
object. You can then modify the snippet as required to fit the style of the rest of
your BloX.
{
"type": "TextBlock",
"text": "{panel:Date}",
"spacing": "medium",
"horizontalAlignment": "center",
"color": "default",
"size": "medium",
"weight": "light",
"lineColor": "#414241
}
It’s important to remember that snippets are JSON objects that while they can be
added anywhere to your template, they must not break the structure of the
template. For example, if you add the text block snippet shown above to an
existing template, you need to add a comma to the previous object, as you would
in any JSON file:
{
"type": "TextBlock",
"size": "light",
"weight": "light",
"horizontalAlignment": "center",
"spacing": "medium",
"color": "default",
"text": "{panel:Google} views
},
{
"type": "TextBlock",
"text": "{panel:Date}",
"spacing": "medium",
"horizontalAlignment": "center",
"color": "default",
"size": "medium",
"weight": "light",
"linAdding Text
Text blocks display text in your widget and give you a way to provide context to
your users.
{
"type": "TextBlock",
"text": "{panel:Date}"
}
You can add actions to your widgets. Sisense supports a variety of actions such as
applying filters to a dashboard or submitting a form through a webhook. You can
read more about supported actions here.
You can create your own custom actions. Actions that you create consist of
custom JavaScript you provide, see Creating Custom Actions for more
information. In addition, you can leverage Sisense's JavaScript API for adding
more functionality to your dashboards.
Once you create an action, its added to your code snippets where Designers can
add the action to their widgets.
To create -your own actions:
Open a BloX widget.
In the Editor, open the menu and select Create Action.
After the action has been added, you can open its menu to edit or delete the
action.
Adding Images
Images are useful for providing context or for branding your dashboard. Like
Text blocks, images have their own element, as shown in the snippet below.
{
"type": "Image",
"url": "/plugins/BloX/blox-
images/ConditionalCard/green_boto_bg.png",
"size": "auto"
}
There are two options for hosting images, internally on the Sisense Server or
externally. If you host the images externally, the value of "url" is the full external
address of the image.
When exporting your dashboard as a PDF or image, images hosted externally
may not be displayed properly in your report. You can host images locally on
your Sisense Server in the /resources/ directory located at C:\Program
Files\Sisense\app\resources. Images hosted here will be displayed
properly in your dashboard and when exported to your reports. You can refer to
this images with a shortcut as shown below:
"url": "/resources/sample.png",
If you want to use as a background image, you can do so by defining the URL of
backgroundImage:
"backgroundImage":
"https://s3.amazonaws.com/sisenseblox/Sample+-
+SenseBUZZ+/Background+Imags/Header.png",
However, the background image will only cover up to the title area in your
widget. If you want to display a background image that covers the title area of
your widget as well, set display to "none".
"titleStyle": [
{
"display": "none"
}
],
url string Yes The URL to the image. To add your own images
to BloX directly from the Sisense Server, you
can upload them to
C:\Program Files\Sisense\app\resources and
insert them in BloX by referring to the
/resources/ directory.
"backgroundImage": "/resources/sample.png",
Sparklines allow you to add a tiny simple graph over a widget that conveys the
basic shape of your data in a meaningful, but compact way. Sparklines are useful
for showing trends in your data.
You can add sparklines to any BloX widget by defining the values of the
sparkline.
{
"type": "TextBlock",
"text": "<span class='sparklines'
width='200' height='50' lineWidth='3' fillColor=''
minSpotColor='#000' maxSpotColor='#000'
sparkType='line' Color='#000'>{spark:Data}</span>
}
title string Yes Span with the class 'sparklines' that defines
the dimensions and values of your
sparkline. You can use a placeholder as the
values of your sparkline, {spark:Data}, or
enter each value hardcoded separated by a
comma, 3, 15, 32, 75.
Embedding iFrames
You can embed iFrames into your widgets. This is useful for display websites,
social media feeds, or streaming videos. To display content in an iFrame, you add
a Text block with the value of the text field the URL you want to display in an
iFrame element.
Note: Each attributes included in the value of iframe src must be wrapped
with single quotation marks 'x'. See the example below for more information.
"type": "TextBlock",
"text": "<iframe
src='https://www.facebook.com/plugins/page.php?href=htt
ps%3A%2F%2Fwww.facebook.com%2Fsisense&tabs=timeline&wid
th=500&height=600&small_header=true&adapt_container_wid
th=true&hide_cover=false&show_facepile=true&appId=22667
5974333047' width='500' height='600'
style='border:none;overflow:hidden' scrolling='no'
frameborder='0' allowTransparency='true'
allow='encrypted-media'></iframe>"
text string Yes The URL of the iFrame you want to open.
Adding Carousels
In many cases, there is more than one item in the result set. If you want to show
them all, you can display them as a list as shown below:
{
"title": "Multi Purpose Card",
"showCarousel": true,
"panels": [
{
In addition, you can modify the amount of time it takes to cycle between values in
your carousel with the Carousel Animation object or whether or not to display
arrows. The default speed is 500 milliseconds. You can increase or decrease by
adding the Carousel Animation snippet and changing the value of delay as
needed.
To hide the carousel arrows, set the boolean “showButtons” to false.
{
"title": "BloX",
"showCarousel": true,
"carouselAnimation": {
"delay": 500,
"showButtons": true
},
}
Using Conditionals
Conditionals allow you to create thresholds that trigger events in your widgets
when met. In the example below, the background color is set to gold when the
placeholder {panel:Total Revenue} is greater than 1000.
{
"title": "BloX",
"showCarousel": true,
"conditions": [
{
"minRange": "-Infinity",
"maxRange": 1000,
"backgroundColor": "#fd6e69",
"image":
"https://image.ibb.co/d5vPpe/red_boto_bg.png"
},
{
"minRange": 1000,
"maxRange": 10000,
"backgroundColor": "#ffcb05",
"image":
"https://image.ibb.co/dNuvvK/yellow_boto_bg.png"
},
{
"minRange": 10000,
"maxRange": "Infinity",
"backgroundColor": "#3adcca",
"image":
"https://image.ibb.co/bY68FK/green_boto_bg.png"
}
],
],
There are two steps to implementing conditionals. The first step is to add the
condition_data class to an object. In the Conditional Formatting Target snippet,
you can see several examples like the one below. In this example, the
condition_data class has been added to a TextBlock. The condition is triggered by
the value of "text" in this case, a dynamic value taken from the dashboard panel.
{
"type": "TextBlock",
"class": "condition_data",
"text": "{panel:Data}"
},
The second step is to define what is the condition that must be met to trigger an
action, and its results. Sisense supports two types of conditions, numeric and
strings.
Numeric Conditions
Numeric conditions include a range of numbers. In the Conditional Range
snippet, the min and max ranges are defined and what happens when the value
of the Conditional Formatting Target reaches a certain number. In the example
above, if Total Revenue ("text": "{panel:Total Revenue}") equals 1000 or less,
then a red background image is displayed.
There are two types of values you can enter, integers, such as 10, 20, 30 etc. or
percentages, such as 20%, 30%, 40%, etc. For integers, simply add the value. If
you choose to enter a percentage, add the value as a decimal, for example, the
value .2 represents 20% in your widget.
Note: For the best results, your min and max range should be continuous. For
example, for negative conditions, set your minRange to "-Infinity" and your
maxRange to 0. For neutral conditions, set minRange to 0 and maxRange to 10,
and for positive conditions, minRange 10 and maxRange "Infinity". You can set
the values as you like, but ideally, all the ranges of all conditions should create a
continuous range with no gaps and no overlaps.
String Conditions
In addition, you can define strings that also trigger events. For example, in the
Conditional Text snippet, you can redefine how your widget appears when
“textEquals” equals a string you define as shown in the sample below, “Blox”. The
results of the action are then defined below in the same object. The important
thing to remember is that the value must be a string and placed within quotes “ “.
{
"conditions": [
{
"textEquals": "Blox",
"backgroundColor": "",
"hide": false,
"fontSize": "",
"fontWeight": "",
"color": "",
"image": ""
},
]
}
Customizing Your BloX
Widget's Look and Feel
You can customize the look and feel of your Sisense BloX widgets. The look and
feel of your templates are defined in the Configuration Editor. In addition, you
can customize any element in your widgets by adding the <style> key and using
inline CSS as the value of the <style> key. Both methods are described below.
Configuration Editor
The Configuration Editor contains a JSON structure that renders the key:value
pairs as CSS in your card. From the Configuration Editor, you can define the look
and feel of your template.
Each template has its own JSON structure and elements. Some of these elements
can be referenced from the Card Editor, but most can be set in the Configuration
Editor.
For example, the color key inside the Card Editor of the multiple_indicators card
refers to the “attention” object. This object defines the font color of the text
displayed in the card and is located in the Configuration Editor.
Layout Editor
"type": "Column",
"items": [
{
"type": "TextBlock",
"spacing": "small",
"text": "42%",
"color": "attention",
"size": "extralarge",
"horizontalAlignment": "center",
"weight": "bolder"
},
Configuration Editor
},
"emphasis": {
"foregroundColors": {
"default": {
"normal": "#333333",
"subtle": "#EE333333"
},
"accent": {
"normal": "#2E89FC",
"subtle": "#882E89FC"
},
"good": {
"normal": "#54a254",
"subtle": "#DD54a254"
},
"warning": {
"normal": "#e69500",
"subtle": "#DDe69500"
},
"attention": {
"normal": "#cc3300",
"subtle": "#DDcc3300"
}
},
"backgroundColor": "#08000000"
}
},
You can modify the hex values of these colors in the Configuration Editor, or
remove the reference in the BloX Editor and define your own colors specific for
each element, such as TextBlocks.
Another example is redefining the background color of your BloX. The following
is an example taken from the ‘Sparkline’ template:
The ‘Sparkline’ template has a white background color by default. You can
change this to yellow by modifying the value of the backgroundColor key.
"backgroundColor": "#FFFFFF"
To
"backgroundColor": "yellow"
The Configuration Editor provides most of the CSS you need to redefine your
BloX, but with Sisense BloX, you have complete freedom to customize the look
and feel to meet your use-case using custom CSS written in JSON key:value pairs.
Customizing Elements
For each element in your Sisense BloX widgets, you can customize the look and
feel by adding the <style> key with some inline CSS as the value. This is useful if
you want to specify custom styling that is distinct from the rest of your template
or dashboard.
The example below shows a text block that has been customized through the
<style> key:
"body": [
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "❤️️ Welcome to BloX ❤️️ ",
"style": {
"text-align": "center",
"font-weight": "bold",
"font-size": "24px",
"margin": "100px"
}
}
]
}
],
Embedding BloX Widgets
After you have created a BloX widget, you can embed the widget directly into
your dashboard, website, or application.
Sisense provides three easy ways to embed a BloX widget, through an iFrame,
QR code, or direct URL.
To generate the code to embed a BloX Widget:
Open the widget you want to embed in the BloX editor.
Click the download icon.
Select how you want to embed your BloX widget, iFrame, QR code, or direct
URL.
After you select the relevant option, the code is displayed for you to copy
Sisense BloX Reference
The following tables describe the properties for the JSON objects that are used or
can be used in the Sisense BloX.
Snippets
Containers
Blox Main
Card schema for BloX.
Property Type Required Description
Sparkline Charts
Sparklines allow you to add a tiny simple graph over a widget that conveys the
basic shape of your data in a meaningful, but compact way. Sparklines are useful
for showing trends in your data.
You can add sparklines to any BloX widget by defining the values of the
sparkline.
Property Type Required Description
class object No
text object Yes Span with the class 'sparklines' that defines
the dimensions and values of your
sparkline. You can use a placeholder as the
values of your sparkline, {spark:Data}, or
enter each value hardcoded separated by a
comma, 3, 15, 32, 75.
iFrame
You can embed iFrames into your widgets. This is useful for display websites,
social media feeds, or streaming videos. To display content in an iFrame, you add
a Text block with the value of the text field the URL you want to display in an
iFrame element.
Note: Each attributes included in the value of iframe src must be wrapped with
single quotation marks 'x'. See the example below for more information.
Property Type Required Description
Property Type Required Description
text string Yes The URL of the iFrame you want to open.
Image
The Image Item allows for the inclusion of images in BloX.
Property Type Required Description
class string No
Additional Properties
horizontalAlignment string No Controls how Items are horizontally
positioned within their container.
class string No
Additional Properties
color string No Controls the color of TextBlock
Items.
separator boolean No, default: The Separator object type describes the look
false and feel of a separation line between two
elements.
Fact
Describes a Fact in a FactSet as a key/value pair.
Property Type Required Description
class string No
Additional Properties
color string No Controls the color of TextBlock
Items.
use.
Text Input
Input.Text collects text from the user.
Property Type Required Description
class string No
Additional Properties
isMultiline boolean No Do you want to allow multiple lines of
input.
separator boolean No, default: The Separator object type describes the
false look and feel of a separation line between
two elements.
Date Input
Input.Date collects a date from the user.
Property Type Required Description
class string No
Additional Properties
max string No Hint of maximum value expressed in ISO-
8601 format (may be ignored by some
clients).
separator boolean No, default: The Separator object type describes the
false look and feel of a separation line between
two elements.
Time Input
Input.Time collects the time from the user.
Property Type Required Description
Additional Properties
max string No Hint of maximum value expressed in ISO-
8601 format (may be ignored by some
clients).
separator boolean No, default: The Separator object type describes the
false look and feel of a separation line between
two elements.
Number Input
Input.Number collects a number from the user.
Property Type Required Description
class string No
Additional Properties
max number No Hint of maximum value (may
be ignored by some clients).
class string No
Property Type Required Description
Additional Properties
isMultiSelect boolean No, default: Allow multiple choices to be
false selected.
class string No
Additional Properties
isMultiSelect boolean No, default: Allow multiple choices to be
false selected.
class string No
Additional Properties
isMultiSelect boolean No, default: Allow multiple choices to be
false selected.
{
"type": "Input.ChoiceSet",
"id": "selectVal",
"class": "",
"displayType": "compact",
"value": "1",
"choices": "{choices:Category,Id}"
}
For example, if your Items display Brand as a list of strings, these can be
displayed in a dropdown by changing the value of “choices” to “{choices:Brand}”
where Brand equals the title of the options to be displayed.
While a dropdown list is the default option for the Dynamic Inputs snippet, you
can use the same functionality for radio buttons and checkboxes.
For example, by changing the value of choices in the Checkbox or Radio Button
snippets from an array to a string, you can display input options based on your
data.
{
"type": "Input.ChoiceSet",
"id": "checkboxVal",
"class": "",
"layout": "vertical",
"isMultiSelect": true,
"value": "1,3",
"choices": "{choices:Brand}"
}
Toggle
Property Type Required Description
id string Yes
class string No
Additional Properties
items array No Connection to metadata item.
id string Yes
class string No
Additional Properties
items array No Connection to metadata item.
{
"type": "ActionSet",
"actions": [
{
"type": "Action.OpenUrl",
"action": "lightbox",
"title": "Share",
"url": "http://www.sisense.com"
}
]
}
The snippets in this section can be applied to elements to add actions to them.
For example, you can convert images into clickable elements with the Clickable
Elements snippets.
Action Buttons
Button
You can create a button with the Action Section that when clicked, triggers an
action.
{
"type": "Action.OpenUrl",
"title": "View in SalesForce",
"url":
"https://sisense.salesforce.com/{panel:Id}"
}
{
"type": "Action.OpenUrl",
"title": "View in SalesForce",
"url":
"https://sisense.salesforce.com/{panel:Id}"
}
{
"type": "Action.OpenUrl",
"title": "View in SalesForce",
"url":
"https://sisense.salesforce.com/{panel:Id}"
}
Open URL
When Action.OpenUrl is invoked, a URL you define is opened in your browser.
{
"type": "Action.OpenUrl",
"title": "View in SalesForce",
"url":
"https://sisense.salesforce.com/{panel:Id}"
}
{
"type": "Action.OpenUrl",
"action": "lightbox",
"title": "View in SalesForce",
"url":
"https://sisense.salesforce.com/{panel:Id}"
}
{
"type": "Action.Submit",
"action": "post",
"title": "Submit",
"data": {"id": "007007"}
"url":
"https://hooks.zapier.com/hooks/catch/171572/kay5ad/
}
‘hidden’ properties.
url string Yes The URL where the data is to be sent to.
BloX Popup
Action.ShowCard defines an inline BloX that is shown to the user when it is
clicked.
{
"type": "Action.ShowCard",
"title": "ShowCard",
"card": {
"showCarousel": true,
"backgroundImage": "",
"body": []
}
}
{
"type": "Filters",
"title": "{{category.text}}",
"data": {
"filters": [
{
"panelName": "Category",
"filterJaql": {
"explicit": true,
"members": [
"{{category.value}}"
]
}
}
]
}
}
s"
panelNa string Yes Name of the filter as its displayed in the Panel.
me
{
"type": "Filters",
"title": "Filter (by Dimension)",
"data": {
"filters": [
{
"filterJaql": {
"last": {
"count": 1,
"offset": 0
}
},
"dim": {
"title": "Year",
"table": "Lead Generation",
"column": "Date",
"datatype": "datetime",
"level": "Years"
}
},
}
{
"type": "JTD",
"title": "Jump To Dashboard",
"data": {
"dashboardId": "",
"panelsToInclude": [
{
"panel": "Category",
"value": "{{category.text}}"
}
],
"args": {
"displayDashboardsPane": false,
"displayFilterPane": true
}
}
}
dashboardI strin Yes The ID of the dashboard found at the end of the URL of
d g your dashboard. For example,
http://localhost:8081/app/main#/dashboards/5818
4c2f295b2b342b000023 - the set of characters after
the last ' / ' is your Dashboard ID.
panelsToInc obje No Enter the any panels you want to add to your
lude ct dashboard when it is opened.
Sisense Owner ID The email address of the owner of the Sisense account.
Sisense-Related Information
Name Description
Action The type of action performed by the user, for example: openURl,
LightBox, Post API etc.
Area The area of the application the action is related to, for example: Setup,
Dashboard View, widget
Feature The name of the feature being used, for example: Plugin Admin, Dev to
Production, Pulse, Export to Excel.
Note: The action log does not include licensee data, and does not attribute
actions to identifiable users.
Logs
Parameter Description
Event Log Record when an error occurred, in which application, and the error
message. The error messages within the event logs may contain
information such as IP address, and ElastiCube, dashboard, or
widget names.
Sisense BloX Tutorials
The following tutorials describe how to create an interactive dashboard that
includes features such as embedded iFrames, action buttons for submitting data,
and carousels for comparing products.
Introduction
Installing BloX
Creating Banners
Using Columns
Designing BloX Widgets
Adding Sparklines and Action Buttons
Embedding iFrames
Adding Carousals
Adding Forms
Embedding Social Media Feeds
Using Conditionals
Using Webhooks
Exporting and Importing BloX Templates
Saving and Deleting BloX Templates
Creating Actions
Embedding BloX Widgets
BloX 2.0 Course
This course includes an updated use case relevant for BloX 2 features.
At the end of the course, you will be familiar with new capabilities such as inline
styling, custom actions, template sharing, integrating QR codes and much more.
Part 1 - Introduction and Warehouse Employee Solution
Part 2 - Supply Chain Manager Solution
Sisense Boto
Sisense Boto™ Terms of Use
Sisense Boto™ is an experimental product of Sisense Ltd. (collectively with its
affiliates, “Sisense” “we“, “our” or “us“) created to give the members of the public
(“you”) free access to powerful Artificial Intelligence analytics on big datasets.
Sisense does not offer any support for Sisense Boto. Any questions or issues may
be directed to discussion forums on the Sisense website. Sisense does not
guarantee that Sisense Boto will remain available in the future and may modify
or remove it at any time.
By using Sisense Boto, you agree to comply with these Terms of Use.
Sisense Boto and the Documentation pertaining to it are provided “as-is” without
warranty of any kind. Sisense and its licensors and suppliers disclaim all express,
implied or statutory warranties, including without limitation any implied
warranties of title, non-infringement of third party rights, merchantability, or
fitness for a particular purpose to the extent permitted under applicable law. You
alone bear the entire risk arising out of the use of Sisense Boto. We specifically
disclaim any liability for your use of or reliance upon any results or outputs of
Sisense Boto. We do not guarantee Sisense Boto will produce results or output
for all data inputs. In no event shall Sisense or its directors, officers,
employees, shareholders, subsidiaries, affiliates, agents, or licensors be
liable for any damages arising out of or related to the use, inability to
use, performance, or nonperformance of Sisense Boto except to the
extent such liability may not be disclaimed under applicable law.
Sisense reserves the right to limit your access or block you from using Sisense
Boto at its discretion if you violate these Terms of Use or abuse the service.
Accessing Sisense Boto
Sisense Boto may be accessed through: (i) the web interface or (ii) through bots
running on platforms such as Facebook Messenger, Skype, and Slack.
Sisense Boto may only be used by a natural human using the interfaces or bots
provided by Sisense. Any attempt to use a script, bot, other interface, or any
other automated or manual means to circumvent the interfaces or bots or
repeatedly accessing Sisense Boto could damage or overload the system and is
strictly forbidden. You may not frame or embed the Sisense Boto interfaces or
bots in any other website or interface nor may you modify Sisense Boto in any
way. Sisense may terminate access to Sisense Boto by anyone who jeopardizes
the availability or integrity of our system.
Accessing Sisense Boto through bots
If you access Sisense Boto through bots on another platform, your use is subject
to the terms of use of those platforms in addition to these Terms of Use. Please
refer to and comply with the terms of use on such websites.
Sisense Boto bots may be used to connect to a Sisense Server software for which
you have an active license. Alternatively, you can upload your data as a .csv file
through the Sisense Boto web interface or bot.
If you use the Sisense Boto bots with your licensed Sisense Server software, your
use of the Sisense Server software is governed by the license agreement between
you and Sisense (the “License Agreement”). However, none of the
representations, warranties or indemnities provided by Sisense in the License
Agreement shall apply to Sisense Boto or the bots. For purposes of the limitation
of liability provisions of the License Agreement, Sisense Boto is not provided
under the terms of a Sales Order and no amount has been paid or is payable to
Sisense in connection with the Sisense Boto or the bots.
Uploading your data to Sisense Boto
You may upload your data to Sisense Boto and copy and use the outputs of the
Sisense Boto for noncommercial purposes only, subject to these Terms of Use.
Uploaded data is limited to a single .csv file of 10Mb or smaller at a time.
Ownership of your input data
By uploading data or inputting data into Sisense Boto, you warrant and represent
that you have all the rights and authority to use the data with Sisense Boto. You
further grant Sisense a worldwide irrevocable license to store, copy, analyze, and
generate the results from the data that we return to you. We may also use your
inputs in accordance with the Privacy Policy below.
Children
You must be 13 or older (or whatever age your local jurisdiction requires for
providing your data without parental consent, whichever is older) to use Sisense
Boto. Sisense will block you from using Sisense Boto if we discover you are under
age.
Use Restrictions
Sisense Boto is intended to be used solely for lawful purposes. Sisense does not
screen or review the inputs or the data you use with Sisense Boto. You are solely
responsible for ensuring that your use of Sisense Boto complies with all
applicable laws, regulations, and rules that apply to you or your data and does
not violate any third party rights.
You may not use Sisense Boto to:
attempt to reverse engineer Sisense Boto or use data inputs or queries to
discover the algorithms or technologies underlying Sisense Boto.
attempt to circumvent any security protections, probe for any vulnerabilities,
penetrate, or otherwise violate the security of the system or tamper, interfere, or
disrupt networks or systems.
defame, abuse, harass, or otherwise violate the rights of privacy and publicity of
others;
share inappropriate content, advertising, spam, spyware or malware;
infringe upon the rights of others.
You may not input into Sisense Boto personally identifiable data of others,
protected health information (PHI), payment card information, personal finance
information, export-controlled data, or any other data that is subject to any laws,
regulations, industry standards, or contractual obligations that restrict the use or
onward transfer of the data or require the recipient to protect the data in any
way that is inconsistent with use of Sisense Boto under these Terms of Use.
Export Restrictions
You represent and warrant that you are not located in and will not export or re-
export, either directly or indirectly, Sisense Boto to any country or entity under
United States restrictions or to any country or entity subject to trade sanctions.
Sisense Boto Privacy Policy
When you interact with Sisense Boto through bots, Sisense collects your chat
address (the name or other identifier you use on the platform) only as long as
you keep Sisense Boto in your contact list on the platform you use. If you delete
Sisense Boto from your contact list, the chat record is deleted as well and Sisense
does not retain a copy of the chat.
When you connect your own Sisense Server software to the Sisense Boto bots,
the data on your Sisense Server isn’t disclosed to Sisense. However, outputs of
the data are retained with the chat record which is visible to Sisense as long as
you keep Sisense Boto in your contact list on the platform you use. You can delete
your data and the chat record by removing the Sisense Boto bot from your
contact list.
When you upload your data to Sisense Boto (as a .csv file or otherwise)
(“uploaded data”), Sisense does not keep such data longer than 48 hours. The
outputs and analysis results of the uploaded data are retained by Sisense as part
of the chat dialogue only while the session remains active. The chat dialogue is
deleted when you close the browser window or tab you used to access Sisense
Boto.
How we may use your data and inputs
We will not disclose, sell, or provide your information to third parties, except in
the following circumstances:
To operate Sisense Boto and provide you the results of the analysis.
To test and improve the performance of Sisense Boto, study usage patterns, and
develop other Sisense products. We may compile information and generate
reports related to our users’ use of Sisense Boto, and may share aggregated
statistical information with third parties.
If the information is required by law, we will share information in response to
legal process, court orders, subpoenas, or to establish or exercise our legal rights
or defend against legal claims;
Information collected from users of Sisense Boto could be transferred as part of
or in connection with a corporate merger, consolidation, restructuring, the sale
of substantially all of Sisense’s stock and/or assets relating to Sisense Boto or
Sisense’s business or other corporate change, including during the course of any
due diligence process.
If you use Sisense Boto, we may contact you to interest you in learning more
about our products and services, send you surveys, or seek user feedback.
General
Sisense may revise these Sisense Boto Terms of Use at any time by updating this
posting. You should visit this page from time to time to review the current Terms
of Use.
Any claim relating to Sisense Boto will be governed by and interpreted in
accordance with the laws of the State of Israel, without reference to its conflict-
of-laws principles and you hereby consent to exclusive jurisdiction and venue in
the civil courts sitting in Tel Aviv, Israel. You agree to waive all defenses of lack of
personal jurisdiction and forum non-conveniens. If any term or provision of
these Sisense Boto Terms of Use is for any reason held to be invalid, such
invalidity shall not affect any other term or provision.
Last updated: June 11, 2018
Introduction
While Sisense provides you with a centralized location for consuming data in the
Sisense Web Application, sometimes you need quick access to your data without
having to jump across applications to ask data questions. Sisense Boto analyzes
your data and returns natural language insights within 3rd party applications
such as Skype and Slack. In addition, you can upload CSV files and Sisense Boto
will provide you with insights directly in your chat.
Note: To participate in the Sisense Boto Beta Program, your Sisense server must
be accessible over the Internet without a VPN.
Sisense Boto supports the following 3rd party applications:
Skype
Slack
Facebook
Click the links above to add Sisense Boto to your applications.
How does it Work?
Sisense Boto analyzes your data and returns insights to you in natural language
in 3rd party applications.
After setting up Sisense Boto, all you need to do is chat with it and tell Sisense
Boto which dashboards you would like to get insights for, or upload a CSV file for
Sisense Boto to analyze.
Throughout your chat, Sisense Boto will provide instructions with how interact
with it. The one thing to keep in mind is that as you dive deeper into your data,
each dive acts as a level so, to go to previous insights, you can type back until
you get to the desired level.
The easiest way to learn about Sisense Boto is to see it in action:
Setting Up Sisense Boto
To interact with Sisense Boto, you must add Sisense Boto to your application.
Skype
Slack
Facebook
Click the links above to add Sisense Boto to your applications.
After adding Sisense Boto to your application, greet Sisense Boto by typing, ‘Hi’.
The first time you message Sisense Boto, you will be asked to authenticate your
account.
To authenticate, click the link and enter the following details:
Sisense server address: The address of your Sisense account including the
protocol (“http://”) and your server’s port, for example
http://192.168.1.0:8081.
Email address: Your Sisense account email address.
Password: The password of your Sisense account.
After you have entered your details, click Authenticate and return to your
application. Greet Sisense Boto again by typing ‘Hi’. Sisense Boto will get your
environment ready, which takes just a few seconds. Once it’s ready, you can now
begin to consume data from with your application.
Sisense Boto will offer some advice to get started. You can select Skip to pass on
the tutorial.
Interacting with Sisense Boto
Sisense Boto provides an interface for returning insights, so no need to ask
questions. Just select your dashboard from the carousel and begin diving in.
To get an idea of just how easy it is to work with Sisense Boto, check out some of
our tutorials below:
Share Insights Instantly with Anyone
Once you have started exploring a dashboard, Sisense Boto will display the
following buttons:
Show my Dashboards: Display a list of your dashboards in a carousel in
your 3rd party application
Get Whisper: Return a natural language explanation of your widget.
Go Deeper: Return more explanations of your widget.
Thank you Boto: Return to the main menu.
Remove from List: Remove a dashboard from current dashboard carousel.
This does not delete the dashboard, just removes it from the carousel.
Add to List: Add a removed dashboard to dashboard carousel.
Open in Web: Open your Sisense application filtered by the selected widget.
Filtered by: Show the list of filters applied to the selected dashboard.
Sisense Advanced Commands
As you begin exploring your dashboards and their widgets, you will see a button
called Advanced Options.
Below are a list of advanced commands you can use and their meanings:
In addition to analyzing your dashboards, you can upload CSV files (up to 10mb
in size) and Sisense Boto will analyze the data and return natural language
insights.
After uploading the file, you select the column in the CSV file you want to Sisense
Boto to analyze. Uploaded files are deleted by Sisense automatically several
hours after the upload takes place.
To analyze your data:
Drag your CSV file into your chat with Sisense Boto. Sisense Boto will request
that you select a column to analyze.
Select a category. Sisense Boto will begin to analyze it. This may take several
minutes depending on the size of your file and how many insights are
extracted. The maximum amount of time is 5 minutes.
When Sisense Boto is done, your insights will be displayed in chat.
For more insights, click Next and Sisense Boto will display any more
insights if any are available.
Sharing Insights
You have several options for sharing insights, by typing ‘Share’ or click the Share
button. If you use the advance command, Share [Widget Name], you will be
prompted to select the Sisense user. If you want to share some insights with a
non-Sisense user, just select Other and you will be able to enter that user’s email
address. Sisense Boto will then forward your insights via email to the user.
Group Chat
You can begin a group chat with a colleague and then invite Sisense Boto to join
the conversation by typing, '@sisense_boto'. Remember, when Sisense Boto
returns insights, anyone in the conversation will be able to see those insights,
however, only users who you shared the dashboard with can click the Explore
button to access the dashboard from within the chat.
In your conversation, interact with Sisense Boto as you would within a private
session.
Sisense Enabled Bulb
Beta License Agreement
This product is still in beta and may undergo further changes.
The following are instructions for using various equipment with Sisense’s BI
Everywhere software functionality (the equipment and the BI Everywhere
software is collectively referred to herein as the “Product”). This notice is to
remind users that the Product is a beta release offering and is not warranted to
be at the level of performance of a commercially available product offering. In
addition, the Product may be substantially modified prior to first commercial
release, or at Sisense’s option may not be released commercially in the future. As
such, by using the equipment along with the Sisense Software, each user agrees
(i) to follow all instructions provided by Sisense with respect to the installation
and use of the equipment with the Sisense Software, including the below, and (ii)
that such use continues to be for testing and evaluation purposes only.
The Product and Documentation are provided “AS IS” without warranty of any
kind, and Sisense and its licensors and suppliers disclaim all warranties, express,
implied or statutory, including without limitation any implied warranties of title,
non-infringement of third party rights, merchantability, or fitness for a particular
purpose. The entire risk arising out of the use or performance of the Product
remains with the user.
For the sake of clarity, the provisions in the license agreement between the
licensee of the Sisense Software and Sisense (the “License Agreement”),
providing any representations, warranties or indemnities shall not apply to the
Product. For purposes of the limitation of liability provisions of the License
Agreement, no amount has been paid or is payable to Sisense in connection with
the Product. However, the license provisions continue to apply to the Sisense
Software and the confidentiality provisions of the License Agreement shall
continue to apply to those portions of the information shared with you by
Sisense that are Confidential Information as defined in the License Agreement or
any confidentiality agreement in effect between the licensee and Sisense.
Introduction
Traditional dashboards provide comprehensive access to vast amounts of data,
however, sometimes you need quick, actionable insights. The Sisense-Enabled
Bulb provides an immediate visual representation of a KPI. Sisense recommends
choosing a KPI that is meaningful to your business and you expect might change
frequently. KPIs that are relatively static are less meaningful to monitor with the
Sisense-Enabled Bulb.
To see how Sisense’s Marketing department has implemented the Sisense-
Enabled Bulb, click here.
If you have not purchased a bulb, for US customers you can purchase one from
the LIFX US site and for European customers, you can visit the LIFX Europe site.
This topic provides the following information:
How does it Work: Describes how the Sisense-Enabled Bulb works.
Connecting the Sisense-Enabled Bulb to Your Wi-Fi: Describes how to connect
your Sisense-Enabled Bulb to your Wi-Fi.
Retrieving a Sisense-Enabled Bulb Token: Describes how to retrieve a LIFX
token for your bulb.
Connecting Your Bulb to Sisense: Describe how to connect Sisense to your
Sisense-Enabled Bulb.
Troubleshooting the Sisense-Enabled Bulb: Describes how to troubleshoot
potential issues with the Sisense-Enabled Bulb.
How does it Work?
The Sisense-Enabled Bulb is connected to your Wi-Fi connection and dynamically
updates when a data alert is triggered. You can create data alerts for a wide array
of conditions. To learn more, see Data Alerts.
Sisense can be configured to send a webbook to Zapier each time a data alert is
triggered. When the webhook arrives, Zapier sends a request, also known as a
‘Zap’, to LIFX API. The Zap contains the ID of your bulb and defines how your
bulb should respond to an alert. For example, how many times the bulb show
blink or what color to display.
To set up an LIFX bulb, you need to connect your LIFX bulb to your Wifi, retrieve
an ID for your bulb, and finally, create a Zap that is sent to the LIFX API when
your data alert is triggered.
Connecting the Sisense-Enabled Bulb to Your
WiFi
To connect to the Sisense-Enabled Bulb to your wifi, you must download the LIFX
app. The LIFX provides an interface in Apple or Android-based mobile devices for
defining your bulb’s color and connections settings.
To connect to the Sisense-Enabled Bulb:
Before plugging the lamp into the power outlet, screw the bulb into the lamp.
Plug the lamp into the power outlet and turn it on.
Note: You can reset the lamp by turning the lamp on and off 5 times. When
you reset the lamp you must complete this procedure again.
Download and install LIFX. For Apple-based mobile devices, click here, and
for Android, click here.
Open the LIFX app .
In LIFX, tap Register and create an account.
Enter an email address and password to be used for your LIFX account and
tap Sign In.
In the top-right corner, tap + and then Connect light. LIFX locates the bulb.
Tap the name of the bulb located by LIFX.
Enter your LIFX account email address and password in the relevant fields.
Click Sign in. The Authorization page is displayed.
In the bottom left corner of the window, click Additional Options and select
Notify only once after a condition is met to limit how many times your
bulb refreshes itself after an alert is triggered.
Return to Zapier and click Continue.
Create a new webhook by clicking Continue. The Set Up Webhooks page is
displayed.
In the URL field, enter your LIFX URL. The URL has the following structure:
https://api.lifx.com/v1/lights/BULB_ID/effects/pulse
. Replace BULB_ID with your LIFX bulb ID. The ID should be written in
lowercase letters.
Select Show advanced options. Additional fields are displayed.
In the Unflatten field, enter yes to convert fields with underscores into
nested dictionaries.
In the Headers section, enter the following key-value pair:
In the Key field, enter Authorization.
In the Value field, enter Bearer and your LIFX token with a space in
between, for example, Bearer 23Sk5fj23934fLMNs. Click here to
retrieve your LIFX token.
Click Continue. The Test Webhook page is displayed.
Click Create & Continue. The next time the alert is triggered, Sisense fires a
webhook that activates your Sisense-Enabled Bulb.
Troubleshooting the Sisense-Enabled Bulb
Bulbs are designed to communicate on channels 1 through 11 on the 2.4GHz
(802.11 b,g,n) spectrum. If your router is in auto-channel mode, disable it
and ensure you are somewhere between channels 1 through 11. We suggest
channels 1, 6, or 11, as these are the only channels that are non-
overlapping.
You can reset the bulb by turning it on and off 5 times in a row. When you
reset the lamp you must reconnect the lamp as described here.
Sisense Alexa Skill
Beta License Agreement
The following are instructions for using various equipment with Sisense’s BI
Everywhere software functionality (the equipment and the BI Everywhere
software is collectively referred to herein as the “Product”). This notice is to
remind users that the Product is a beta release offering and is not warranted to
be at the level of performance of a commercially available product offering. In
addition, the Product may be substantially modified prior to first commercial
release, or at Sisense’s option may not be released commercially in the future. As
such, by using the equipment along with the Sisense Software, each user agrees
(i) to follow all instructions provided by Sisense with respect to the installation
and use of the equipment with the Sisense Software, including the below, and (ii)
that such use continues to be for testing and evaluation purposes only.
The Product and Documentation are provided “AS IS” without warranty of any
kind, and Sisense and its licensors and suppliers disclaim all warranties, express,
implied or statutory, including without limitation any implied warranties of title,
non-infringement of third party rights, merchantability, or fitness for a particular
purpose. The entire risk arising out of the use or performance of the Product
remains with the user.
For the sake of clarity, the provisions in the license agreement between the
licensee of the Sisense Software and Sisense (the “License Agreement”),
providing any representations, warranties or indemnities shall not apply to the
Product. For purposes of the limitation of liability provisions of the License
Agreement, no amount has been paid or is payable to Sisense in connection with
the Product. However, the license provisions continue to apply to the Sisense
Software and the confidentiality provisions of the License Agreement shall
continue to apply to those portions of the information shared with you by
Sisense that are Confidential Information as defined in the License Agreement or
any confidentiality agreement in effect between the licensee and Sisense.
Introduction
Sisense provides you with the means to interact with your data through
traditional point-and-click interfaces as well as through voice commands. With a
single voice command, you can retrieve and hear your numeric KPIs. The Sisense
Alexa Skill searches your widgets and dashboards to provide you with the best
result according to your command.
Sisense enables Amazon’s Echo, which is a voice-powered, wireless-enabled
speaker that interfaces with Alexa, to retrieve your data in Sisense. Alexa is a
cloud-based voice service that powers the Echo. Alexa’s default capabilities such
as playing music can be extended through skills. Sisense has developed a Sisense
skill that extends the Echo’s functionality and returns numeric KPIs through
voice commands.
This page provides the following information:
How does it Work: Describes how the Sisense Alexa Skill works.
Setting up the Sisense Alexa Skill: Describes how to set up the Sisense Alexa
Skill.
Querying the Sisense Alexa Skill: Describes how to query the Sisense Alexa
Skill.
Troubleshooting: Describes how to troubleshoot potential issues with the
Sisense Alexa Skill.
How does it Work?
After launching Sisense via voice command, you can retrieve numeric data
quickly by asking Alexa about your KPIs similar to issuing traditional queries
through Sisense. Your Sisense Alexa Skill listens for the command and forwards it
to Alexa.
Alexa handles your requests and routes the request to the Sisense ElastiCube
where your information is retrieved. Alexa then translates this data into an audio
response played back by your Sisense Alexa Skill.
Setting Up Sisense Alexa Skill
Sisense has developed a skill that enables you to retrieve your data via voice
commands. This skill takes requests from the Alexa service and leverages the
Sisense APIs to retrieve your data.
To enable your Sisense Alexa Skill to accept your voice commands and pass them
through the Alexa service and the Sisense APIs, you will need to enable the
Sisense skill.
Before setting up your Sisense Alexa Skill, you may want to create a new user
with a single dashboard associated with their account so you can easily test your
Echo without returning unexpected results from various dashboards.
Note: To participate in the Sisense Alexa Skill Beta Program, your Sisense server
must be accessible over the Internet without a VPN.
To set up the Sisense Alexa Skill:
Download the Alexa app from the app store and activate it using your email
address.
Android
iTunes
Turn on your Echo and connect it to your WIFI.
Open the Sisense Skill page and click Enable.
After you have enabled the skill, the Link Account button is displayed.
Click Link Account to display the Sisense Insights page in a new window. If
you have a pop-up blocker enabled, you may need to allow the website
insights.sisense.com to be opened in a new window.
In the Sisense Insights page you link the Sisense skill to your Sisense account.
Enter the following details:
Sisense server address: The address of your Sisense account including
“http://.
Email address: Your Sisense account email address.
Password: The password of your Sisense account.
Click Authenticate. Your account is now authenticated and you can begin to
work with the Sisense Alexa Skill.
Querying the Sisense Alexa Skill
The table below provides a list of supported commands, the objects they refer to,
and the results you can expect when you give the command:
Command Results
List all widgets from Returns all widgets' names from that specific
<dashboard title> dashboard.
dashboard
There are two potential security issues that arise when working with the Sisense
Alexa Skill. The first issue is what happens to data when you ask a question.
When you ask questions and receive answers, your data is sent to and returned
from the Alexa service. This data transfer takes place across secured SSL
ensuring that no one can access your data.
The second issue is securing the Sisense Alexa Skill itself, so no one can access it
and retrieve your data. When you say to Alexa, “Deactivate Account”, this
disconnects your Sisense Alexa Skill from your Sisense account. Alexa will ask
you to confirm that you want to deactivate your account. If you respond “Yes”,
the account is deactivated. No one will be able to access your data through the
Sisense Alexa Skill until the next time you manually reactivate your account.
Troubleshooting
For Amazon Tap and Echo devices, you can use Voice Training. Voice Training
helps Alexa understand your speech patterns. During a Voice Training session,
the Alexa app shows 25 different phrases, which you say to your device. To learn
more, go to Voice Training.
If your selected language doesn’t match the language settings for your Amazon
account, Alexa may not always understand what you say and may have trouble
pronouncing things. For example, if you are located in Canada and are having
language problems, change the language setting to US English.
If you have any issues authenticating your Echo, you can try to enable the device
from the desktop through the following site.
Viewing Dashboards on
Mobile Devices
Sisense Mobile connects you to your dashboard anytime, anywhere on your
Android or iPhone mobile devices. Sisense Mobile decreases time to insight with
an intuitive UI, search bar for locating dashboards, and responsive visualizations;
You can explore your dashboards with simple gestures optimized to let you dive
deep into your data or apply filters to view the data you want.
Check out a demo video below to see how you can tap, zoom, and swipe to
interact with your data.
Sisense now offers a premium white-labeled version of the Sisense Mobile app
that can be customized according to your branding. For more information, see
Rebranding Sisense Mobile.
Getting Started
Supported Phones and Operating Systems
iPhone – Requires iOS 9 or later, Supported iPhone 5 device or higher.
Android – Requires Android versions 4.4 or later.
Get Sisense Mobile
To download the Sisense Mobile App for your device, click the relevant link
below according to your version of Sisense.
After you have downloaded Sisense Mobile, open the app to launch the login
screen and enter the server address and your Sisense user credentials.
The server address should include the server IP or domain name (alias). If you
are not using the default port (80), you will need to add the port as well, for
example: http://xx.xxx.xx.xx:8081. When working with SSL security protocol, use
the ‘https’ prefix.
You can sign out by opening the navigation menu and tapping Sign Out.
If you have problems connecting, check the following:
If your server is not on port 8081, check that the port has been added
correctly, for example, 192.168.1.1:8080
Try to access the server from your phone's web browser
Try to access the server from other computers connected to the same
WIFI connection as your phone
Navigating Sisense Mobile
When you first log in to Sisense Mobile, a list of your folders, dashboards, and
recently opened dashboards is displayed.
Exploring Data
In Sisense Mobile, you can filter and drill down into your data, much like you do
from your PC.
Filtering Widgets
To filter a dashboard, you can tap the filter icon . This displays the list of
available filters.
You can disable your filters by swiping left on the filter to display a toggle button.
Tap it to disable a filter.
A gray background behind the filter indicates the filter has been disabled.
To dive deeper into your filters, tap the relevant filter to open all of its available
options. Then, tap any of the filter options to toggle the filters to your data.
Drilling into your Data
You can drill down in most widgets to get an in-depth view of a selected value.
For example, tap on a slice in a pie chart to see the absolute value in addition to
the percentage.
In the following example, the left chart shows the lead breakdown by campaign
source, and on the right side, the chart shows a breakdown of visits from various
social media sources.
Any time you select a value, a tooltip is displayed at the bottom of your screen,
which provides a description of the selected value and the drill down
icon. In this example, you see the total lead and its percentage.
Sisense Mobile supports a variety of gestures that let you dive deeper in your
data and see more details.
Highlight a Value Swipe across your Visualizations
Sisense Pulse
Sisense Pulse is a centralized location where you can stay on top of your most
important KPIs across multiple dashboards or manage your data and build alerts.
By adding important KPIs from your dashboards to Sisense Pulse, you can get a
comprehensive picture of your data from a single location.
Sisense Pulse contains tiles that display information from your dashboards and
the status of your ElastiCube builds.
Within Sisense Pulse, there are two types of tiles, data tiles that display your
widgets’ current status and recent history and build tiles that display the latest
status of your ElastiCube builds.
In Sisense Mobile you can manage your alerts from Sisense Pulse or create data
alerts based on widgets in your dashboards.
Note: Build alerts can only be created from the Sisense Web Application.
You can access Sisense Pulse from Sisense Mobile by opening the navigation
menu and tapping Pulse.
Creating Data Alerts
Data alerts are triggered by conditions you define for your widgets. For example,
if you have an Indicator widget that represents your company’s revenue, you can
define an alert that notifies you when this revenue reaches or falls below a
certain threshold.
For each type of widget you can add to Pulse, you can monitor a single value. For
example, for Column charts, you can monitor a single section (value) of a column.
To monitor multiple values, you can add each value you want to monitor to Pulse
separately.
When you create an alert for a specific value, Sisense applies any filters that were
already applied, for example, if you create a data alert for the total revenue of a
given age range, the pulse alert created will be called Total Revenue and will be
filtered by the value of the age range you selected.
To create a data alert, from your dashboard, tap the relevant widget to open it in
Widget Mode. In Widget Mode, tap the value you want to monitor, then tap the
menu icon and tap Add to Pulse. This opens the Alert Conditions menu where
you select the type of data alert you want to create. For example, if you create a
threshold data alert, the following settings are displayed.
After you have set the conditions, tap Save and the new alert will be added to
Sisense Pulse.
Managing Alerts
You can manage your alerts from Sisense Pulse. In Sisense Pulse, tap the relevant
tile to open Tile Mode. Once you’re in Tile Mode, the menu icon is displayed in
the top right corner. Tap it to display a list of alert management options.
From the options area, you can edit alerts, delete alerts, deactivate alerts, and
toggle notifications.
Pulse Notifications
If your Sisense user has been configured to receive Pulse alerts to your mobile
device, when an alert is triggered, you will receive a notification from the Sisense
Mobile app.
You can swipe left on an alert to clear the alert or to view the alert in Sisense
Pulse.
To clear all alerts, click the trash can icon at the top of the notification feed.
Note: You must have Sisense Mobile installed to receive Pulse notifications.
Single Sign On
Sisense supports SSO for Sisense Mobile. If your Sisense server is configured to
use SSO, Sisense Mobile will use the same SSO configuration. No additional
configuration is required on the Sisense server.
When you log in to Sisense Mobile, you are redirected to the IdP login URL using
web view. Following authentication by the IdP, the SSO token is returned to the
Sisense Server, which returns a web cookie to Sisense Mobile, and the application
is opened. For more information about how to implement SSO, see Single Sign
On.
Plugins
Sisense Mobile V2.3 and above supports Sisense plugins and supports plugins
made with the Sisense JavaScript API.
For information on developers plugins for Sisense Mobile, click here.
Supported Sisense Plugins
The following table lists Sisense plugins that are supported on Sisense Mobile.
Plugin Comment
Aggregated Table
Dynamic Buckets
Forecasting