Recently, I was working to update datasets in Salesforce Analytics Cloud. Some of my fields in the dataset were changing to support new functionality.
As part of the changes, some of the attributes and measures in data set were removed and new fields were added. While working with Wave is usually smooth sailing, this time I encountered rough waters.
My new dataflow was rather simple. It used an edgemart to load a dataset loaded externally, computeExpression to calculate a few new columns (instead of loading them from the external source) and then registering the dataset.
After making the modification and uploading a new dataflow version, it was time to run it. Right away, I noticed something was off. Typically, the dataflow took only a few seconds to execute. However, this time it was still running after several minutes.
As I looked into the details of the execution and it seemed to be stuck on the register step. The edgemart and computeExpression both completed quickly. After a few more minutes, the dataflow failed with the following error:
- There was an error executing the Register node: Registration error: Dataset with display name Data and api name Data failed to register 1 files, EdgemartId: 0Fb410000000PKVCA2, EdgemartVersion: 0Fc41000000dfLTCAY (02K410000004tfOEAQ_03C41000000dOyEEAU)
To start, this seemed like an internal Wave error, not something with my dataflow. A quick search for the error message and review of known issues did not turn up any matches. There was a known issue that had previously been addressed in Spring 16 where a dataset that had the colors set in the XMD 1.1 would fail to register.
While this did not apply to my situation as I did not have colors set, I did have XMD specified on the dataset. As I was in a Winter 17 org, my dataset was specified in XMD 2.0 format.
From previous loading of XMD through REST explorer in Workbench, I knew 2.0 was a little more particular than than the 1.1 version. For example, it is no longer possible to upload XMD that has a dimension or measure that does not exist in the dataset. Instead a JSON parse error is returned. With this knowledge, the XMD on the dataset seemed like a good place to investigate.
I headed over to Workbench to update my XMD. As I had planned to redo the XMD after the new dataset was loaded, it was easy to remove what I had. A simple empty set of XMD would remove my prior customizations. With this change it place, it was time to run the dataflow again. This time, the dataflow finished quickly and without error. My dataset was successfully loaded and ready to use.
The take away from my experience is to review your existing XMD before removing fields from dataset. You will need to remove these elements from the XMD or the dataflow will fail with a registration error.