<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Data Graph</title><link>https://www.rudderstack.com/docs/audiences/data-graph/</link><description>Recent content in Data Graph on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/audiences/data-graph/index.xml" rel="self" type="application/rss+xml"/><item><title>Audiences: How to Create a Data Graph using Visual Builder</title><link>https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/</guid><description>
&lt;p>This guide lists the steps to create a &lt;a href="https://www.rudderstack.com/docs/audiences/data-graph/" >Data Graph&lt;/a> in the RudderStack dashboard using the visual builder.&lt;/p>
&lt;p>To create a data graph as YAML using &lt;a href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/" >Rudder CLI&lt;/a>, see the &lt;a href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/data-graph/" >Data Graph YAML reference&lt;/a>.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="overview" data-heading="Overview" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="overview">Overview&lt;/h2>&lt;p>Creating a data graph in RudderStack via the visual builder involves:&lt;/p>
&lt;ol>
&lt;li>Connecting a warehouse account — this acts as the source for the data graph&lt;/li>
&lt;li>Defining entity models, and event models&lt;/li>
&lt;li>Configuring relationships between the entities and events&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="video-walkthrough" data-heading="Video walkthrough" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="video-walkthrough">Video walkthrough&lt;/h2>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
&lt;iframe src="https://www.youtube.com/embed/EfxvbqWKoVE" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="YouTube Video">&lt;/iframe>
&lt;/div>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="prerequisites" data-heading="Prerequisites" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>&lt;p>Your data graph is built on top of your warehouse data. Hence, you need a connected &lt;strong>warehouse account&lt;/strong> before you can start building your data graph.&lt;/p>
&lt;p>The steps to configure a warehouse connection are as follows:&lt;/p>
&lt;nav>
&lt;div class="nav nav-tabs" id="nav-tab" role="tablist">
&lt;a class="nav-item nav-link active "
id="nav-bafdce" data-toggle="tab" href="#bafdce"
role="tab" aria-controls="nav-home" aria-selected="true">BigQuery&lt;/a>
&lt;a class="nav-item nav-link "
id="nav-decbaf" data-toggle="tab" href="#decbaf"
role="tab" aria-controls="nav-home" aria-selected="true">Databricks&lt;/a>
&lt;a class="nav-item nav-link "
id="nav-faedbc" data-toggle="tab" href="#faedbc"
role="tab" aria-controls="nav-home" aria-selected="true">Redshift&lt;/a>
&lt;a class="nav-item nav-link "
id="nav-dfbeca" data-toggle="tab" href="#dfbeca"
role="tab" aria-controls="nav-home" aria-selected="true">Snowflake&lt;/a>
&lt;/div>
&lt;/nav>
&lt;div class="tab-content" id="nav-tab-content">
&lt;div class="tab-pane fade show active " id="bafdce" role="tabpanel" aria-labelledby="nav-1">
&lt;p>Before configuring the warehouse credentials, you need to grant certain permissions on your BigQuery warehouse for RudderStack to access data from it.&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/google-bigquery/#step-1-creating-a-role-and-granting-permissions" >Create a role and grant permissions&lt;/a> in your GCP project.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/google-bigquery/#step-2-creating-a-service-account-and-attaching-the-role-to-it" >Create a service account&lt;/a> and attach the role to it.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/google-bigquery/#step-3-creating-and-downloading-the-json-key" >Create and download the JSON key&lt;/a> for the service account.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/google-bigquery/#creating-the-rudderstack-schema-and-granting-permissions" >Create the RudderStack schema&lt;/a> and grant permissions to the service account.&lt;/li>
&lt;/ol>
&lt;p>Then, configure the warehouse credentials:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Name&lt;/td>
&lt;td style="text-align:left">Assign a name for the warehouse account.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Credentials&lt;/td>
&lt;td style="text-align:left">Add the contents of the GCP service account credentials JSON downloaded above.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Project ID&lt;/td>
&lt;td style="text-align:left">Specify your GCP project ID where your BigQuery database is located.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Service Account&lt;/td>
&lt;td style="text-align:left">Specify your GCP service account.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For more details on the above settings, see the &lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/google-bigquery/#configuring-the-connection-credentials" >BigQuery documentation&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="tab-pane fade show " id="decbaf" role="tabpanel" aria-labelledby="nav-1">
&lt;p>Before configuring the warehouse credentials, you must grant certain permissions in your Databricks instance for RudderStack to access data from it.&lt;/p>
&lt;ol>
&lt;li>Add a new user by following the steps in the &lt;a href="https://docs.databricks.com/aws/en/admin/users-groups/users#add-a-user" >Databricks documentation&lt;/a>.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/databricks/#creating-the-rudderstack-schema-and-granting-permissions" >Create RudderStack schema&lt;/a> and grant permissions to the user.&lt;/li>
&lt;/ol>
&lt;p>Then, configure the warehouse credentials:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Name&lt;/td>
&lt;td style="text-align:left">Assign a name for the warehouse account.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Host&lt;/td>
&lt;td style="text-align:left">Enter the server hostname of your Databricks cluster or SQL warehouse.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Port&lt;/td>
&lt;td style="text-align:left">Enter the associated port number for the Databricks cluster or SQL warehouse.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Path&lt;/td>
&lt;td style="text-align:left">Enter the associated HTTP path.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Authentication Type&lt;/td>
&lt;td style="text-align:left">Select the authentication mechanism from the dropdown. RudderStack supports &lt;strong>M2M OAuth&lt;/strong> and &lt;strong>Personal Access Token&lt;/strong>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Client ID&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>M2M OAuth&lt;/strong>, enter the client ID for the service principal.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Client Secret&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>M2M OAuth&lt;/strong>, enter the corresponding client secret.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Token&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>Personal Access Token&lt;/strong>, enter your Databricks access token.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Catalog&lt;/td>
&lt;td style="text-align:left">Enter the name of your &lt;a href="https://docs.databricks.com/aws/en/catalogs#view-catalog-details" >Unity catalog&lt;/a>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For more details on the above settings, see the &lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/databricks/#configuring-the-connection-credentials" >Databricks documentation&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="tab-pane fade show " id="faedbc" role="tabpanel" aria-labelledby="nav-1">
&lt;p>Before configuring the warehouse credentials, you must grant certain permissions on your Redshift warehouse for RudderStack to access data from it.&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/amazon-redshift/#step-1-creating-a-new-user-in-redshift" >Create a new user&lt;/a> in Redshift.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/amazon-redshift/#creating-the-rudderstack-schema-and-granting-permissions" >Create RudderStack schema&lt;/a> and grant permissions to the user.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/amazon-redshift/#step-3-granting-permissions-on-your-schema-and-table" >Grant user the required permissions&lt;/a> on your schema and table.&lt;/li>
&lt;/ol>
&lt;p>Then, configure the warehouse credentials:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Name&lt;/td>
&lt;td style="text-align:left">Assign a name for the warehouse account.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Host&lt;/td>
&lt;td style="text-align:left">Enter the host name of your Redshift service.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Port&lt;/td>
&lt;td style="text-align:left">Enter the port number associated with the Redshift database instance.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Database&lt;/td>
&lt;td style="text-align:left">Enter the database name of your Redshift instance from where RudderStack ingests the data.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">User&lt;/td>
&lt;td style="text-align:left">Enter the name of the Redshift user created while granting permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Authentication Type&lt;/td>
&lt;td style="text-align:left">Select the authentication mechanism from the dropdown. RudderStack supports &lt;strong>IAM&lt;/strong> (recommended) and &lt;strong>Username Password Authentication&lt;/strong>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">IAM Role ARN&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>IAM&lt;/strong>, enter the ARN of the IAM role you created while granting permissions.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Cluster Identifier&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>IAM&lt;/strong>, enter your AWS cluster ID.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Cluster Region&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>IAM&lt;/strong>, enter your AWS cluster region.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Password&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>Username Password Authentication&lt;/strong>, enter the password for the user specified in the &lt;strong>User&lt;/strong> field.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">SSL Mode&lt;/td>
&lt;td style="text-align:left">Select the SSL mode as &lt;strong>Disable&lt;/strong> or &lt;strong>Require&lt;/strong> depending on how RudderStack should connect to your Redshift instance.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For more details on the above settings, see the &lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/amazon-redshift/#configuring-the-connection-credentials" >Amazon Redshift documentation&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="tab-pane fade show " id="dfbeca" role="tabpanel" aria-labelledby="nav-1">
&lt;p>Before configuring the warehouse credentials, you must grant certain permissions on your Snowflake warehouse for RudderStack to access data from it.&lt;/p>
&lt;blockquote class="warning">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/warning.svg alt="warning" loading="lazy" decoding="async" class="img__small" style="
margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">You must have the &lt;strong>ACCOUNTADMIN&lt;/strong> role to grant these permissions.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;ol>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/snowflake/#step-1-creating-a-new-role-and-user-in-snowflake" >Create a new role and user&lt;/a> in Snowflake.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/snowflake/#creating-the-rudderstack-schema-and-granting-permissions" >Create RudderStack schema&lt;/a> and grant permissions to the role.&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/snowflake/#step-3-granting-permissions-on-the-warehouse-database-schema-and-the-table" >Grant permissions&lt;/a> on your warehouse, database, schema, and table.&lt;/li>
&lt;/ol>
&lt;p>Then, configure the warehouse credentials:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Setting&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 350px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Name&lt;/td>
&lt;td style="text-align:left">Assign a name for the warehouse account.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Authentication Type&lt;/td>
&lt;td style="text-align:left">Select the user authentication mechanism from the dropdown. RudderStack supports &lt;strong>Username Password Authentication&lt;/strong> and &lt;strong>Key Pair Authentication&lt;/strong>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Account&lt;/td>
&lt;td style="text-align:left">Specify the warehouse account ID that is a part of your Snowflake URL, for example, &lt;strong>qya56091.us-east-1&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Database&lt;/td>
&lt;td style="text-align:left">Enter the name of the database in which your data resides.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Warehouse&lt;/td>
&lt;td style="text-align:left">Specify the name of your data warehouse.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">User&lt;/td>
&lt;td style="text-align:left">Enter the name of the user that has the required read/write access to the above database.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Role&lt;/td>
&lt;td style="text-align:left">Specify the role you want to assign to the above user. For syncing the data, you can use this role apart from the default role (&lt;code>RUDDER_ROLE&lt;/code>) you created above.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Password&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>Username Password Authentication&lt;/strong>, enter the password for the user specified in the &lt;strong>User&lt;/strong> field.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Private Key&lt;/td>
&lt;td style="text-align:left">If authentication is set to &lt;strong>Key Pair Authentication&lt;/strong>, enter the &lt;a href="https://docs.snowflake.com/en/user-guide/key-pair-auth#generate-the-private-key" >generated private key&lt;/a> and make sure to include the delimiters.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Private Key Passphrase&lt;/td>
&lt;td style="text-align:left">If your private key is encrypted, specify the password you set while encrypting the private key. &lt;br />&lt;br />&lt;strong>Note&lt;/strong>: The user authentication will fail if your private key is encrypted and you do not specify the passphrase.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For more details on the above settings, see the &lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/snowflake/#configuring-the-connection-credentials" >Snowflake documentation&lt;/a>.&lt;/p>
&lt;/div>
&lt;/div>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="1-connect-the-warehouse-account" data-heading="1: Connect the warehouse account" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="1-connect-the-warehouse-account">1: Connect the warehouse account&lt;/h2>&lt;ol>
&lt;li>Navigate to &lt;strong>Activate&lt;/strong> &amp;gt; &lt;strong>Data Graph&lt;/strong> in the RudderStack dashboard.&lt;/li>
&lt;li>In the &lt;strong>Connect warehouse&lt;/strong> section, select the warehouse connection from the list of available connections. If there is no warehouse connection available, click &lt;strong>Add account&lt;/strong> to create a new connection.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-1.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-1.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-1.webp"
alt="Connect warehouse account"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">&lt;p>Note that:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>To create a data graph, your RudderStack workspace must have at least one warehouse connection configured.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>You can only connect one warehouse account to a data graph.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>RudderStack supports the following warehouses currently:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/snowflake/" >Snowflake&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/google-bigquery/" >BigQuery&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/amazon-redshift/" >Redshift&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/sources/reverse-etl/databricks/" >Databricks&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ol start="3">
&lt;li>Click &lt;strong>Connect&lt;/strong> to connect the warehouse account to the data graph.&lt;/li>
&lt;/ol>
&lt;p>At this point, the data graph base definition (warehouse connection context) is established. You can now start defining the entities and events for the data graph.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="2-create-an-entity-model" data-heading="2: Create an entity model" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="2-create-an-entity-model">2: Create an entity model&lt;/h2>&lt;ol>
&lt;li>In the &lt;strong>Add component&lt;/strong> section, select &lt;strong>Entity model&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-2.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-2.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-2.webp"
alt="Add entity model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="2">
&lt;li>Choose the relevant &lt;strong>Database&lt;/strong>, &lt;strong>Schema&lt;/strong>, &lt;strong>Table&lt;/strong> for the entity model.&lt;/li>
&lt;li>Select the relevant &lt;strong>Primary key&lt;/strong> from the dropdown.&lt;/li>
&lt;li>To set the entity model as a root model, select &lt;strong>Yes&lt;/strong> from the dropdown. Then, click &lt;strong>Next&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-3.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-3.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-3.webp"
alt="Configure entity model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="5">
&lt;li>Provide a name and description for the entity model.&lt;/li>
&lt;li>Click &lt;strong>Create&lt;/strong> to save the model.&lt;/li>
&lt;/ol>
&lt;p>You can now continue by adding more models to the data graph.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="3-create-an-event-model" data-heading="3: Create an event model" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="3-create-an-event-model">3: Create an event model&lt;/h2>&lt;ol>
&lt;li>In the top right corner, click &lt;strong>Add component&lt;/strong> and select &lt;strong>Event&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-4.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-4.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-4.webp"
alt="Create event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="2">
&lt;li>Select the relevant &lt;strong>Database&lt;/strong> and &lt;strong>Schema&lt;/strong> for the event model.&lt;/li>
&lt;/ol>
&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">If you configured a root model in the previous step, the &lt;strong>Database&lt;/strong> and &lt;strong>Schema&lt;/strong> fields will be pre-populated with the relevant values.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;ol start="3">
&lt;li>In the &lt;strong>Table&lt;/strong> field, select a relevant table from the dropdown that contains timestamp information.&lt;/li>
&lt;li>Select the relevant timestamp from the dropdown — this field defines the dimension of this event model. Then, click &lt;strong>Next&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-5-new.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-5-new.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-5-new.webp"
alt="Configure event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="5">
&lt;li>Provide a name and description for the event model.&lt;/li>
&lt;li>Click &lt;strong>Create&lt;/strong> to save the model.&lt;/li>
&lt;/ol>
&lt;p>You now have two models on the canvas of your data graph — an entity model and an event model.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="4-create-relationships-between-models" data-heading="4: Create relationships between models" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="4-create-relationships-between-models">4: Create relationships between models&lt;/h2>&lt;p>There are two ways to create relationships between models:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#by-clicking-on-the-model" >By clicking on the model&lt;/a> and selecting &lt;strong>Add relationship&lt;/strong> from the sidebar&lt;/li>
&lt;li>&lt;a href="#using-the-drag-and-drop-method" >Using the drag-and-drop method&lt;/a>&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="by-clicking-on-the-model" data-heading="By clicking on the model" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h4 id="by-clicking-on-the-model">By clicking on the model&lt;/h4>&lt;ol>
&lt;li>Click on the model from which you want to start the relationship.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-7.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-7.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-7.webp"
alt="Create relationship between entity and event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="2">
&lt;li>Click &lt;strong>Add relationship&lt;/strong> under &lt;strong>Relationships&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-8.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-8.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-8.webp"
alt="Create relationship between entity and event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="3">
&lt;li>In the relationship configuration view, select one of the existing models — you can also create a new model. Then, click &lt;strong>Next&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-9.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-9.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-9.webp"
alt="Create relationship between entity and event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="4">
&lt;li>Provide a name for the relationship.&lt;/li>
&lt;li>Define the cardinality of the relationship. For example, as one customer can have many purchases, the cardinality should be &lt;strong>1:many&lt;/strong>.&lt;/li>
&lt;li>Define the &lt;strong>Join keys&lt;/strong> used to define the join condition and relate the two tables.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-10.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-10.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-10.webp"
alt="Create relationship between entity and event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="7">
&lt;li>Click &lt;strong>Create&lt;/strong> to save the relationship.&lt;/li>
&lt;/ol>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="using-the-drag-and-drop-method" data-heading="Using the drag-and-drop method" data-level="4" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h4 id="using-the-drag-and-drop-method">Using the drag-and-drop method&lt;/h4>&lt;html lang="en">
&lt;blockquote class="info">
&lt;div class="tip-quote">
&lt;img src=https://www.rudderstack.com/docs/docs/images/info.svg loading="lazy" alt="info" decoding="async" class="img__small" style="margin-top: 3px; width: 20px;height: 16px;" />
&lt;div class="tip-text">The drag and drop method is an alternate way of creating relationships between models. In this method, you visually connect one model with another on the canvas — a configuration pane opens where you can define the relationship details.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>Suppose you have another entity model, &lt;strong>Accounts&lt;/strong>, and you want to create a relationship between the entity model &lt;strong>Customers&lt;/strong> (created previously) and this model.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-14.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-14.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-14.webp"
alt="Drag-and-drop relationship between entity and event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol>
&lt;li>Click the &lt;strong>+&lt;/strong> sign that appears on the right side of the &lt;strong>Customers&lt;/strong> model.&lt;/li>
&lt;li>Drag the relationship line to the left of the &lt;strong>Accounts&lt;/strong> model and drop it on the canvas.&lt;/li>
&lt;li>In the configuration pane, define the relationship details and the cardinality, for example, &lt;strong>many:1&lt;/strong>, indicating that an account can have many customers.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-11.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-11.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-11.webp"
alt="Create drag-and-drop relationship between entity and event model"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;ol start="4">
&lt;li>Define the &lt;strong>Join keys&lt;/strong> used to join the models, for example, &lt;strong>Account Key&lt;/strong>.&lt;/li>
&lt;li>Click &lt;strong>Create&lt;/strong> to save the relationship.&lt;/li>
&lt;li>Use the &lt;strong>Auto Layout&lt;/strong> functionality (described in &lt;a href="#step-4-organize-the-layout" >Step 4&lt;/a>) to reorganize the graph.&lt;/li>
&lt;/ol>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/create-data-graph-12.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-12.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/create-data-graph-12.webp"
alt="Organized layout of the data graph"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>You can continue expanding your data graph with more entity and event models, and building relevant relationships between them.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="organize-the-layout" data-heading="Organize the layout" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="organize-the-layout">Organize the layout&lt;/h2>&lt;p>Once the data graph is created, the models may appear scattered on the canvas. Use the &lt;strong>Auto Layout&lt;/strong> option on the bottom left of the canvas to organize the graph.&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/audiences/data-graph/sample-data-graph.webp" href="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/sample-data-graph.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/audiences/data-graph/sample-data-graph.webp"
alt="Sample data graph for an ecommerce store"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="see-also" data-heading="See also" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/create-data-graph/" data-title="How to Create a Data Graph using Visual Builder" -->
&lt;h2 id="see-also">See also&lt;/h2>&lt;ul>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/audiences/audience-builder/create-audience/" >How to Create an Audience from a Data Graph&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/data-graph/" >Create a Data Graph using Rudder CLI&lt;/a>&lt;/li>
&lt;/ul>
&lt;br /></description></item><item><title>Audiences: Data Graph YAML Reference</title><link>https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/</guid><description>
&lt;p>This reference documents the YAML schema for defining a &lt;a href="https://www.rudderstack.com/docs/audiences/data-graph/" >Data Graph&lt;/a> with the &lt;a href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/" >Rudder CLI&lt;/a>. Use it alongside the CLI to author, version-control, and sync data graph definitions as code.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="file-structure" data-heading="File structure" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h2 id="file-structure">File structure&lt;/h2>&lt;p>A data graph YAML file has the following top-level structure:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;rudder/v1&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">kind&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;data-graph&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">metadata&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ecommerce-data-graph&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">spec&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ecommerce-data-graph&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">account_id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;&amp;lt;warehouse-account-id&amp;gt;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">models&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">...&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="top-level-fields" data-heading="Top-level fields" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h3 id="top-level-fields">Top-level fields&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Field&lt;/th>
&lt;th>Type&lt;/th>
&lt;th>&lt;div style="width: 250px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>version&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td>String&lt;/td>
&lt;td>Schema version. Use &lt;code>rudder/v1&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>kind&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td>String&lt;/td>
&lt;td>Resource kind. Must be &lt;code>data-graph&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>metadata.name&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td>String&lt;/td>
&lt;td>Human-readable name for the data graph&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>spec.id&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td>String&lt;/td>
&lt;td>Unique ID for the data graph. Used as its stable identifier across syncs.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>spec.account_id&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td>String&lt;/td>
&lt;td>The ID of the warehouse account the data graph reads from.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>spec.models&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td>List&lt;/td>
&lt;td>List of entity and event models that make up the data graph. See &lt;a href="#models" >Models&lt;/a> for more information.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="models" data-heading="Models" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h2 id="models">Models&lt;/h2>&lt;p>The &lt;code>spec.models&lt;/code> list contains all the entities and events the data graph exposes to the Audience Builder. Each model points at a warehouse table and optionally declares relationships to other models.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="model-fields" data-heading="Model fields" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h3 id="model-fields">Model fields&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Field&lt;/th>
&lt;th style="text-align:left">Type&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 250px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>id&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Unique ID for the model within this data graph. Used as the target of relationships (see &lt;a href="#relationships" >Relationships&lt;/a>).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>display_name&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Name shown in the Audience Builder UI (for example, &lt;code>Customers&lt;/code>, &lt;code>Sales&lt;/code>).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>type&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Either &lt;code>entity&lt;/code> (dimension-style table) or &lt;code>event&lt;/code> (timestamped fact table).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>table&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Fully qualified warehouse table name, for example, &lt;code>ECOMMERCE_DB.E_MART.DIM_CUSTOMERS&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>description&lt;/code>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Human-readable description of the model. Shown as a tooltip in the builder.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>primary_id&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Column that uniquely identifies a row in the table. Required for entities; &lt;strong>Optional&lt;/strong> for events.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>timestamp&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Column holding the event timestamp. Required when &lt;code>type: event&lt;/code>. Used for time-window filtering in the Audience Builder. &lt;strong>Optional&lt;/strong> for entities.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>relationships&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Optional&lt;/span>&lt;/td>
&lt;td style="text-align:left">List&lt;/td>
&lt;td style="text-align:left">List of relationships this model has to other models. See &lt;a href="#relationships" >Relationships&lt;/a> for more information.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="entity-vs-event" data-heading="Entity vs. event" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h3 id="entity-vs-event">Entity vs. event&lt;/h3>&lt;ul>
&lt;li>&lt;strong>Entity&lt;/strong>: A dimension-like table representing a business object (&lt;code>Customers&lt;/code>, &lt;code>Products&lt;/code>, &lt;code>Stores&lt;/code>). Use &lt;code>type: entity&lt;/code> and set &lt;code>primary_id&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Event&lt;/strong>: A fact-like table where each row represents something that happened at a point in time (&lt;code>Sales&lt;/code>, &lt;code>Customer Interactions&lt;/code>, &lt;code>Loyalty Points&lt;/code>). Use &lt;code>type: event&lt;/code> and set &lt;code>timestamp&lt;/code>. Events can be filtered with a time window in the Audience Builder.&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="relationships" data-heading="Relationships" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h2 id="relationships">Relationships&lt;/h2>&lt;p>Relationships connect two models so marketers can filter one model using conditions on related records (for example, &amp;ldquo;customers with 3 or more orders&amp;rdquo;). Relationships are declared on the &lt;strong>source&lt;/strong> model under its &lt;code>relationships&lt;/code> list.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="relationship-fields" data-heading="Relationship fields" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h3 id="relationship-fields">Relationship fields&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Field&lt;/th>
&lt;th style="text-align:left">Type&lt;/th>
&lt;th style="text-align:left">&lt;div style="width: 250px;">Description&lt;/div>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>id&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Unique ID for the relationship within the source model.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>display_name&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Name shown in the Audience Builder UI (for example, &lt;code>Has Sales&lt;/code>, &lt;code>Belongs To Account&lt;/code>).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>cardinality&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">One of &lt;code>one-to-many&lt;/code>, &lt;code>many-to-one&lt;/code>, or &lt;code>one-to-one&lt;/code>. See &lt;a href="https://www.rudderstack.com/docs/audiences/data-graph/#current-limitations" >Current limitations&lt;/a>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>target&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Reference to the target model in the form &lt;code>#data-graph-model:&amp;lt;model-id&amp;gt;&lt;/code>.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>source_join_key&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Column on the source model used in the join.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>target_join_key&lt;/code> &lt;br/> &lt;span style="color: #4D4DFF;font-size:12px;">Required&lt;/span>&lt;/td>
&lt;td style="text-align:left">String&lt;/td>
&lt;td style="text-align:left">Column on the target model used in the join.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="target-reference-format" data-heading="Target reference format" data-level="3" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h3 id="target-reference-format">Target reference format&lt;/h3>&lt;p>Relationship targets use the &lt;code>#data-graph-model:&amp;lt;model-id&amp;gt;&lt;/code> reference format, where &lt;code>&amp;lt;model-id&amp;gt;&lt;/code> is the &lt;code>id&lt;/code> of another model in the same data graph. For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">target&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;#data-graph-model:sales&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="complete-example" data-heading="Complete example" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h2 id="complete-example">Complete example&lt;/h2>&lt;p>The following example defines a small e-commerce data graph with two entities (&lt;code>Customers&lt;/code>, &lt;code>Accounts&lt;/code>), one event (&lt;code>Sales&lt;/code>), and the relationships between them:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;rudder/v1&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">kind&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;data-graph&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">metadata&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ecommerce-data-graph&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">spec&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ecommerce-data-graph&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">account_id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;&amp;lt;warehouse-account-id&amp;gt;&amp;#34;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c"># RudderStack generates this ID when you connect a warehouse to your RudderStack workspace.&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">models&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># --- Customers (entity) ---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;customers&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">display_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Customers&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;entity&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">table&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ECOMMERCE_DB.E_MART.DIM_CUSTOMERS&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">description&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Customers with demographics and loyalty info&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">primary_id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;CUSTOMER_KEY&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">relationships&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;customer-has-sales&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">display_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Has Sales&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">cardinality&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;one-to-many&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">target&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;#data-graph-model:sales&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">source_join_key&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;CUSTOMER_KEY&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">target_join_key&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;CUSTOMER_KEY&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;customer-belongs-to-account&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">display_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Belongs To Account&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">cardinality&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;many-to-one&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">target&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;#data-graph-model:accounts&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">source_join_key&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ACCOUNT_KEY&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">target_join_key&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ACCOUNT_KEY&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># --- Accounts (entity) ---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;accounts&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">display_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Accounts&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;entity&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">table&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ECOMMERCE_DB.E_MART.DIM_ACCOUNTS&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">description&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Customer account records for individual, household, and corporate grouping&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">primary_id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ACCOUNT_KEY&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># --- Sales (event) ---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;sales&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">display_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Sales&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;event&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">table&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;ECOMMERCE_DB.E_MART.FACT_SALES&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">description&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;Sales transactions with amounts, status, and store/channel links&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">timestamp&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;CREATED_AT&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sync-to-your-workspace" data-heading="Sync to your workspace" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h2 id="sync-to-your-workspace">Sync to your workspace&lt;/h2>&lt;p>Once your data graph YAML is ready, use the Rudder CLI to validate and sync it to your workspace:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">rudder-cli apply -f data-graph.yaml
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="see-also" data-heading="See also" data-level="2" data-permalink="https://www.rudderstack.com/docs/audiences/data-graph/cli-reference/" data-title="Data Graph YAML Reference" -->
&lt;h2 id="see-also">See also&lt;/h2>&lt;ul>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/audiences/data-graph/" >Data Graph Overview&lt;/a>: Introduction to data graph and how it maps warehouse data for the Audience Builder&lt;/li>
&lt;li>&lt;a href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/" >Rudder CLI Overview&lt;/a>: Rudder CLI overview and supported resources&lt;/li>
&lt;/ul></description></item></channel></rss>