Wednesday, June 24, 2015

Salesforce Analytics Cloud Explained

Salesforce made a splash at Dreamforce ‘14 with Wave and there has been a lot of excitement on topic since then. Couple frequent releases of new Analytics Cloud innovations with limited access to a developer environment means confusion still persists.


Analytics Cloud vs. Wave

A good place to start is the difference between Analytics Cloud and Wave. While many times, these terms have been used interchangeable, there are key differences. Wave is the platform while Analytics cloud is the product. A good analogy to draw is Sales Cloud and Service Cloud are products that run on the Salesforce 1 Platform. So let’s take a look at the features of each.



As the underlying technology platform, Wave is a schema free, non-relational database. Consisting of columnar based key-value pairs, Wave relies on search based technologies and inverted indexes to quickly deliver results. While that’s a lot of big data buzz words, what it means is Wave it not like your traditional data warehouse. It is built to handle large volumes of structured and unstructured data to quickly provide results based on search queries. If you would like to learn more, take a look at Redis, which a data structure server that will help you better understand Wave.


Analytics Cloud

As the flagship product on Wave, Salesforce Analytics Cloud is a mobile-first solution that allows data to be sourced from multiple locations, manipulated in real-time, and shared with other users. The key elements the Analytics Cloud delivers are the following:

  • Explore – allows everyone, not just data analysts, to find answers in data
  • Collaborate – one place for users to get and share answers on the business
  • Cloud – as a native cloud solution, it is up and running quickly, easily scales and one source of the truth
  • Mobile – all the answers you need in the palm of your hand


Learning More

To learn more about the Salesforce Analytics Cloud, check out the following resources. As part of a recent Lehigh Valley Salesforce Developer User Group, I explained the Salesforce Analytics Cloud, including a demonstration of the technologies. The presentation can be found on Slide Share while a recording  of the session is available on YouTube.


  1. HI Carl,

    I really like your presentation, and thanks for sharing your experience.

    I tried the SAQL Tester it's really fantastic. Working just fine !

    Unfortunately the XMD Editor did not work for me, I created the bookmarklet but when I click on it nothin happens. Can you help please ?

  2. For the XMD Editor, start on a lens for a data set. Then use the book marklet. That will open a popup section at the top of the page with several command buttons.

    Use the Get Full XMD button to pull the current XMD for the dataset. You will know it works as the text box will be updated with content.

    Then make a change to the XMD. Before you save, be sure to remove the following from the top of the XMD box

    "_features": [

    Then use the Submit Updated XMD to save the changes. The popup closes to indicated that the submit was successful.

    It is also helpful to use the Close button to hide the pop-up when switching between lenses/datasets.

  3. This is what I have in the book marklet.. but nothing happens when I click on it while I am on the lens page.

    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", 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()}})}})();

  4. Looks like there was a change in the Winter 16 that affects the XMD bookmarklet.

    The good news is there is an even easier way to access/edit XMD and SAQL. Salesforce labs has a Metadata/JSON editor tool, including XMD.

    Log into analytics cloud and then browse in another tab to Select production or sandbox (dev orgs are production). Then use the Metadata/JSON option to select an object and view its current values or make changes.

  5. Hey Carl,

    Could yoou help with permissions needed for accessing And can we restrict non builder users from using this.

  6. Hi Raj, while users with an Analytics Cloud Explorer license can access the app and view information, security does apply. If a user attempts to save data, operation not allowed (or similar) errors are presented.

    I also covered the wave-labs app in more detail in a new post -