With the Analytics Cloud, you can connect any data, from any source, to everyone in your company.
Learn about the Wave Platform and technologies that fuel the Analytics Cloud. See how Datasets, Lenses and Dashboards quickly deliver insights that all users can leverage with a demonstration.
Hear an introduction to advanced topics such as XMD, SAQL, mobile layouts and security.
6. Analytics Cloud Key Concepts
Explore
– Ask questions across CRM, ERP, Excel, IoT, etc.
Collaborate
– Have discussions & answers in one place
Cloud
– Up and running quickly with enormous scale
Mobile
– Access it all on the go, in the palm of your hand
Four Areas
6
7. Analytics Cloud
- Explore with lenses &
dashboards
- Salesforce & external
data
- Data updated on
schedule
Salesforce Reporting
- Analyze with reports &
dashboards
- Salesforce data only
- Real-time data
Analytics Cloud vs. Salesforce Reporting
What’s the difference
7
9. Dynamic Schema
Key-value pair store supports any type of data:
structured or semi-structured
Scalable
Store & query datasets in parallel to increase analytics
data set – up to billions of rows
Search-based Technology
Mash-up (data blend) across Datasets for cross-silo
Insights
Dataset
A dataset is a specific view into a data source based on how you’ve
customized it. It could be based on a data pipeline or from an ETL vendor.
9
10. Lens
Exploring a dataset involves four fundamental operations.
Measure
the value of
opportunities
Group
(Dimension)
by owner
Filter
closing this
month
View
in a bar chart
A lens is a particular view into a dataset’s data where you do visualization
and exploratory analysis.
11. Dashboard
Selectors
Chart Widgets
Compare
Table Widget
Link to
related lens
or dashboard
Number
Widget
A dashboard is an interactive collection of widgets showing different
snapshots from one or more lenses to tell a story from different angles.
13. Enabling Analytics Cloud
Platform License
13
Max 400 users, 50 concurrent queries and 250 million registered rows per
platform licenses. Buy multiple platform licenses to increase limits.
14. User Access
Explorer vs. Builder
Explore Data With Lenses
Explore Data with
Dashboards
Save Lenses
Upload External CSV
Data
Analytics Cloud Explorer
Create Analytics Cloud Apps
Save Lenses
Create and Edit Dashboards
Edit and Execute Dataflows
Manage Analytics Cloud
Upload External Data
Analytics Cloud Builder
Each user requires a license to use Analytics Cloud. The license type
determines what permissions can be assigned
15. Permission Set License
Assign Analytics Cloud Permission Set on top of
the following user licenses:
• Salesforce Platform
• Salesforce Platform One
• Force.com - App Subscription
• Force.com - One App
• Full CRM
18. Analytics Cloud Home Page
Access through
Force.com app
menu
All items you have
access to shown
by default.
Browse items by
type.
Open items
appear in tabs.
Start typing to
search.
21. What is a Dataflow?
Extraction, Transformation, Loading
• A dataflow definition file is a JSON file that contains
transformations that represent the dataflow logic.
• To start running the dataflow on the schedule, manually start the
dataflow first. After the first job runs, the dataflow job runs on the
daily schedule.
• The dataflow runs on a daily schedule to capture the latest
changes to Salesforce data and changes in the dataflow logic.
• Each dataset has a single node name that you can designate
within your JSON
22. Simple Transformations
edgemart – extracts data from an existing,
registered dataset
- use to integrate data from an external source
sfdcDigest – generate a dataset based on data
extract from Salesforce object
sfdcRegister – makes a data set available for use
within Analytics cloud
- intermediate datasets only in dataflows
Accessing and Registering Data
23. Cannot extract data from fields
with the following field types:
• address
• base64
• calculated
• DataCategoryGroupReference
• encryptedstring
• location
• masterrecord
• textarea
Including such fields will result in
the dataflow ignoring the field.
sfdcDigest Transformation
25. • Single-Column Key:
"left_key": [ " AccountID"
],"right_key": [ " ID" ]
• Composite Key:
"left_key": [ " AcctID,
QuotaID " ],"right_key":
[ " Account_ID,
Quota_ID " ]
augment Transformation
Join two datasets to create a new one
25
26. Dataflow Design
The Sales Team would like a Dataset that could show Won Opportunities
• Support data from Salesforce exposed in Bulk
API
27. What is the Data Monitor?
• From the Jobs View, you can view the System
Jobs that have run, such as CSV Uploads or any
job that uses the REST API to upload data into
the Analytics Cloud.
Monitor data loads
Click the Dataflow View dropdown and then click Jobs View to have
access to the System Jobs.
NOTE: To access the System Jobs, you must click refresh
28. External Data Upload
• The UI allows the ability to override currently
existing datasets with a CSV and Schema.
• Alternatively, you can create your own Dataset
from scratch using a CSV and Schema
Loading a CSV file
29. External Data API
• The REST API allows you to access the
Analytics Cloud and upload external data files
into datasets
• Third party tools to load data
– Excel Connector, Integration Platforms (Informatica
Rev, Dell Boomi, etc.)
Data from the outside world
For more information on the External Data API, see the “Analytics Cloud
External Data API Developer’s Guide”
30. Excel Connector
• Easily create data sets from within Excel
• Available in the Office Store
Use of the API
30
32. Data Exploration Concepts
• Commonly a chart or a graph, such as a bar
chart, pie chart, timeline, or heatmap.
• It can also be data in tabular form, such as a
comparison table or pivot table.
• The UI designs a query for you based on the
options you pick within the UI.
Visualization
33. Explore Your Data
• Group
• Filter
• Change Sort Order
• Change the Chart Type
• Change the Measure
• Change the Chart Scale
• Step back and forward through previous changes using
the History View
• Reset your Lens to start from scratch
• Apply Groupings and Filters using the Copy/Paste
functions
UI Actions
34. Views can emphasize:
– Graphic Comparisons
– Change over time
– Significant data points
within a calendar timeframe
– Parallel data points over
time
– Data distribution on a grid
– Data concentrations on a
grid
– Data comparisons on two
axis
Which visualization should you use?
Depends on what story you want to tell
35. Saving Lenses
• Use Save to keep a copy of your lens (Cloud)
– Also able to delete
• Clip the lens to a dashboard for use (Camera)
– New dashboard created or added to most recently used
37. Building Dashboards
• Who is the audience
• What does the audience need to measure?
• How often do they need to update their
knowledge?
Plan your dashboard
38. • Prioritize widgets from top left to bottom right
• Don’t overload the dashboard. Leave some space
• Choose chart types based on data characteristics
Building Dashboards
Sketch your dashboard
40. Building Dashboards
Keyboard Shortcuts
Keyboard Shortcut Description
x Delete selected item from the
canvas
Arrow keys Move the selected item around
[ Put selected item beneath other
items
] Put selected item on top of other
items
Z – index is only available with the above shortcuts
42. XMD
• Customize dataset elements
– The formatting of measures
– Display labels for dimensions and measures
– The grouping of dimensions of measures
– Colors of specific fields
– Default columns to be displayed for a values table
– The hiding of dimensions and measures in the user
interface
– Dimensions for creating custom links from lenses and
dashboards to records in Salesforce and external
websites
Extended Metadata
44. SAQL
• Influenced by Pig Latin language
• Used to perform advanced operations in
dashboards
– Load
– Filter
– Group
– Foreach
– Union
– Order
– Limit
– Offset
Salesforce Analytics Query Language
45. SAQL Example
q = load "Cases"; -- load a dataset
q = filter q by Support_Case_Owner_Group in
({{selection(Support_Case_Owner_Group_2)}});
-- filter the data by a dashboard seletion
q = group q by ('Created_Date_Year',
'Created_Date_Month'); -- summarize by period
q = foreach q generate 'Created_Date_Year' + "~~~" +
'Created_Date_Month' as ‘Year-Month’,
avg('Customer_Satisfaction_m') - 8.5 as
'variance_CSAT_KPI', count() as 'count';
-- compute the Customer Satisfaction variance from KPI
Computing KPI variance
47. Security
App Level Sharing & Row Level Security
• If a user has data set access they get all rows
• Implement row level security to control
– Define a predicate to apply to the row
– Owner == ”$User.Name”
48. Mobile
• Separate layouts for mobile, as desktop is pixel
based
• Grid based system
– iPad = 4 columns portrait, 6 landscape
– iPhone = 1 column portrait, 2 landscape
• Use colspan and rowspan
• Specify multiple pages – page 0, page 1, etc.
– Swipe to see more
• Will be replaced with better tools to come
48
49. Useful Links
• JSON Online Editor
– Chrome extension
• Lens Page to Create/Edit JSON
– https://<instance>.salesforce.com/analytics/wave/web
/lens.apexp
• SAQL Tester
– Bookmarklet to run & debug SAQL statements
• XMD Editor
– Edit XMD or upload a new file
– See Appendix for Bookmarklet code
50. Additional Resources
• Analytics Library
– Landing page with all of the Analytics Cloud docs
– Setup
– Integration
– Exploring & Sharing Data
– Mobile
– Wave REST API Developers Guide
• http://blog.canntechnology.com
– Articles I have written, including loading data with the
Excel connector
52. XMD Editor
Appendix
• Create bookmark with the following:
• Go to a dataset you want to updated the XMD and click the bookmark
• Edit the text or upload a file & click Submit Updated XMD. Section closes on successful save
javascript:(function(){function getServerSid(){var server=window.location.href.replace(/https?:///,"").split("/")[0];var
sid=document.cookie.match(/(^|;s*)sid=(.+?);/)[2];return[server,sid]}secure_sfdc_header_prep=function(sid){return function
secureSFDCHeaderPrep(xhr){xhr.setRequestHeader("Authorization","OAuth "+sid)}};var is_iframe=false;var
exp_iframes=["explore","exploreFrame"];var exp_iframe="explore";var my_window=window;for(i in
exp_iframes){if(document.getElementById(exp_iframes[i])){is_iframe=true;my_window=document.getElementById(exp_iframes[i]).c
ontentWindow;exp_iframe=exp_iframes[i];break}}var div=document.createElement("div");var
div2=document.createElement("div");var inp=document.createElement("textarea");var btn=document.createElement("button");var
btn2=document.createElement("button");var btn3=document.createElement("button");var
inp_file=document.createElement("input");inp_file.setAttribute("type","file");div.appendChild(inp);div.appendChild(inp_file);div.appe
ndChild(btn);div.appendChild(btn2);div.appendChild(btn3);div.appendChild(div2);div2.setAttribute("id","json-
input");inp.setAttribute("rows","10");inp.setAttribute("cols","80");btn.innerText="Close";btn2.innerText="Get Full
XMD";btn3.innerText="Submit Updated XMD";function
closeMe(){div.parentNode.removeChild(div)}btn.onclick=closeMe;btn2.onclick=getFullXMD;btn3.onclick=postData;if(document.bod
y.firstChild)document.body.insertBefore(div,document.body.firstChild);else document.body.appendChild(div);var
em_values=my_window.edgeChrome.tabManager.getActiveTab().viz.getFullState().edgemart.split("/");var
location=window.location.protocol+"//"+window.location.hostname+"/insights/internal_api/v1.0/esObject/edgemart/"+em_values[0]+
"/version/"+em_values[1]+"/file/user.xmd.json";var
sys_location=window.location.protocol+"//"+window.location.hostname+"/insights/internal_api/v1.0/esObject/edgemart/"+em_value
s[0]+"/version/"+em_values[1]+"/file/main.xmd.json";var
sid=getServerSid()[1];$.ajax({type:"GET",url:location,beforeSend:secure_sfdc_header_prep(sid),error:function(err){console.error("G
ot error:",err)},success:function(data){inp.value=JSON.stringify(JSON.parse(data),null,2)}});function
getFullXMD(){$.ajax({type:"GET",url:sys_location,beforeSend:secure_sfdc_header_prep(sid),error:function(err){console.error("Got
error:",err)},success:function(data){inp.value=JSON.stringify(JSON.parse(data),null,2)}})}$(inp_file).change(function(){inp.value=""})
;function postData(){var fd=new FormData;if(inp.value){var blob=new
Blob([inp.value],{type:"application/json"});fd.append("user.xmd.json",blob,"user.xmd.json")}else{fd.append("user.xmd.json",inp_file.fi
les[0],"user.xmd.json")}$.ajax({type:"POST",url:location,data:fd,processData:false,contentType:false,beforeSend:secure_sfdc_head
er_prep(sid),error:function(err){console.error("Got error:",err)},success:function(data){closeMe()}})}})();