As we know, many business intelligence are overly focussed on dashboards as the means of disseminating information, and we believe this is a missed opportunity.
Ideally, analytics should be more embedded into employees day to day experiences, delivered through the applications and tools that they already use and making use of things like push notifications and emails to deliver information in context.
However, an intermediate step towards this is simply to have more interactive analytical applications. This gives users the ability to search and slice and dice data and make use of that data to decide their next best action. In some cases, we also need to add a degree of business logic to really deliver on the outcome needed.
Dashboard tools such as Tableau are not flexible enough for this. We need to build something more akin to mini applications rather than dashboards.
In these situations, Dash by Plotly is a great low-code option. It allows you to quickly build data science oriented applications that display reports, charts and other visualisations in order to expose data analytics and data science outputs into the hands of your users. Because it is built around Python however, these applications can then be enhanced with full interactivity and business logic as required.
Dash applications are built with Python, a language of course common with data scientists, but also have a rapid application development feel whereby we specify what the layout of the application needs to be declaratively.
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dcc.Graph(
id='example-graph',
figure=fig
)
])
All of the data is fed into Dash using Pandas Data Frames, which are a very standard way of interacting and processing data in Python. For instance, here we are building a dataframe, and pushing that into a bar chart using very readable and accessible code.
df = pd.DataFrame({
"Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
"Amount": [4, 1, 2, 2, 4, 5],
"City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]
})
fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
Of course, between the Pandas Data Frame and the visualisation, we have full potential to manipulate and use the data as we wish. For instance, we could interact with machine learning models to request forecasts or anomaly detection.
Finally, Dash the applications are very easy to run as a standard Python process, though Dash Enterprise can also provide a hosting environment and other features if you wish to expose to a broader user community.
$ python app.py
...Running on http://127.0.0.1:8050/
This all means that the average data scientist can very quickly build and deploy interactive GUIs on top of their analysis in order to furnish the business with interactive analytics in a way which goes far beyond what can be achieved with self service dashboards and reports.
Where people need a very customised and rich front-end experience, it might be more appropriate to use something like React. However, for the vast majority of line of business applications, Dash has huge potential to data enable your business and harness the value that your data scientists are producing.
Using Dash With Clickhouse
We have an example Dash application built against Clickhouse in this GitHub repository.