🗣️📊 SwiftQuery AI now lets you ask questions with natural language, or easily drag + drop →

Zing MagicModel: GenAI Data Modeling

We’re excited to announce GenAI data modeling, which we call MagicModel.

MagicModel lets you ask a question with no data modeling ahead of time.

MagicModel automatically generates fully editable join relationships between your data tables to answer your question. It can do joins across 5+ tables to answer a question, handle approximate field matches, and use context from your previous queries to automatically determine relationships.

This makes it radically easier to ask questions that span multiple tables, even if no dbt model or previous join relationship has been set up. You save time on avoiding data schema lookups or scouring data catalogs and data dictionaries. It also means you can get much more immediate answers – just add a data set and query away. And of course, you can always control or edit the relationships Zing learns.

All of these relationships are fully reusable, editable, and visually visible so you can see exactly what fields were used to create joins and override them if you’d like. 

This dramatically speeds up time to insight because no model needs to be pre-created to ask a question; you can simply add a data source and immediately start querying it, creating alerts and dashboards, and sharing insights across your company.

The History of Data Modeling

Whenever you have a lot of data, you need to split it up between multiple tables, views, or even databases to make it more useful.

This typically requires modeling the relationship between tables to be able to answer questions – whether by dragging and dropping to define relationships, or using something like dbt, or transformation code to achieve this.

This can take a lot of time, and invariably, even well-modeled data needs to be flexible for new tables or sources that arise. For instance, you have well structured data but a  marketing campaign provides customer-level information on event attendees as a one-off CSV you want to correlate to downstream sales.

This allows you to have questions run more quickly and not need to represent everything in a really large table that’s going to be slow to run, time consuming to update. 

Why This Matters

Let’s say you have four tables: 

Orders, which contains customer information, summary order information

Products, which contains details about each product, such as product descriptions, reviews, product shipping weight 

Customers which contains information about each customer including their loyalty information, gift card balances

Inventory, which contains data about each product, it’s availability in your warehouse, and additional supplier information like lead times to order and receive additional quantities of a product

You wouldn’t want to capture the detail of every product in every order, so you separate these out and perhaps join them using a product ID field. And you wouldn’t want every customer’s gift card balance to be captured in every order so you update it on the customers table.

Traditionally, you’d define joins between each of these tables manually by identifying the join keys between tables, and saving these as individual tables or views, or as DBT models.

This was fundamentally time consuming and fragile – if a field name changes, the associated joins no longer work. But with MagicModel, all of these relationships are figured our on fly and are inherently flexible and up-to-date.

An Example

Lets look at an example where we ask for “total orders by category name” – where no single table or view contains all the data necessary to answer the question. 

The join relationships created are fully visible in Zing, as we see:

  • The Category table is joined to  Products using the category field
  • The Products is joined to OrderLines using the prod_id field
  • The Orders table was joined to OrderLines using order_id 

Zing’s GenAI data modeling is:

  • On the fly - no pre-created joins needed. Of course, you can set up joins or inherit them from DBT if you’d like.
  • Fully editable, so if you want to modify a relationship you can do so in seconds – without needing SQL, code, or a data engineer to ‘fix’ something before you can get answers
  • Seamless across web, iOS, and Android - so you can create questions that require joins even from your phone.
  • Accessible with natural language, or visually - where we use leading fine-tuned LLMs to discern relationships on the fly and enable you to pull from any fields in the associated tables

This is live for BigQuery and PostgreSQL today, and is being rolled out for additional data source types in the coming week.

Of course, you’re always in control so you can pre-create specific relationships if you’d like and Zing will use those, or modify any relationships that Zing has created for you.

Have more questions? Our team is ready to guide you through the process and answer any questions you have. Feel free to reach out via email or chat.

Related articles

Download Zing For Free

Available on iOS, Android, and the web

Learn how Zing can help you and your organization collaborate with data

Schedule Demo