This site uses different types of cookies, including analytics and functional cookies (its own and from other sites). To change your cookie settings or find out more, click here. If you continue browsing our website, you accept these cookies.
Under the hood of Alteryx: tips, tricks and how-tos.
It's the most wonderful time of the year - Santalytics 2020 is here! This year, Santa's workshop needs the help of the Alteryx Community to help get back on track, so head over to the Group Hub for all the info to get started!
It seems that much of the vast appeal of Alteryx to so many people is the degree to which workflows remove the programming part of data analysis. This makes it easier to focus on the data while trusting that whatever method is being used to analyze the data is done effectively and efficiently. Additionally, the visual clarity of workflows lends itself well to anyone looking at a new workflow trying to grasp what's going on.
These two aspects of the Alteryx software can help to make it very easy to get "in the zone" - fully focused on getting to the desired result - but not necessarily concerned with the procedure for getting there.
The issue is that this can lead to minor (or major) inefficiencies (sorting data then filtering it, leaving extra columns sitting around long after their use instead of selecting them out, etc).
I set out to try to deal what was in my opinion with the simplest of these, sorting immediately before filtering, in the form of an app. It would take in an alteryx workflow, app, or macro and would spit back out a new and improved version.
A simple example:
Let's input a very simple workflow that sorts, then filters a dataset:
Now let's apply this Efficiency Boost App:
To get this result:
As you can see, it simply redirects the wires of the workflow to let data flow downstream more efficiently.
To figure out how much of a boost this had potential to give, I set up an iterative macro to take a size of a dataset and report back the time it took to randomly generate, then sort, then filter that many results. Then, I ran the Efficiency Boost App on it.
Here is the macro that sorts, then filters:
And here is the result after the Efficiency Boost App:
I threw these into a workflow to run them multiple times on different sized data sets and take averages, and it spit out these results (all in seconds):
It should come as no surprise that as datasets become larger, the Efficiency Boost App's benefits grow significantly.
As of now, the app is just in its infancy and has just been tested on relatively simple workflows/macros, but hopefully soon, now my groundwork on the parsing of the Alteryx XML is mostly done, it'll be possible to add much more functionality to find much more room for time savings.