Jae Wilson @DataCrew
Domo

DOMO BC - Card Building - Checklist Pt 1

May 12, 2021

General Info

Some tips for approaching visualisation (normal datasets)

  • Think about the level of granularity required
  • For the Summary Number, check you are using the right aggregation type. For example, the "Current" aggregation is most appropriate for chart types with a trendline.
  • Limiting your number of Collections to roughly 3-5 Collections per page is ideal for navigation and information consumption.
  • Remove "Auto Preview" from Analyzer to avoid having the preview to load while building the card
  • Avoid reporting on dateTime columns unless absolutely necessary
    • instead separate date and time into separate columns.
    • by separating date and time, can leverage a dimension table to attach time and date attributes (Year, Month, or Morning, Afternoon)
    • high cardinality reduces the efficiency of columnar indexing. (which impacts FILTER performance, JOINS etc

Visualizing Semi-additive facts

Many connectors / reports will include semi-additive facts which cannot be aggregated (typically across the time dimension).

These datasets should be carefully shaped to avoid misuse/misinterpretation of data

  • Consider a dataset of Bank Statement Balances.  You could not take the sum(balance) column.
  • Dimension tables with aggregate metrics make it difficult to provide trend reporting or understand KPIs in context

Consider taking snapshots of the customer dim table state (data assembler) to create a semi-additive fact table OR uploading the transactional table

Additional Resources

Domo Q&A  - Optimizing Dashboards & Dataflows with large data

During a 1:1 mentoring session, I gave a consultant some tried and tested methods for optimizing dashboard and card performance against large datasets.



Quick Tips for Developer Experience in Analyzer

  • Remove "Auto Preview" from Analyzer to avoid having the preview to load while building the card

  • In Analyzer, apply filters to the card before applying dimensions or measures to the Axis.

    • Apply filters from large to small: Country → Region → City
    • Apply time period filter (Current year, Today...)
    • Apply row limit to the Data table (useful for Top 10)
  • Make sure the visualisation granularity is not too high (remember 25,000 points)

    • In Date, apply a date granularity (None → Day → Month → Year) -- avoid the use of DateTime columns.
  • Use beast modes saved to the dataset or materialized columns to aggregate by month or year instead of relying on card layer beastmodes, (b/c Adrenaline cannot cache results)

  • Remove unnecessary Sorts

  • Avoid / minimise use of count(distinct) consider approximate_count_distinct

COUNT(DISTINCT(`Measure`))
VS
APPROXIMATE_COUNT_DISTINCT ( expression[, error-tolerance ] )

Create a data-exploration Page instead of using Analyzer

  • Filters can be made out of smaller dimensional datasets and therefore load values faster than in Analyzer
  • Use a Pivot Table or Sumo Card to explore the data
  • Use Dataset Views to explore data at the row level

Part 1

Related

More posts on similar topics.

Got a project in mind?

hire me →

Getting value from the content but not ready to hire?

let's call it professional development

☕ buy me a coffee →

Want a practitioner take on Domo and AI, every month?

free, no spam, unsubscribe anytime

📰 subscribe to the digest →