Appearance
🖇️ Data models
What's a data model?
We believe it's crucial for everyone in your company to be aligned around what your key business concepts mean.
Supersimple's data modelling layer is what you use to describe the business-level concepts that your internal users will be using to explore your data. Let's look at some examples!
A company that's building a CRM like HubSpot might have data models for organizations, their contacts, companies, deals, emails, and in-app events such as inviting a team member or marking a deal as "closed".
For each of these business concepts, the data model defines:
- Where in the data warehouse this data comes from (e.g. the
deal_activity_email
table); - Fields: what properties or columns that model has (e.g. each Company has name, and each in-app event has an User behind it);
- Relations: what logical relationships they have with other data models (e.g. each ride has a driver linked to it).
Because the data model is the basis for every data question your team can ask, it's important for these core definitions to be correct, and to align closely with the business concepts you think of internally.
However, your data warehouse might not exactly match the mental model that's most useful for your team. For this reason, you can use the data model to centrally restructure or clean up your data. For example, you might want to:
- Filter out (or ignore) data from customers whose
is_test
flag is set totrue
or for ignore deals that have been closed as duplicates; - Combine several tables into one data model, such as
emails_sent_via_ui
andgmail_sync_emails
.
Setting up the data model
When you connect your data warehouse to Supersimple, we auto-generate data models based on the tables and foreign keys we see in the connected database.
After we auto-generate your data model, you'll have the option of managing it as a set of YAML files in your own source control system. If you're using GitHub Actions, we have a ready-to-go Action for you to set up for CI, too.