<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Rudder CLI Reference Guides</title><link>https://www.rudderstack.com/docs/dev-tools/rudder-cli/reference-guides/</link><description>Recent content in Rudder CLI Reference Guides on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/dev-tools/rudder-cli/reference-guides/index.xml" rel="self" type="application/rss+xml"/><item><title>Dev-Tools: Data Graph YAML Reference</title><link>https://www.rudderstack.com/docs/dev-tools/rudder-cli/reference-guides/data-graph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/dev-tools/rudder-cli/reference-guides/data-graph/</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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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>Description&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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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">Description&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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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">Description&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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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/dev-tools/rudder-cli/reference-guides/data-graph/" 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>