<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RudderStack Docs – Additional Resources</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/</link><description>Recent content in Additional Resources on RudderStack Docs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/index.xml" rel="self" type="application/rss+xml"/><item><title>Archive: Profiles Run Process</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/run-process/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/run-process/</guid><description>
&lt;p>This guide explains the run process of your Profiles project in detail along with the order of execution of all of its components.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="project-assumptions" data-heading="Project assumptions" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/run-process/" data-title="Profiles Run Process" -->
&lt;h2 id="project-assumptions">Project assumptions&lt;/h2>&lt;p>This guide assumes you have a Profiles project with the following specifications:&lt;/p>
&lt;ul>
&lt;li>A &lt;code>user&lt;/code> entity&lt;/li>
&lt;li>ID stitcher model&lt;/li>
&lt;li>&lt;code>entity_vars&lt;/code>&lt;/li>
&lt;li>A feature table model&lt;/li>
&lt;li>Two Feature views models (default, and using &lt;code>email&lt;/code> as the primary key)&lt;/li>
&lt;li>Custom SQL model to create &lt;code>entity_vars&lt;/code>&lt;/li>
&lt;li>Cohort representing high value users&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="run-process" data-heading="Run process" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/run-process/" data-title="Profiles Run Process" -->
&lt;h2 id="run-process">Run process&lt;/h2>&lt;p>When you exceute the &lt;code>pb run&lt;/code> command to run your Profiles project, RudderStack performs these steps:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Constructs a DAG to analyze the order in which each component should run based on the model dependencies.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Compiles the configuration specified in your project files and outputs the SQL files (that will run in your database) in the output directory of your project.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Creates an input var table for each input table/source and adds an input row ID to it. This is used to create the &lt;code>entity_vars&lt;/code>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Performs the ID stitching process.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Creates the &lt;code>ALL&lt;/code> cohort which is a table of distinct list of all the &lt;code>main_ids&lt;/code> created from the most recent ID stitcher run. It serves as the base for the entity var table as well as custom cohorts.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Uses &lt;code>main_ids&lt;/code> created in the previous step and appends them to the input var tables (created in step 3).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Creates entity var tables which serve as the base for any feature table/views models built around this entity. The default output is a single column containing &lt;code>main_ids&lt;/code> from the ID graph.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Creates features for actionable views by calculating &lt;code>entity_vars&lt;/code> and &lt;code>input_vars&lt;/code>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Joins calculated features (via &lt;code>entity_vars&lt;/code>) to the entity var table.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Creates and materializes the custom cohort list (if defined in the YAML).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Creates the custom cohort var table (similar to the entity var table) which serves as the target table for feature creation and the base table for any feature table/views created on top of custom cohorts.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Generates the final tables and views:&lt;/p>
&lt;ul>
&lt;li>Feature table model and default feature view using the entity var table&lt;/li>
&lt;li>Custom feature views using the default feature views&lt;/li>
&lt;li>Custom cohort views using the cohort var table&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol></description></item><item><title>Archive: Python Multi-version Support</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/multi-version/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/multi-version/</guid><description>
&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">This feature is supported for the Profiles versions 0.10.8, 0.11.5, 0.12.0, and all versions after 0.12.0.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>You can constraint your Profiles project to run only on specific version(s) by specifying it in the &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/dev-docs/pb-project-yaml/" >&lt;code>pb_project.yaml&lt;/code>&lt;/a> file, under the &lt;code>python_requirements&lt;/code> key.&lt;/p>
&lt;p>For example, the following snippet pins your project to v0.16.0:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-pb_project.yaml" data-lang="pb_project.yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">python_requirements&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">profiles-rudderstack==0.16.0&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use the following snippet to stay on any patch release within the 0.24 minor line (between 0.24.0 inclusive and 0.25.0 exclusive):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-pb_project.yaml" data-lang="pb_project.yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">python_requirements&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">profiles-rudderstack&amp;gt;=0.24.0,&amp;lt;0.25.0&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you do not specify any version in &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/dev-docs/pb-project-yaml/" >&lt;code>pb_project.yaml&lt;/code>&lt;/a>, the latest Profiles version is used by default. The version constraints follow the same syntax as those of &lt;a href="https://packaging.python.org/en/latest/specifications/dependency-specifiers/" >Python dependency specifiers&lt;/a>.&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">Make sure that the version of Profiles project is the same in your environment and the &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/dev-docs/pb-project-yaml/" >&lt;code>pb_project.yaml&lt;/code>&lt;/a> file. Otherwise, RudderStack will throw an error.&lt;/div>
&lt;/div>
&lt;/blockquote></description></item><item><title>Archive: Snowflake Sample Data</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/sample-data/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/sample-data/</guid><description>
&lt;p>RudderStack provides a sample dataset for the Snowflake warehouse, available in the &lt;a href="https://app.snowflake.com/marketplace/listing/GZT0Z856CMJ/rudderstack-inc-rudderstack-event-data-for-quickstart" >Snowflake marketplace&lt;/a>. You can use this data to run the Profiles project and &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/data-apps/propensity/" >Propensity Scores&lt;/a> through the UI or the CLI.&lt;/p>
&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>The number of columns in this dataset is intentionally limited to make the dataset easy to understand.&lt;/li>
&lt;li>All email addresses are generated randomly.&lt;/li>
&lt;li>&lt;strong>No PII is used in the dataset generation&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>The following tables, properties, and user information is included in the dataset:&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="tables" data-heading="Tables" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/sample-data/" data-title="Snowflake Sample Data" -->
&lt;h2 id="tables">Tables&lt;/h2>&lt;p>This dataset includes the following RudderStack event data tables and the &lt;strong>approximate&lt;/strong> number of rows in each table:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Table&lt;/th>
&lt;th style="text-align:left">Description&lt;/th>
&lt;th style="text-align:left">Number of rows&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;code>PAGES&lt;/code>&lt;/td>
&lt;td style="text-align:left">Page view events from anonymous and known users.&lt;/td>
&lt;td style="text-align:left">~172k&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>TRACKS&lt;/code>&lt;/td>
&lt;td style="text-align:left">Summarized tracked user actions (like &lt;code>login&lt;/code>, &lt;code>signup&lt;/code>, &lt;code>order_completed&lt;/code>, etc.).&lt;/td>
&lt;td style="text-align:left">~56k&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>IDENTIFIES&lt;/code>&lt;/td>
&lt;td style="text-align:left">Associated with &lt;code>identify&lt;/code> calls when the user provides a unique identifier.&lt;/td>
&lt;td style="text-align:left">~22k&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;code>ORDER_COMPLETED&lt;/code>&lt;/td>
&lt;td style="text-align:left">Detailed payloads from tracked &lt;code>order_completed&lt;/code> events.&lt;/td>
&lt;td style="text-align:left">~1.2k&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>The events that generate these tables follow the pattern of a standard ecommerce conversion funnel (pageview, signup, order).&lt;/p>
&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">This data starts from June 2023 and is valid until mid 2027, ensuring that future users can still use it to run their Profiles projects.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="properties" data-heading="Properties" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/sample-data/" data-title="Snowflake Sample Data" -->
&lt;h2 id="properties">Properties&lt;/h2>&lt;p>This dataset includes a subset of the standard properties found in the &lt;a href="https://www.rudderstack.com/docs/destinations/warehouse-destinations/warehouse-schema/" >RudderStack Warehouse Schema spec&lt;/a> for each table. The required columns for running Profiles and Predictions projects are also present.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="user-information" data-heading="User information" data-level="3" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/sample-data/" data-title="Snowflake Sample Data" -->
&lt;h3 id="user-information">User information&lt;/h3>&lt;p>The user data includes a subset of our standard properties for &lt;code>identify&lt;/code> calls.&lt;/p>
&lt;p>This dataset contains a total of ~10k unique users by &lt;code>anonymousId&lt;/code>. About 5.8k of these unique users are known users (with an associated &lt;code>identify&lt;/code> call).&lt;/p>
&lt;br /></description></item><item><title>Archive: Supported Git URLs</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/git-url/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/git-url/</guid><description>
&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>This section is applicable for Profiles CLI project.&lt;/p>
&lt;p>To know about the supported Git URLs in the RudderStack dashboard, see the &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/management/import-from-git/#steps" >Import from Git&lt;/a> guide.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;p>Profiles supports Git URLs for packages in the &lt;code>ssh://git@host:port/path.git&lt;/code> format.&lt;/p>
&lt;p>For private repos, RudderStack only supports SSH Git URLs. You need to add credentials to the &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/dev-docs/site-configuration-file/" >&lt;code>siteconfig.yaml&lt;/code>&lt;/a> and public SSH key manually to the platforms.&lt;/p>
&lt;p>The URL scheme doesn&amp;rsquo;t depend on individual Git provider host. You can use the below-mentioned Git URLs:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">&lt;/th>
&lt;th style="text-align:left">URL Syntax&lt;/th>
&lt;th style="text-align:left">Format (Example)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">URL for the default branch of a repository&lt;/td>
&lt;td style="text-align:left">&lt;code>https://&amp;lt;provider-host&amp;gt;/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/path/to/project&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;strong>Github&lt;/strong>: &lt;code>https://github.com/rudderlabs/librs360-shopify-features/shopify-features&lt;/code>&lt;br/> &lt;br/> &lt;strong>Gitlab&lt;/strong>: &lt;code>https://gitlab.com/rudderlabs/librs360-shopify-features/shopify-features&lt;/code> &lt;br/>&lt;br/> &lt;strong>Bitbucket&lt;/strong>:&lt;code>https://bitbucket.org/rudderlabs/librs360-shopify-features/shopify-features&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">SSH URL for the default branch of a private repository&lt;/td>
&lt;td style="text-align:left">&lt;code>git@&amp;lt;provider-host&amp;gt;:&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/path/to/project&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;strong>Github&lt;/strong>: &lt;code>git@github.com:rudderlabs/librs360-shopify-features/shopify-features&lt;/code>&lt;br/>&lt;br/> &lt;strong>Gitlab&lt;/strong>: &lt;code>git@gitlab.com:rudderlabs/librs360-shopify-features/shopify-features&lt;/code>&lt;br/>&lt;br/> &lt;strong>Bitbucket&lt;/strong>:&lt;code>git@gbitbucket.org:rudderlabs/librs360-shopify-features/shopify-features&lt;/code>&lt;br/>&lt;br/> &lt;strong>Azure DevOps&lt;/strong>: &lt;code>git@ssh.dev.azure.com:v3/rudderlabs/profiles-project/librs360-shopify-features&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">URL for a specific branch of a repository&lt;/td>
&lt;td style="text-align:left">&lt;code>https://&amp;lt;provider-host&amp;gt;/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/tree/&amp;lt;branch-name&amp;gt;/path/to/project&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;strong>Github&lt;/strong>: &lt;code>https://github.com/rudderlabs/librs360-shopify-features/tree/main/shopify-features&lt;/code> &lt;br/>&lt;br/> &lt;strong>Gitlab&lt;/strong>: &lt;code>https://gitlab.com/rudderlabs/librs360-shopify-features/tree/main/shopify-features&lt;/code>&lt;br/>&lt;br/> &lt;strong>Bitbucket&lt;/strong>:&lt;code>https://bitbucket.org/rudderlabs/librs360-shopify-features/tree/main/shopify-features&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">URL for a specific tag within the repository&lt;/td>
&lt;td style="text-align:left">&lt;code>https://&amp;lt;provider-host&amp;gt;/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/tag/&amp;lt;tag-name&amp;gt;/path/to/project&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;strong>Github&lt;/strong>: &lt;code>https://github.com/rudderlabs/librs360-shopify-features/tag/wht_test/shopify-features&lt;/code>&lt;br/>&lt;br/> &lt;strong>Gitlab&lt;/strong>: &lt;code>https://gitlab.com/rudderlabs/librs360-shopify-features/tag/wht_test/shopify-features&lt;/code>&lt;br/>&lt;br/> &lt;strong>Bitbucket&lt;/strong>:&lt;code>https://bitbucket.org/rudderlabs/librs360-shopify-features/tag/wht_test/shopify-features&lt;/code>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">URL for a specific commit within the repository&lt;/td>
&lt;td style="text-align:left">&lt;code>https://&amp;lt;provider-host&amp;gt;/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/commit/&amp;lt;commit-hash&amp;gt;/path/to/project&lt;/code>&lt;/td>
&lt;td style="text-align:left">&lt;strong>Github&lt;/strong>: &lt;code>https://github.com/rudderlabs/librs360-shopify-features/commit/b8d49/shopify-features&lt;/code> &lt;br/>&lt;br/>&lt;strong>Gitlab&lt;/strong>: &lt;code>https://gitlab.com/rudderlabs/librs360-shopify-features/commit/b8d49/shopify-features&lt;/code> &lt;br/>&lt;br/> &lt;strong>Bitbucket&lt;/strong>:&lt;code>https://bitbucket.org/rudderlabs/librs360-shopify-features/commit/b8d49/shopify-features&lt;/code>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>Archive: Glossary</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/</guid><description>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="cardinality-audit-table" data-heading="Cardinality Audit table" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="cardinality-audit-table">Cardinality Audit table&lt;/h2>&lt;p>A system table that logs all cardinality violations with details on what was filtered and why.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="cardinality-rules" data-heading="Cardinality rules" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="cardinality-rules">Cardinality rules&lt;/h2>&lt;p>A configuration that limits the maximum number of connections between different ID types in an identity graph.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="cardinality-violation" data-heading="Cardinality violation" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="cardinality-violation">Cardinality violation&lt;/h2>&lt;p>Occurs when a node exceeds the maximum allowed connections defined by cardinality rules.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="cohorts" data-heading="Cohorts" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="cohorts">Cohorts&lt;/h2>&lt;p>A Cohort refers to a subset of instances of an entity meeting a specified set of characteristics, behaviors, or attributes. Using cohorts, you can define core customer segments and drive targeted marketing campaigns and deliver personalized experiences.&lt;/p>
&lt;p>For example, you can define a cohort for users who purchased items in the last 90 days, users based in a specific geographical location, etc.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="edge-cardinality" data-heading="Edge cardinality" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="edge-cardinality">Edge cardinality&lt;/h2>&lt;p>Defines the number of connections a node has to nodes of a specific type.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="edge-sources" data-heading="Edge sources" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="edge-sources">Edge sources&lt;/h2>&lt;p>The &lt;code>edge_sources&lt;/code> field provides the input sources for an identity stitching model. You can choose from the input sources defined in the &lt;code>inputs.yaml&lt;/code> file and list them under the &lt;code>edge_sources&lt;/code> field in the &lt;code>models/profiles.yaml&lt;/code> file.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="entity" data-heading="Entity" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="entity">Entity&lt;/h2>&lt;p>Entity refers to a digital representation of a class of real world distinct objects for which you can create a profile. An entity can be a user, account, customer, product, or any other object that requires profiling.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="entity-features-entity_var" data-heading="Entity features (&lt;code>entity_var&lt;/code>)" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="entity-features-entity_var">Entity features (&lt;code>entity_var&lt;/code>)&lt;/h2>&lt;p>There are various attributes related to an entity whose profile you are trying to create. For example, they can be &lt;code>name&lt;/code>, &lt;code>city&lt;/code>, &lt;code>LastVisitTimestamp&lt;/code>, etc. for the &lt;code>user&lt;/code> entity. Each attribute is called an &lt;code>entity_var&lt;/code>, and it is derived by performing calculation or aggregation on a set of values. Together, all the attributes create a complete picture of the entity. By default, every &lt;code>entity_var&lt;/code> gets stored as a feature, such as &lt;code>days_active&lt;/code>, &lt;code>last_seen&lt;/code>, etc.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="feature-views" data-heading="Feature views" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="feature-views">Feature views&lt;/h2>&lt;p>If the features/traits of an entity are spread across multiple entity vars and ML models, you can use Feature View to get them together into a single view. These models are usually defined in &lt;code>pb_project.yaml&lt;/code> file by creating entries under &lt;code>feature_view&lt;/code> key with corresponding entity.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="features" data-heading="Features" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="features">Features&lt;/h2>&lt;p>Features are inputs for the machine learning model. In a general sense, features are pieces of user information we already know. For example, number of days they opened the app in the past week, items they left in the cart, etc.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="feature-tables-deprecated" data-heading="Feature tables (Deprecated)" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="feature-tables-deprecated">Feature tables (Deprecated)&lt;/h2>&lt;p>Feature tables are the outputs based on events, user attributes, and other defined criteria across any data set in your data warehouse. You can define models that can create feature tables for users with ID stitching, ML notebooks and external sources, etc.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="frontier-view" data-heading="Frontier view" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="frontier-view">Frontier view&lt;/h2>&lt;p>A Frontier view is a dynamic view that always points to the output of the latest PB run&amp;rsquo;s models, ensuring that the queries retrieve the most up-to-date data without altering any downstream dependencies.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="id-stitcher" data-heading="ID Stitcher" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="id-stitcher">ID Stitcher&lt;/h2>&lt;p>Data usually comes from different sources and these sources may assign different IDs. To track a user’s journey (or any other entity) uniquely across all these data sources, you need to stitch together all these IDs. ID stitching helps map different IDs of the same user (or any other entity) to a single canonical ID. It does this by doing connected component analysis over the Id-Id edge graph specified in its configuration.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="identity-stubs" data-heading="Identity stubs" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="identity-stubs">Identity stubs&lt;/h2>&lt;p>Identity stubs are nodes that had their connections removed due to cardinality violations.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="input-var" data-heading="Input var" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="input-var">Input var&lt;/h2>&lt;p>Instead of a single value per entity ID, an input var represents a single value per row of an input model. You can think of it as representing addition of an additional column to an input model. It can be used to define entity features. However, it is not itself an entity feature because it does not represent a single value per entity ID.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="inputs" data-heading="Inputs" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="inputs">Inputs&lt;/h2>&lt;p>Inputs refers to the input data sources used to create the material (output) tables in the warehouse. The inputs file (&lt;code>models/inputs.yaml&lt;/code>) lists the tables/views you use as input sources, including the column name and SQL expression for retrieving the values.&lt;/p>
&lt;p>You can use data from various input sources such as event stream (loaded from event data) and any existing tables in the warehouse (generated by external tools).&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="label" data-heading="Label" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="label">Label&lt;/h2>&lt;p>Label is the output of the machine learning model and is the metric you want to predict. In our case, it is the unknown user trait you want to know in advance.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="machine-learning-model" data-heading="Machine Learning model" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="machine-learning-model">Machine Learning model&lt;/h2>&lt;p>A machine learning model can be thought of as a function that takes in some input parameters and returns an output.&lt;/p>
&lt;p>Unlike regular programming, this function is not explicitly defined. Instead, a high level architecture is defined and several pieces are filled by looking at the data. This whole process of filling the gaps is driven by different optimisation algorithms as they try to learn complex patterns in the input data that explain the output.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="materialization" data-heading="Materialization" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="materialization">Materialization&lt;/h2>&lt;p>Materialization refers to the process of creating output tables/views in a warehouse by running models. You can define the following fields for materialization:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>output_type&lt;/code>: Determines the type of output you want to create in your warehouse. Allowed values are:&lt;/p>
&lt;ul>
&lt;li>&lt;code>table&lt;/code>: Output is built and stored in a table in the warehouse.&lt;/li>
&lt;li>&lt;code>view&lt;/code>: Output is built and stored as a view in the warehouse.&lt;/li>
&lt;li>&lt;code>ephemeral&lt;/code>: Output is created in the form of temporary data which serves as an intermediary stage for being consumed by another model.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;code>run_type&lt;/code>: Determines the run type of models. Allowed values are:&lt;/p>
&lt;ul>
&lt;li>&lt;code>discrete&lt;/code> (default): In this mode, the model runs in a full refresh mode, calculating its results from the input sources. A SQL model supports only the &lt;code>discrete&lt;/code> run type.&lt;/li>
&lt;li>&lt;code>incremental&lt;/code>: In this mode, the model calculates its results from the previous run and only reads row inserts and updates from the input sources. It only updates or inserts data and does not delete anything making it efficient. However, only the identity stitching model supports this mode.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="material-tables" data-heading="Material tables" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="material-tables">Material tables&lt;/h2>&lt;p>When you run the PB models, they produce materials - that is, tables/views in the database that contain the results of that model run. These output tables are known as material tables.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="material-registry" data-heading="Material registry" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="material-registry">Material registry&lt;/h2>&lt;p>This is an internal table created in the output schema within your warehouse and is used as a log by PB. Every model run is recorded in this table.&lt;/p>
&lt;p>You will find two records for every model run - the first entry is logged when the model execution starts and the second one is logged when the execution is finished. For example, &lt;code>Table name: material_registry_4;&lt;/code>&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="predictions" data-heading="Predictions" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="predictions">Predictions&lt;/h2>&lt;p>The model&amp;rsquo;s output is called a prediction. A good model makes predictions that are close to the actual label. You generally need predictions where the labels are not available. In our case, most often the labels come a few days later.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="prediction-horizon-days" data-heading="Prediction horizon days" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="prediction-horizon-days">Prediction horizon days&lt;/h2>&lt;p>This refers to the number of days in advance when you make the prediction.&lt;/p>
&lt;p>For example, statements like &amp;ldquo;A user is likely to sign-up in the next 30 days, 90 days, etc.&amp;rdquo; are often time-bound, that is, the predictions are meaningless without the time period.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="profile-builder-pb" data-heading="Profile Builder (PB)" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="profile-builder-pb">Profile Builder (PB)&lt;/h2>&lt;p>Profile Builder (PB) is a command-line interface (CLI) tool that simplifies data transformation within your warehouse. It generates customer profiles by stitching data together from multiple sources. It takes existing tables or the output of other transformations as input to generate output tables or views based on your specifications.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="pb-project" data-heading="PB project" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="pb-project">PB project&lt;/h2>&lt;p>A PB project is a collection of interdependent warehouse transformations. These transformations are run over the warehouse to query the data for sample outputs, discover features in the warehouse, and more.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="pb-model" data-heading="PB model" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="pb-model">PB model&lt;/h2>&lt;p>Any transformation that can be applied to the warehouse data is called a PB model. RudderStack supports various types of models like ID stitching, feature view, Python models, etc.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="pynative-model" data-heading="PyNative model" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="pynative-model">PyNative model&lt;/h2>&lt;p>PyNative models are a set of Profiles models built in Python, and are run by Profiles through a gRPC Python server. Propensity, Attribution etc are some of the existing PyNative models.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="schema-versions" data-heading="Schema versions" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="schema-versions">Schema versions&lt;/h2>&lt;p>Every PB release supports a specific set of project schemas. A project schema determines the correct layout of a PB project, including the exact keys and their values in all project files.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="source-url" data-heading="Source URL" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="source-url">Source URL&lt;/h2>&lt;p>This is a column in the material registry and represents the location of the PB project that was run.&lt;/p>
&lt;p>The source URL also helps us isolate different projects. If you are running the same project from different locations, RudderStack treats them as different projects.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="sql-template-models" data-heading="SQL template models" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="sql-template-models">SQL template models&lt;/h2>&lt;p>Sometimes the standard model types provided by Profiles are insufficient to capture complex use cases. In such cases, RudderStack supports the use of SQL template models to explicitly templatize SQL.&lt;/p>
&lt;p>SQL template models can be used as an input to an entity-var/ input-var or as an edge-source in id-stitcher.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="timegrain" data-heading="Timegrain" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="timegrain">Timegrain&lt;/h2>&lt;p>Using &lt;code>time_grain&lt;/code> parameter for a model, you can restrict the context timestamp of that model to the specified time boundary. In other words, a feature v1 with &lt;code>time_grain&lt;/code> value of a &lt;code>day&lt;/code> will look at all the data up to UTC 00:00 hrs of any particular day only.&lt;/p>
&lt;p>If you compute that feature at 3:00PM or 5:00PM, the result would be the same because its inputs change only at the very beginning of the day. Similarly, if &lt;code>time_grain&lt;/code> for a model is set to a &lt;code>week&lt;/code>, it needs to be run only once a week. Running it twice within the week won’t change its results.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="training" data-heading="Training" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/glossary/" data-title="Glossary" -->
&lt;h2 id="training">Training&lt;/h2>&lt;p>Training refers to the process of a machine learning model looking at the available data and trying to learn a function that explains the &lt;a href="#label" >labels&lt;/a>.&lt;/p>
&lt;p>Once you train a model on historic users, you can use it to make predictions for new users. You need to keep retraining the model as you get new data so that the model continues to learn any emerging patterns in the new users.&lt;/p></description></item><item><title>Archive: Profiles FAQ</title><link>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/</guid><description>
&lt;p>This guide contains solutions for some of the commonly asked questions on Profiles. For queries or issues not listed in this guide, contact &lt;a href="mailto:support@rudderstack.com" >RudderStack Support&lt;/a>.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="setup-and-installation" data-heading="Setup and installation" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="setup-and-installation">Setup and installation&lt;/h2>&lt;p>&lt;strong>I have installed Python3, yet when I install and execute &lt;code>pb&lt;/code>, it doesn&amp;rsquo;t return anything on screen.&lt;/strong>&lt;/p>
&lt;p>Try restarting your Terminal/Shell/PowerShell and try again.&lt;/p>
&lt;p>You can also try to find the location of your Python executable. PB would be installed where the executables embedded in other Python packages are installed.&lt;/p>
&lt;p>&lt;strong>I am an existing user who updated to the new version, and now I am unable to use the PB tool. On Windows, I get the error:&lt;/strong> &lt;code>'pb' is not recognized as an internal or external command, operable program or batch file.&lt;/code>&lt;/p>
&lt;p>Execute the following commands to do a fresh install:&lt;/p>
&lt;ol>
&lt;li>&lt;code>pip3 uninstall profiles-rudderstack-bin&lt;/code>&lt;/li>
&lt;li>&lt;code>pip3 uninstall profiles-rudderstack&lt;/code>&lt;/li>
&lt;li>&lt;code>pip3 install profiles-rudderstack --no-cache-dir&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>I am unable to download profile builder by running &lt;code>pip3 install profiles-rudderstack&lt;/code> even though I have Python installed.&lt;/strong>&lt;/p>
&lt;p>Firstly, make sure that Python 3 is installed correctly. You can also try to substitute &lt;code>pip3&lt;/code> with &lt;code>pip&lt;/code> and execute the install command.&lt;/p>
&lt;p>If that doesn&amp;rsquo;t work, Python 3 is likely accessible from a local directory.&lt;/p>
&lt;ol>
&lt;li>Navigate to that directory and try the install command again.&lt;/li>
&lt;li>After installation, PB should be accessible from anywhere.&lt;/li>
&lt;li>Validate that you&amp;rsquo;re able to access the path using &lt;code>which pb&lt;/code>.&lt;/li>
&lt;li>You may also execute &lt;code>echo $PATH&lt;/code> to view current path settings.&lt;/li>
&lt;li>If &lt;code>echo $PATH&lt;/code> does not give you the path, then you can find out where Profiles Builder is installed using &lt;code>pip3 show profiles-rudderstack&lt;/code>. This command displays a list of the files associated with the application, including the location in which it was installed. You can navigate to that directory.&lt;/li>
&lt;li>Navigate to the &lt;code>/bin&lt;/code> subdirectory and execute the &lt;code>ls&lt;/code> command to confirm that &lt;code>pb&lt;/code> is present there.&lt;/li>
&lt;li>To add the path of the location where PB is installed via pip3, execute: &lt;code>export PATH=$PATH:&amp;lt;path_to_application&amp;gt;&lt;/code>. This will add the path to your system&amp;rsquo;s PATH variable, making it accessible from any directory. Note that the path should be complete and not relative to the current working directory.&lt;/li>
&lt;/ol>
&lt;p>If you still face issues, you can try to install it manually. Contact &lt;a href="mailto:support@rudderstack.com" >RudderStack Support&lt;/a> for the executable file and download it on your machine. Follow these steps afterwards:&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-fedbca" data-toggle="tab" href="#fedbca"
role="tab" aria-controls="nav-home" aria-selected="true">Linux/MacOS&lt;/a>
&lt;a class="nav-item nav-link "
id="nav-fdbaec" data-toggle="tab" href="#fdbaec"
role="tab" aria-controls="nav-home" aria-selected="true">Windows&lt;/a>
&lt;/div>
&lt;/nav>
&lt;div class="tab-content" id="nav-tab-content">
&lt;div class="tab-pane fade show active " id="fedbca" role="tabpanel" aria-labelledby="nav-1">
&lt;ol>
&lt;li>Create &lt;code>rudderstack&lt;/code> directory: &lt;code>sudo mkdir /usr/local/rudderstack&lt;/code>.&lt;/li>
&lt;li>Move the downloaded file to that directory: &lt;code>sudo mv &amp;lt;name_of_downloaded_file&amp;gt; /usr/local/rudderstack/pb&lt;/code>.&lt;/li>
&lt;li>Grant executable permission to the file: &lt;code>chmod +x /usr/local/rudderstack/pb&lt;/code>.&lt;/li>
&lt;li>Navigate to the directory &lt;code>/usr/local/rudderstack&lt;/code> from your file explorer. Ctrl+Click on pb and select &lt;strong>Open&lt;/strong> to run it from Terminal.&lt;/li>
&lt;li>Symlink to a filename pb in &lt;code>/usr/local/bin&lt;/code> so that the command can locate it from the env PATH. Create a file if it does not exist: &lt;code>sudo touch /usr/local/bin/pb&lt;/code>. Then execute &lt;code>sudo ln -sf /usr/local/rudderstack/pb /usr/local/bin/pb&lt;/code>.&lt;/li>
&lt;li>Verify the installation by running &lt;code>pb&lt;/code> in Terminal. In case you get the error &lt;code>command not found: pb&lt;/code>, then check if &lt;code>/usr/local/bin&lt;/code> is defined in PATH by executing the command: &lt;code>echo $PATH&lt;/code>. If not, then add &lt;code>/usr/local/bin&lt;/code> to PATH.&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div class="tab-pane fade show " id="fdbaec" role="tabpanel" aria-labelledby="nav-1">
&lt;ol>
&lt;li>If the Windows firewall prompts you after downloading, proceed with &lt;code>Run Anyway&lt;/code>.&lt;/li>
&lt;li>Rename the executable as &lt;code>pb&lt;/code>.&lt;/li>
&lt;li>Move the file to a directory, for example, &lt;code>C:\Program Files\Rudderstack&lt;/code>. You can create the directory if required.&lt;/li>
&lt;li>Set the path of the &lt;code>pb.exe&lt;/code> file in the environment variables.&lt;/li>
&lt;li>Verify the installation by running &lt;code>pb&lt;/code> in the command prompt.&lt;/li>
&lt;/ol>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>When I try to install Profile Builder tool using pip3 I get error message saying: &lt;code>Requirement already satisfied&lt;/code>&lt;/strong>&lt;/p>
&lt;p>Try the following steps:&lt;/p>
&lt;ol>
&lt;li>Uninstall PB using &lt;code>pip3 uninstall profiles-rudderstack&lt;/code>.&lt;/li>
&lt;li>Install again using &lt;code>pip3 install profiles-rudderstack&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>Note that this won&amp;rsquo;t remove your existing data such as models and siteconfig files.&lt;/p>
&lt;p>&lt;strong>I am facing this error while ugrading my Profiles project: &lt;code>pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. profiles-pycorelib 0.2.2 requires profiles-rudderstack!=0.10.6,&amp;lt;=0.10.7,&amp;gt;=0.10.5, but you have profiles-rudderstack 0.11.0 which is incompatible.&lt;/code>&lt;/strong>&lt;/p>
&lt;p>This is because you must uninstall and then reinstall the &lt;code>pycorelib&lt;/code> library while upgrading to a recent version.&lt;/p>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="warehouse-issues" data-heading="Warehouse issues" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="warehouse-issues">Warehouse issues&lt;/h2>&lt;p>&lt;strong>For my Snowflake warehouse, I have two separate roles to read from input tables and write to output tables? How should I define the roles?&lt;/strong>&lt;/p>
&lt;p>You need to create an additional role as a union of those two roles. PB project needs to read the input tables and write the results back to the warehouse schema.&lt;/p>
&lt;p>Furthermore, each run is executed using a single role as specified in the &lt;code>siteconfig.yaml&lt;/code> file. Hence, it is best in terms of security to create a new role which has read as well as write access for all the relevant inputs and the output schema.&lt;/p>
&lt;p>&lt;strong>Can I refer a table present in another database within the warehouse?&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Snowflake&lt;/strong>: You can refer tables from cross-database as long as they are in same warehouse.&lt;/li>
&lt;li>&lt;strong>Bigquery&lt;/strong>: You can refer tables from cross-projects.&lt;/li>
&lt;li>&lt;strong>Databricks&lt;/strong>: You can refer tables from database in the same or another warehouse.&lt;/li>
&lt;li>&lt;strong>Redshift&lt;/strong>: For the following setups:
&lt;ul>
&lt;li>Cluster with DC2 Nodes: You cannot use tables from cross-database in the project.&lt;/li>
&lt;li>Cluster with RA3 Nodes/Serverless: You can refer tables from cross-database as long as they are in same warehouse.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>While working with Profiles, how can I use the tables in my BigQuery warehouse that are partitioned on the time criteria?&lt;/strong>&lt;/p>
&lt;p>To refer to the partitioned tables in your Profiles project, you must include a filter based on the partitioned column. To do so, add &lt;code>is_event_stream: true&lt;/code> and use the partitioned filter as &lt;code>occurred_at_col: timestamp&lt;/code> while defining your &lt;code>inputs.yaml&lt;/code> file:&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">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">rsTracks&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">contract&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">is_optional&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kc">false&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">is_event_stream&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kc">true&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">with_entity_ids&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">user&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">with_columns&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="l">timestamp&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="l">user_id&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="l">anonymous_id&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">app_defaults&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">table&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">profiles_new.tracks&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">occurred_at_col&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">timestamp&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">ids&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">select&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;user_id&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="l">user_id&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">entity&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">user&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">select&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;anonymous_id&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="l">anonymous_id&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">entity&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">user&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="compile-command" data-heading="Compile command" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="compile-command">Compile command&lt;/h2>&lt;p>&lt;strong>I am trying to execute the &lt;code>compile&lt;/code> command by fetching a repo via GIT URL but getting this error: &lt;code>making git new public keys: ssh: no key found&lt;/code>&lt;/strong>&lt;/p>
&lt;p>You need to add the OpenSSH private key to your &lt;code>siteconfig.yaml&lt;/code> file. If you get the error &lt;code>could not find expected&lt;/code> afterwards, try correcting the spacing in your &lt;code>siteconfig.yaml&lt;/code> file.&lt;/p>
&lt;p>&lt;strong>While trying to segregate identity stitching and feature table in separate model files, I am getting this error: &lt;code>mapping values are not allowed in this context&lt;/code>&lt;/strong>&lt;/p>
&lt;p>This is due to the spacing issue in &lt;code>siteconfig.yaml&lt;/code> file. You may create a new project to compare the spacing. Also, make sure you haven&amp;rsquo;t missed any keys.&lt;/p>
&lt;p>&lt;strong>While using v0.13, I notice that two subfolders are created inside the output folder for compile and run, even if I execute only the &lt;code>pb run command&lt;/code>. What exactly is the difference between them?&lt;/strong>&lt;/p>
&lt;p>RudderStack generates two subfolders for easy debugging as compiling is a substep of running the project. If you encounter an error during the project run and are not able to get the corresponding SQL generated for this step, you can still rely on the SQL generated during the compile step to debug the error.&lt;/p>
&lt;p>&lt;strong>I want to build profiles over my Snowflake warehouse data which is pulled in using Salesforce (CRM tool). Is it necessary that the data in my Snowflake warehouse flows via RudderStack? Can I build an entity model for Salesforce users that references the Snowflake table?&lt;/strong>&lt;/p>
&lt;p>RudderStack Profiles lets you use any data present in your warehouse. It does not need to come in via RudderStack. Further, you can define the entities in a &lt;code>pb_project.yaml&lt;/code> file and use them declaratively while describing the columns of your input sources.&lt;/p>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="command-progress--lifecycle" data-heading="Command progress &amp;amp; lifecycle" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="command-progress--lifecycle">Command progress &amp;amp; lifecycle&lt;/h2>&lt;p>&lt;strong>I executed a command and it is taking too long. Is there a way to kill a process on data warehouse?&lt;/strong>&lt;/p>
&lt;p>It could be due to the other queries running simultaneously on your warehouse. For example, for the Snowflake warehouse, open the &lt;strong>Queries&lt;/strong> tab and manually kill the long running processes.&lt;/p>
&lt;p>&lt;strong>Due to the huge data, I am experiencing long execution times. My screen is getting locked, thereby preventing the process from getting completed. What can I do?&lt;/strong>&lt;/p>
&lt;p>You can use the &lt;code>screen&lt;/code> command on UNIX/MacOS to detach your screen and allow the process to run in the background.
You can use your terminal for other tasks, thus avoiding screen lockouts and allowing the query to complete successfully.&lt;/p>
&lt;p>Here are some examples:&lt;/p>
&lt;ul>
&lt;li>To start a new screen session and execute a process in detached mode: &lt;code>screen -L -dmS profiles_rn_1 pb run&lt;/code>. Here:
&lt;ul>
&lt;li>&lt;code>-L&lt;/code> flag enables logging.&lt;/li>
&lt;li>&lt;code>-dmS&lt;/code> starts as a daemon process in detached mode.&lt;/li>
&lt;li>&lt;code>profiles_rn_1&lt;/code> is the process name.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>To list all the active screen sessions: &lt;code>screen -ls&lt;/code>.&lt;/li>
&lt;li>To reattach to a detached screen session: &lt;code>screen -r [PID or screen name]&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>The CLI was running earlier but it is unable to access the tables now. Does it delete the view and create again?&lt;/strong>&lt;/p>
&lt;p>Yes, every time you run the project, Profiles creates a new materials table and replaces the view.&lt;/p>
&lt;p>Hence, you need to grant a select on future views/tables in the respective schema and not just the existing views/tables.&lt;/p>
&lt;p>&lt;strong>Does the CLI support downloading a git repo using siteconfig before executing&lt;/strong> &lt;code>pb run&lt;/code> &lt;strong>? Or do I have to manually clone the repo first?&lt;/strong>&lt;/p>
&lt;p>You can pass the Git URL as a parameter instead of project&amp;rsquo;s path, as shown:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">pb&lt;/span> &lt;span class="n">run&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="n">git&lt;/span>&lt;span class="o">@.....&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>When executing&lt;/strong> &lt;code>run&lt;/code> &lt;strong>command, I get a message:&lt;/strong> &lt;code>Please use sequence number ... to resume this project in future runs&lt;/code> &lt;strong>. Does it mean that a user can exit using Ctrl+C and later if they give this seq_no then it&amp;rsquo;ll continue from where it was cancelled earlier?&lt;/strong>&lt;/p>
&lt;p>The &lt;code>pb run --seq_no &amp;lt;&amp;gt;&lt;/code> flag allows for the provision of a sequence number to run the project. This flag can either resume an existing project or use the same context to run it again.&lt;/p>
&lt;p>With the introduction of time-grain models, multiple sequence numbers can be assigned and used for a single project run.&lt;/p>
&lt;p>&lt;strong>What flag should I set to force a run for the same input data (till a specified timestamp), even if a previous run exists?&lt;/strong>&lt;/p>
&lt;p>You can execute &lt;code>pb run --force --model_refs models/my_id_stitcher,entity/user/user_var_1,entity/user/user_var_2,...&lt;/code>&lt;/p>
&lt;p>&lt;strong>Can the hash change even if schema version did not change?&lt;/strong>&lt;/p>
&lt;p>Yes, as the hash versions depends on project&amp;rsquo;s implementation while the schema versions are for the project&amp;rsquo;s YAML layout.&lt;/p>
&lt;p>&lt;strong>Is there a way to pick up from a point where my last pb run failed on a subsequent run? For large projects, I don’t want to have to rerun all of the features if something failed as some of these take several hours to run&lt;/strong>&lt;/p>
&lt;p>Yes, you can just execute the run command with the specific sequence number, for example, &lt;code>pb run —seq_no 8&lt;/code>.&lt;/p>
&lt;p>&lt;strong>What is the intent of &lt;code>pb discover models&lt;/code> and &lt;code>pb discover materials&lt;/code> command?&lt;/strong>&lt;/p>
&lt;p>You can use &lt;code>pb discover models&lt;/code> to list all the models from registry and &lt;code>pb discover materials&lt;/code> to list all the materials from the registry.&lt;/p>
&lt;p>&lt;strong>I got this while running &lt;code>pb show models&lt;/code>. What is &amp;ldquo;Maybe Enabled&amp;rdquo;?&lt;/strong>&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/profiles/show_models.webp" href="https://www.rudderstack.com/docs/docs/images/profiles/show_models.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/profiles/show_models.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>In the show models command, the enable status is computed without looking at tables in the warehouse. Imagine a model&lt;code>M&lt;/code> that has an optional input column. So, &lt;code>M&lt;/code> is enabled if and only if the optional input column is present. Hence, it may or may not be enabled, depending on whether the input column is present or not.&lt;/p>
&lt;p>&lt;strong>How can I handle my Profiles project in the development and production workspace in RudderStack?&lt;/strong>&lt;/p>
&lt;p>Profiles support git branches in the RudderStack dashboard. Refer &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/git-url/" >Supported Git URLs &lt;/a> for more information.&lt;/p>
&lt;p>In case you wish to run only one project in the CLI and run them differently in dev and prod, you can use &lt;strong>targets&lt;/strong>:&lt;/p>
&lt;ol>
&lt;li>Create a connection using &lt;code>pb init connection&lt;/code> and give a connection name (say &lt;code>test&lt;/code>). Then, give a default target name, say &lt;em>prod&lt;/em>. Enter remaining details.&lt;/li>
&lt;li>Create another connection using &lt;code>pb init connection&lt;/code> and give the same connection name as before (&lt;code>test&lt;/code>). Then, give a different target name, say &lt;code>dev&lt;/code>. Enter remaining connection details for connecting to your warehouse.&lt;/li>
&lt;li>When you execute a command via CLI, you need to pass &lt;code>-t&lt;/code> flag. The first connection you&amp;rsquo;ve defined is the default one, hence, you don&amp;rsquo;t need to pass a flag explicitly. However, you can pass it for the other one. For example, &lt;code>pb run -t dev&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>Targets aren&amp;rsquo;t yet supported in the UI. So while you can run the same project on different instances (prod, dev) in the CLI; in the UI you have to make either a different project or a different branch/tag/subfolder.&lt;/p>
&lt;p>&lt;strong>I am getting an &amp;ldquo;operation timed out&amp;rdquo; error even though the &lt;code>pb validate access&lt;/code> command worked fine.&lt;/strong>&lt;/p>
&lt;p>Retry the command run after some time. It should resolve the issue.&lt;/p>
&lt;p>&lt;strong>I have defined a version constraint in my project and migrated it to the latest schema using &lt;code>pb migrate auto&lt;/code> command. The project is migrated except the &lt;code>python_requirements&lt;/code> key which has the same version constraints. How do I change that?&lt;/strong>&lt;/p>
&lt;p>You need to manually change the project version in CLI as the version constraints don&amp;rsquo;t change automatically.&lt;/p>
&lt;p>&lt;strong>How can I generate the &lt;code>.sql&lt;/code> output file for my Profiles project containing &lt;code>sql_models.yaml&lt;/code>. It is currently not getting generated because the SQL model is not used anywhere.&lt;/strong>&lt;/p>
&lt;p>Even if your SQL model is not used anywhere, you can generate the &lt;code>.sql&lt;/code> output file in the warehouse by ensuring that:&lt;/p>
&lt;ul>
&lt;li>Your model&amp;rsquo;s &lt;code>output_type&lt;/code> is not set to &lt;code>ephemeral&lt;/code>. Removing the materialization section from the &lt;code>model_spec&lt;/code> and observe the outputs.&lt;/li>
&lt;li>Your model&amp;rsquo;s &lt;code>requested_enable_status&lt;/code> is not set to &lt;code>only_if_needed&lt;/code>.&lt;/li>
&lt;/ul>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="identity-stitching" data-heading="Identity stitching" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="identity-stitching">Identity stitching&lt;/h2>&lt;p>&lt;strong>There are many large size connected components in my warehouse. To increase the accuracy of stitched data, I want to increase the number of iterations. Is it possible?&lt;/strong>&lt;/p>
&lt;p>The default value of the largest diameter, that is, the longest path length in connected components, is 30.&lt;/p>
&lt;p>You can increase it by defining a &lt;code>max_iterations&lt;/code> key under &lt;code>model_spec&lt;/code> of your ID stitcher model in &lt;code>models/profiles.yaml&lt;/code>, and specifying its value as the max diameter of connected components.&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">Note that the algorithm can give incorrect results in case of large number of iterations.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;p>&lt;strong>Do I need to write different query each time for viewing the data of created tables?&lt;/strong>&lt;/p>
&lt;p>No, you can instead use a view name, which always points to the latest created material table. For example, if you&amp;rsquo;ve defined &lt;strong>user_stitching&lt;/strong> in your &lt;code>models/profiles.yaml&lt;/code> file, then execute &lt;code>SELECT * FROM MY_WAREHOUSE.MY_SCHEMA.user_stitching&lt;/code>.&lt;/p>
&lt;p>&lt;strong>I want to use &lt;code>customer_id&lt;/code> instead of &lt;code>main_id&lt;/code> as the ID type. So I changed the name in &lt;code>pb_project.yaml&lt;/code>, however now I am getting this error: &lt;code>Error: validating project sample_attribution: listing models for child source models/: error listing models: error building model domain_profile_id_stitcher: main id type main_id not in project id types&lt;/code>.&lt;/strong>&lt;/p>
&lt;p>In addition to making changes in the file &lt;code>pb_project.yaml&lt;/code> file, you also need to set &lt;code>main_id_type: customer_id&lt;/code> in the &lt;code>models/profiles.yaml&lt;/code> file.&lt;/p>
&lt;p>&lt;strong>If a user account (&lt;code>user_id&lt;/code>) is deleted, will the associated &lt;code>user_main_id&lt;/code> be deleted as well?&lt;/strong>&lt;/p>
&lt;p>If a &lt;code>user_id&lt;/code> is not found in the input sources, it would not be tied to that &lt;code>user_main_id&lt;/code> after a full run. However, the &lt;code>user_main_id&lt;/code> would still exist if the first node was from an &lt;code>anonymousId&lt;/code> for that user.&lt;/p>
&lt;p>&lt;strong>Suppose a &lt;code>user_main_id&lt;/code> has two associated &lt;code>user_ids&lt;/code> as they share the same phone number. If one of the &lt;code>user_id&lt;/code> changes their phone number, will the &lt;code>user_main_id&lt;/code> be updated to include only one of the &lt;code>user_ids&lt;/code>? Will a new &lt;code>user_main_id&lt;/code> be created for the other &lt;code>user_id&lt;/code>?&lt;/strong>&lt;/p>
&lt;p>In this case, as the common node (phone number) is removed, after a full run, the two users would not be associated to the same &lt;code>user_main_id&lt;/code> and a new &lt;code>user_main_id&lt;/code> would be created for the other user.&lt;/p>
&lt;p>&lt;strong>I ran identity stitching model but not able to see the output tables under the list of tables in Snowflake. What might be wrong?&lt;/strong>&lt;/p>
&lt;p>In Snowflake, you can check the &lt;strong>Databases&lt;/strong> &amp;gt; &lt;strong>Views&lt;/strong> dropdown from the left sidebar. For example, if your model name is &lt;code>domain_profile_id_stitcher&lt;/code>, you should be able to see the table with this name. In case it is still not visible, try changing the role using dropdown menu from the top right section.&lt;/p>
&lt;p>&lt;strong>I am using a view as an input source but getting an error that the view is not accessible, even though it exists in DB.&lt;/strong>&lt;/p>
&lt;p>Views need to be refreshed from time-to-time. You can try recreating the view in your warehouse and also execute a &lt;code>select *&lt;/code> on the same.&lt;/p>
&lt;p>&lt;strong>What might be the reason for following errors:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;code>processing no result iterator: pq: cannot change number of columns in view&lt;/code>.
The output view name already exists in some other project. To fix this, try dropping the view or changing its name.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>creating Latest View of moldel 'model_name': processing no result iterator: pq: cannot change data type of view column &amp;quot;valid_at&amp;quot;&lt;/code>
Drop the view &lt;code>domain_profile&lt;/code> in your warehouse and execute the command again.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>processing no result iterator: pq: column &amp;quot;rudder_id&amp;quot; does not exist&lt;/code>.
This occurs when you execute a PB project with a model name, having &lt;code>main_id&lt;/code> in it, and then you run another project with the same model name but no &lt;code>main_id&lt;/code>. To resolve this, try dropping the earlier materials using &lt;code>cleanup materials&lt;/code> command.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>I have a source table in which &lt;code>email&lt;/code> gets stored in the column for &lt;code>user_id&lt;/code>, so the field has a mix of different ID types. I have to tie it to another table where email is a separate field. When doing so, I have two separate entries for email, as type &lt;code>email&lt;/code> and &lt;code>user_id&lt;/code>. What should I do?&lt;/strong>&lt;/p>
&lt;p>You can implement the following line in the inputs tables in question:&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="w"> &lt;/span>- &lt;span class="nt">select&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">case when lower(user_id) like &amp;#39;%@%&amp;#39; THEN lower(user_id) else null end&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="l">email &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">entity&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">user&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">to_default_stitcher&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kc">true&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>How do I validate the results of identity stitching model?&lt;/strong>&lt;/p>
&lt;p>Contact &lt;a href="mailto:support@rudderstack.com" >RudderStack Support&lt;/a> if you need help in validating the clusters.&lt;/p>
&lt;p>&lt;strong>Which identifiers would you recommend that I include in the ID stitcher for an ecommerce Profiles project?&lt;/strong>&lt;/p>
&lt;p>We suggest including identifiers that are unique for every user and can be tracked across different platforms and devices. These identifiers might include but not limited to:&lt;/p>
&lt;ul>
&lt;li>Email ID&lt;/li>
&lt;li>Phone number&lt;/li>
&lt;li>Device ID&lt;/li>
&lt;li>Anonymous ID&lt;/li>
&lt;li>User names&lt;/li>
&lt;/ul>
&lt;p>These identifiers can be specified in the file &lt;code>profiles.yaml&lt;/code> file in the identity stitching model.&lt;/p>
&lt;p>Remember, the goal of identity stitching is to create a unified user profile by correlating all of the different user identifiers into one canonical identifier, so that all the data related to a particular user or entity can be associated with that user or entity.&lt;/p>
&lt;p>&lt;strong>If I run &lt;code>--force&lt;/code> with an ID Stitcher model and also pass a &lt;code>--seq_no&lt;/code> for the most recent run, will it still recreate the full ID Graph? Also, is there a way to know if the model was run incrementally or not?&lt;/strong>&lt;/p>
&lt;p>This will re-run the ID stitcher and if it is incremental, it will look for the most recent run of the stitcher. After finding the existing run for that &lt;code>seq_no&lt;/code>, it will use it as the base. This is because the base for an incremental run could be the current &lt;code>seq_no&lt;/code>. If you do not want to do this, you can pass the &lt;code>rebase_incremental&lt;/code> flag.&lt;/p>
&lt;p>&lt;strong>What is the difference between the &lt;code>valid_at&lt;/code> and &lt;code>first_seen_at&lt;/code> columns in the ID graph?&lt;/strong>&lt;/p>
&lt;p>In the context of the ID Stitcher output, the columns &lt;code>valid_at&lt;/code> and &lt;code>first_seen_at&lt;/code> capture timestamps for each record related to the edges and clusters created during the connected component analysis.&lt;/p>
&lt;ul>
&lt;li>&lt;code>first_seen_at&lt;/code>: The earliest timestamp at which a specific identifier (node) was first observed in the source data. It is set once when the node first appears and does not change when the cluster is later modified or expanded. Each node retains its own independent &lt;code>first_seen_at&lt;/code> value.&lt;/li>
&lt;li>&lt;code>valid_at&lt;/code>: Reflects the validity of this node&amp;rsquo;s current cluster assignment. It is initially derived from the minimum timestamp of the node&amp;rsquo;s source edges. However, during the stitching process, when clusters merge, &lt;code>valid_at&lt;/code> is recalculated for affected nodes. This means &lt;code>valid_at&lt;/code> may update for existing nodes in a cluster when new identifiers join, even if those specific nodes had no new activity.&lt;/li>
&lt;/ul>
&lt;p>Consider a situation where Node A and Node B are first linked on &lt;code>2024-01-01&lt;/code>. Both &lt;code>valid_at&lt;/code> and &lt;code>first_seen_at&lt;/code> for this cluster would be &lt;code>2024-01-01&lt;/code>.&lt;/p>
&lt;p>Later, Node C connects to this cluster on &lt;code>2024-02-15&lt;/code>:&lt;/p>
&lt;ul>
&lt;li>Node C&amp;rsquo;s &lt;code>first_seen_at&lt;/code> = &lt;code>2024-02-15&lt;/code> (when Node C was first observed in the source data).&lt;/li>
&lt;li>Node C&amp;rsquo;s &lt;code>valid_at&lt;/code> = &lt;code>2024-02-15&lt;/code> (when its cluster connection was established).&lt;/li>
&lt;li>Node A and B&amp;rsquo;s &lt;code>first_seen_at&lt;/code> remains &lt;code>2024-01-01&lt;/code> (unchanged).&lt;/li>
&lt;li>Node A and B&amp;rsquo;s &lt;code>valid_at&lt;/code> may update to &lt;code>2024-02-15&lt;/code> as a result of the cluster merge during stitching.&lt;/li>
&lt;/ul>
&lt;p>In summary:&lt;/p>
&lt;ul>
&lt;li>&lt;code>first_seen_at&lt;/code> is a stable, per-node timestamp recording when each identifier was first observed. Use this field when you need a reliable timestamp for individual identifiers (for example, to determine a primary email address).&lt;/li>
&lt;li>&lt;code>valid_at&lt;/code> reflects the cluster assignment validity and can change when the cluster is modified. It should not be used as a stable per-node timestamp.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>I am getting a bunch of NULL &lt;code>VALID_AT&lt;/code> timestamps. Is it because the table where the data is being referenced from does not have a timestamp fields specified? Will this impact anything in the downstream?&lt;/strong>&lt;/p>
&lt;p>Yes, if there is no timestamp field in the input table (or it is NULL for the row from where the edge source was pulled), then &lt;code>VALID_AT&lt;/code> column would have NULL value. This only affects the &lt;code>VALID_AT&lt;/code> column in the final table and nothing in the ID stitching.&lt;/p>
&lt;p>&lt;strong>Which identifiers should I include in my &lt;code>inputs.yaml&lt;/code> file?&lt;/strong>&lt;/p>
&lt;p>Include all the IDs that contribute to the ID stitcher model.&lt;/p>
&lt;p>&lt;strong>Should I re-run the stitching process once all &lt;code>user_id&lt;/code>&amp;rsquo;s have been sorted out with market prefixes? I want to ensure that users are captured separately instead of being grouped under one &lt;code>rudder_id&lt;/code>.&lt;/strong>&lt;/p>
&lt;p>It is recommended to use the &lt;code>--rebase-incremental&lt;/code> flag and re-run the stitching process from scratch. While it may not be necessary in all cases, doing so ensures a fresh start and avoids any potential pooling of users under a single &lt;code>rudder_id&lt;/code>. It’s important to note that if you make any changes to the YAML configuration, such as modifying the entity or model settings, the model’s hash will automatically update. However, some changes may not be captured automatically (for example, if you didn’t change YAML but simply edited column values in the input table), so manually rebasing is a good practice.&lt;/p>
&lt;p>&lt;strong>While running my ID stitcher model, I get the error “Could not find parent table for alias “&lt;DATABASE OBJECT NAME>”&lt;/strong>&lt;/p>
&lt;p>This is because RudderStack tries to access the cross-database objects (views/tables) for inputs, which is only supported on Redshift &lt;a href="https://docs.aws.amazon.com/redshift/latest/dg/cross-database_usage.html" >RA3 node type clusters&lt;/a>.&lt;/p>
&lt;p>To resolve the issue, you can upgrade your cluster to RA3 node type or copy data from source objects to the database specified in the siteconfig file.&lt;/p>
&lt;p>&lt;strong>I want to use a SQL model for an exclusion filter which references tables that are not used in the ID stitching process. Do I still need to add those tables to the &lt;code>inputs.yaml&lt;/code> file?&lt;/strong>&lt;/p>
&lt;p>It is not necessary to add the table references to the &lt;code>inputs.yaml&lt;/code> file. However, it is advised to add it for the following reasons:&lt;/p>
&lt;ul>
&lt;li>You can rule out any access/permissions issues for the referenced tables.&lt;/li>
&lt;li>The &lt;code>contract&lt;/code> field in &lt;code>inputs.yaml&lt;/code> would help you handle errors if the required column doesn&amp;rsquo;t exist.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>In my Profiles project, I am making changes to cohorts and var groups and triggering the run one after another. Will the ID stitcher model run every time?&lt;/strong>&lt;/p>
&lt;p>Every time you trigger the project run:&lt;/p>
&lt;ul>
&lt;li>The ID stitcher model runs unless you choose to run only specific models. In that case, only the specified models and their dependencies run unless they already exist.&lt;/li>
&lt;li>Models with specified &lt;code>timegrains&lt;/code> do not run again within the same time grain.&lt;/li>
&lt;li>If you re-use the previous sequence number, the project run will resume the previous invocation and will not recreate the materials that got created previously.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>I have provided around 50M ID types as inputs to my ID stitching model but the output is converging to a single user. What might be the reason?&lt;/strong>&lt;/p>
&lt;p>That might happen due to the following reasons:&lt;/p>
&lt;ul>
&lt;li>The identifiers you&amp;rsquo;re using might not be unique for each user, causing the ID graph to converge into one entity. Make sure that they are unique.&lt;/li>
&lt;li>Sometimes, false edges are added to the ID graph if there is any user ID value that should have been ignored. You can exclude these entity ID values by listing them in the &lt;code>id_types&lt;/code> declaration in the &lt;code>pb_project.yaml&lt;/code> file:&lt;/li>
&lt;/ul>
&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">id_types&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="l">device_id&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">filters&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">type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">exclude&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">value&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;alex@example.com&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">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">anonymous_id&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">filters&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">type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">exclude&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">value&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;unknown&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="l">exclude&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">value&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;NaN&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Is it possible to define two ID stitcher models in a single Profiles project?&lt;/strong>&lt;/p>
&lt;p>Yes, you can define different entities and an ID Stitcher model for each entity in your Profiles project.&lt;/p>
&lt;p>&lt;strong>How can I fix the issue of identity explosion, that is, too many connections between identities?&lt;/strong>&lt;/p>
&lt;p>You can use &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/dev-docs/advanced-id-stitcher-features/id-graph-cardinality-rules/" >ID Graph Cardinality Rules&lt;/a> to limit connections between ID types.&lt;/p>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="feature-table-deprecated" data-heading="Feature Table (deprecated)" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="feature-table-deprecated">Feature Table (deprecated)&lt;/h2>&lt;p>&lt;strong>How can I run a feature table without running its dependencies?&lt;/strong>&lt;/p>
&lt;p>Suppose you want to re-run the user entity_var &lt;code>days_active&lt;/code> and the &lt;code>rsTracks&lt;/code> input_var &lt;code>last_seen&lt;/code> for a previous run with &lt;code>seq_no 18&lt;/code>.&lt;/p>
&lt;p>Then, execute the following command:&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">pb run --force --model_refs entity/user/days_active,inputs/rsTracks/last_seen --seq_no &lt;span class="m">18&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>I have imported a library project but it throws an error: &lt;code>no matching model found for modelRef rsTracks in source inputs&lt;/code>.&lt;/strong>&lt;/p>
&lt;p>You can exclude the missing inputs of the library project by mapping them to nil in the &lt;code>pb_project.yaml&lt;/code> file.&lt;/p>
&lt;p>&lt;strong>Can I run models which consider the input data within a specified time period?&lt;/strong>&lt;/p>
&lt;p>Yes, you can do so by using the &lt;code>begin_time&lt;/code> and &lt;code>end_time&lt;/code> parameters with the &lt;code>run&lt;/code> command. For example, if you want to run the models for data from 2nd February, 2023, use:&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">$ pb run --begin_time 2023-01-02T12:00:00.0Z
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you want to run the nmodels for data between 2 May 2022 and 30 April 2023, use:&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">$ pb run --begin_time 2022-05-01T12:00:00.0Z --end_time 2023-04-30T12:00:00.0Z
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you want to run the models incrementally (run them from scratch ignoring any previous materials) irrespective of timestamp, use:&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">$ pb run --rebase_incremental
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Is it possible to run the feature table model independently, or does it require running alongside the ID stitcher model?&lt;/strong>&lt;/p>
&lt;p>You can provide a specific timestamp while running the project, instead of using the default latest time. PB recognizes if you have previously executed an identity stitching model for that time and reuses that table instead of generating it again.&lt;/p>
&lt;p>You can execute a command similar to: &lt;code>pb run --begin_time 2023-06-02T12:00:00.0Z --end_time 2023-06-03T12:00:00.0Z&lt;/code>. Note that:&lt;/p>
&lt;ul>
&lt;li>To reuse a specific identity stitching model, the timestamp value must match exactly to when it was run.&lt;/li>
&lt;li>If you have executed identity stitching model in the incremental mode and do not have an exact timestamp for reusing it, you can select any timestamp &lt;strong>greater&lt;/strong> than a non-deleted run. This is because subsequent stitching takes less time.&lt;/li>
&lt;li>To perform another identity stitching using PB, pick a timestamp (for example, &lt;code>1681542000&lt;/code>) and stick to it while running the feature table model. For example, the first time you execute &lt;code>pb run --begin_time 2023-06-02T12:00:00.0Z --end_time 2023-06-03T12:00:00.0Z&lt;/code>, it will run the identity stitching model along with the feature models. However, in subsequent runs, it will reuse the identity stitching model and only run the feature table models.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>While trying to add a feature table, I get an error at line 501, but I do not have these many lines in my YAML.&lt;/strong>&lt;/p>
&lt;p>The line number refers to the generated SQL file in the output folder. Check the console for the exact file name with the sequence number in the path.&lt;/p>
&lt;p>&lt;strong>While creating a feature table, I get this error:&lt;/strong> &lt;code>Material needs to be created but could not be: processing no result iterator: 001104 (42601): Uncaught exception of type 'STATEMENT ERROR': 'SYS _W. FIRSTNAME' in select clause is neither an aggregate nor in the group by clause.&lt;/code>&lt;/p>
&lt;p>This error occurs when you use a window function &lt;code>any_value&lt;/code> that requires a window frame clause. 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="w"> &lt;/span>- &lt;span class="nt">entity_var&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="l">email&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">select&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">LAST_VALUE(email)&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">from&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">inputs/rsIdentifies&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">window&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">order_by&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">timestamp desc&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Is it possible to create a feature out of an identifier? For example, I have a RS user_main_id with two of user_ids stitched to it. Only one of the user_ids has a purchase under it. Is it possible to show that user_id in the feature table for this particular user_main_id?&lt;/strong>&lt;/p>
&lt;p>If you know which input/warehouse table served as the source for that particular ID type, then you can create features from any input and also apply a &lt;code>WHERE&lt;/code> clause within the entity_var.&lt;/p>
&lt;p>For example, you can create an aggregate array of user_id&amp;rsquo;s from the purchase history table, where total_price &amp;gt; 0 (exclude refunds, for example). Or, if you have some LTV table with user_id&amp;rsquo;s, you could exclude LTV &amp;lt; 0.&lt;/p>
&lt;p>&lt;strong>Is it possible to reference an input var in another input var?&lt;/strong>&lt;/p>
&lt;p>Yes - input vars are similar to adding additional columns to the original table. You can use an input var &lt;code>i1v1&lt;/code> in the definition of input var &lt;code>i1v2&lt;/code> as long as both input vars are defined in the same input (or SQL model) &lt;code>i1&lt;/code>.&lt;/p>
&lt;p>&lt;strong>I have not defined any input vars on I1. Why is the system still creating I1_var_table?&lt;/strong>&lt;/p>
&lt;p>When you define an entity var using I1, an internal input var (for entity&amp;rsquo;s &lt;code>main_id&lt;/code>) is created which creates &lt;code>I1_var_table&lt;/code>. RudderStack team is evaluating whether internal input vars should create the var table or not.&lt;/p>
&lt;p>&lt;strong>I have an input model I1. Why is the system creating Material_I1_var_table_XXXXXX_N?&lt;/strong>&lt;/p>
&lt;p>This material table is created to keep the input vars defined on I1.&lt;/p>
&lt;p>&lt;strong>I am trying to run a single &lt;code>entity_var&lt;/code> model. How should I reference it?&lt;/strong>&lt;/p>
&lt;p>The right way to reference an entity var is: &lt;code>entity/&amp;lt;entity-name&amp;gt;/&amp;lt;entity-var-name&amp;gt;&lt;/code>.&lt;/p>
&lt;p>&lt;strong>I have two identical named fields in two &lt;code>user&lt;/code> tables and I want my Profiles project to pick the most recently updated one (from either of the &lt;code>user&lt;/code> tables). What is the best way to do it?&lt;/strong>&lt;/p>
&lt;p>Define different &lt;code>entity_vars&lt;/code> (one for each input) and then pick the one with a non-null value and higher priority.&lt;/p>
&lt;p>&lt;strong>What does running material mean?&lt;/strong>&lt;/p>
&lt;p>It means that the output (material) table is being created in your warehouse. For example, an output table named &lt;code>material_user_id_stitcher_3acd249d_21&lt;/code> would mean:&lt;/p>
&lt;ul>
&lt;li>&lt;code>material&lt;/code>: Prefix for all the objects created by Profiles in your warehouse, such as ID stitcher and feature tables.&lt;/li>
&lt;li>&lt;code>user_id_stitcher&lt;/code>: View created in your schema. It will always point to latest ID stitcher table. This name is the same as defined in the &lt;code>models/profiles.yaml&lt;/code> file.&lt;/li>
&lt;li>&lt;code>3acd249d&lt;/code>: Unique hash which remains the same for every model unless you make any changes to the model&amp;rsquo;s config, inputs or the config of model&amp;rsquo;s inputs.&lt;/li>
&lt;li>&lt;code>21&lt;/code>: Sequence number for the run. It is a proxy for the context timestamp. Context timestamp is used to checkpoint input data. Any input row with &lt;code>occured_at&lt;/code> timestamp value greater than the context timestamp cannot be used in the associated run.&lt;/li>
&lt;/ul>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="yaml" data-heading="YAML" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="yaml">YAML&lt;/h2>&lt;p>&lt;strong>Are there any best practices I should follow when writing the PB project&amp;rsquo;s YAML files?&lt;/strong>&lt;/p>
&lt;p>Yes, refer to the &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/dev-docs/yaml-refresher/" >YAML best practices&lt;/a> guide for detailed information.&lt;/p>
&lt;p>&lt;strong>Can I use double quotes when referencing another entity_var in a macro?&lt;/strong>&lt;/p>
&lt;p>You can use an escape character. 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="w"> &lt;/span>- &lt;span class="nt">entity_var&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="l">days_since_last_seen&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">select&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;{{macro_datediff(&amp;#39;{{user.max_timestamp_bw_tracks_pages}}&amp;#39;)}}&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Also, if have a case statement, then you can add something like the following:&lt;/p>
&lt;p>&lt;code>select: CASE WHEN {{user.max_timestamp_tracks}}&amp;gt;={{user.max_timestamp_pages}} THEN {{user.max_timestamp_tracks}} ELSE {{user.max_timestamp_pages}} END&lt;/code>&lt;/p>
&lt;p>&lt;strong>Is it possible to define default arguments in macros?&lt;/strong>&lt;/p>
&lt;p>No, RudderStack does not support default arguments in macros.&lt;/p>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="propensity-models" data-heading="Propensity Models" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="propensity-models">Propensity Models&lt;/h2>&lt;p>&lt;strong>Why is my Profiles project taking so long to run?&lt;/strong>&lt;/p>
&lt;p>The first Profiles project run usually takes longer, especially if you are building predictive features. Training ML models requires generating multiple snapshots of historical data, which significantly increases the initial processing time.&lt;/p>
&lt;p>The computational workload varies between different phases:&lt;/p>
&lt;ul>
&lt;li>The training phase is computationally intensive as it processes historical data snapshots.&lt;/li>
&lt;li>The prediction phase is relatively faster once the model is trained.&lt;/li>
&lt;/ul>
&lt;p>Your project&amp;rsquo;s runtime will typically see periodic spikes coinciding with model refreshes, which occur based on the training validity time configured in your propensity model. Between these refreshes, routine runs should complete more quickly.&lt;/p>
&lt;hr />
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="activation-api" data-heading="Activation API" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="activation-api">Activation API&lt;/h2>&lt;p>&lt;strong>While using Redis destination, I am facing an error: &lt;code>These sample records were rejected by the destination&lt;/code>&lt;/strong>?&lt;/p>
&lt;p>This error is observed if you have enabled &lt;strong>Cluster mode&lt;/strong> setting for Redis in the &lt;a href="https://www.rudderstack.com/docs/destinations/streaming-destinations/redis/#connection-settings" >RudderStack&amp;rsquo;s configuration settings&lt;/a> but you are on the Redis free plan.&lt;/p>
&lt;p>To overcome this, ensure that the Redis plan you are using allows clustering. Alternatively, you can turn off the &lt;strong>Cluster mode&lt;/strong> setting.&lt;/p>
&lt;p>&lt;strong>Does the user-profiles API (old) and activation API (new) behave differently in updating a key that maps to two different primary keys? For example:&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Primary key&lt;/th>
&lt;th>user_id&lt;/th>
&lt;th>Feature_1&lt;/th>
&lt;th>Feature_2&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>PK1&lt;/td>
&lt;td>U1&lt;/td>
&lt;td>F1&lt;/td>
&lt;td>null&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PK2&lt;/td>
&lt;td>U1&lt;/td>
&lt;td>null&lt;/td>
&lt;td>F2&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Yes, in user profiles API, RudderStack updates the value for a specific key (that is, feature_1 in this case):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;userId&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;U1&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;profile&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;feature_1&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;F1&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;feature_2&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;F2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Whereas, in activation API, RudderStack syncs the entire row as value for the &lt;code>model_name&lt;/code> key:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;entity&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;entity_name&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;id&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;type&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;user_id&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;value&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;U1&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;data&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;model_name&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;feature_1&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;feature_2&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="err">F&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Is it possible to use the Activation API without any Profiles project?&lt;/strong>&lt;/p>
&lt;p>Unfortunately, no! The Activation API works only with a Profiles project.&lt;/p>
&lt;p>&lt;strong>I have toggled on the Activation API option in the RudderStack dashboard to generate a Reverse ETL pipeline (connected to the Redis destination) and have defined a single ID in the &lt;code>feature_views&lt;/code> key. However, two Reverse ETL pipelines are generated on running the project. Which one should I use and what is the difference between the two?&lt;/strong>&lt;/p>
&lt;p>Profiles generates two &lt;code>feature_views&lt;/code> models if you define a single ID under the &lt;code>feature_views&lt;/code> key. One is the default feature view with &lt;code>main_id&lt;/code> as the identifier and the other is based on the identifier you have defined.&lt;/p>
&lt;p>RudderStack assigns the default names to the view such as &lt;code>user_feature_view&lt;/code> (default one with &lt;code>main_id&lt;/code> as the identifier), or &lt;code>feature_view_with_email&lt;/code> (email as the identifier), etc. You can also specify the final view&amp;rsquo;s name in the &lt;code>name&lt;/code> key.&lt;/p>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="profiles-ui" data-heading="Profiles UI" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="profiles-ui">Profiles UI&lt;/h2>&lt;p>&lt;strong>I have included some features in the RudderStack dashboard while creating the Profiles project but when I click &amp;ldquo;download this project&amp;rdquo;, my project files does not include any feature. What might be the reason?&lt;/strong>&lt;/p>
&lt;p>If you have selected pre-defined features from any library project, they are referred to as &lt;code>profiles-multieventstream-features&lt;/code> in the project by default.&lt;/p>
&lt;p>If you have created any features using the custom feature functionality, they will be a part of your &lt;code>models/resources.yaml&lt;/code> file.&lt;/p>
&lt;p>&lt;strong>Can I use &lt;code>main_id&lt;/code> when searching for a profile in the Profiles Lookup tab?&lt;/strong>&lt;/p>
&lt;p>Yes. In the &lt;strong>Profile Lookup&lt;/strong> tab, you can search using any available unique identifier such as &lt;code>email&lt;/code>, &lt;code>phone number&lt;/code>, &lt;code>user id&lt;/code>, &lt;code>anonymous id&lt;/code>, or the entity&amp;rsquo;s &lt;code>main_id&lt;/code> (for example, &lt;code>user_main_id&lt;/code>). Enter the value and click &lt;strong>Search user profile&lt;/strong> to view the stitched profile.&lt;/p>
&lt;p>&lt;strong>While choosing pre-defined features in the RudderStack dashboard, I can preview code for only some of the features. What might be the reason?&lt;/strong>&lt;/p>
&lt;p>You can preview the code only for entity var based features. This functionality is not available for features built from ML and SQL models.&lt;/p>
&lt;p>&lt;strong>While creating a Profiles project by importing from Git, I dont see any warehouse options in the dropdown selector in the &lt;code>Validate Profiles project&lt;/code> section. What might be the reason?&lt;/strong>&lt;/p>
&lt;p>A Profiles project looks for the supported warehouse destinations configured for that workspace. Hence, make sure you have configured any of the following &lt;a href="https://www.rudderstack.com/docs/destinations/warehouse-destinations/" >warehouse destinations&lt;/a> in your RudderStack dashboard:&lt;/p>
&lt;ul>
&lt;li>Snowflake&lt;/li>
&lt;li>Databricks&lt;/li>
&lt;li>Redshift&lt;/li>
&lt;li>BigQuery&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Why am I not able to see the Concurrency option in the Settings tab of my Profiles project?&lt;/strong>&lt;/p>
&lt;p>RudderStack supports the &lt;strong>Concurrency&lt;/strong> option only for the Snowflake warehouse currently. You will not be able to see this option if you have configured your Profiles project using the Redshift, BigQuery, or Databricks warehouse.&lt;/p>
&lt;p>&lt;strong>I have chosen some pre-defined predictive features while creating a Profiles project in the RudderStack dashboard but my project fails on running. What might be the reason?&lt;/strong>&lt;/p>
&lt;p>One of the probable reasons could be the lack of adequate data in your input source. Try following the steps suggested in the error message. In case the issue still persists, &lt;a href="https://rudderstack.com/join-rudderstack-slack-community" >contact&lt;/a> our support team.&lt;/p>
&lt;p>&lt;strong>I am creating an activation in the RudderStack dashboard but do not see the ID field being populated. What might be the reason?&lt;/strong>&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/profiles/activation-id.webp" href="https://www.rudderstack.com/docs/docs/images/profiles/activation-id.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/profiles/activation-id.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>To populate the IDs in the dropdown, make sure that your Profiles project has &lt;code>feature_views&lt;/code> defined in the &lt;code>pb_project.yaml&lt;/code> file under the &lt;code>entity&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Can I specify any git account like CommitCode while configuring a project in the web app?&lt;/strong>&lt;/p>
&lt;p>Profiles UI supports repos hosted on GitHub, BitBucket, Azure DevOps, and GitLab.&lt;/p>
&lt;hr/>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="python-related-errors" data-heading="Python-related errors" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="python-related-errors">Python-related errors&lt;/h2>&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-do-i-resolve-the-error-rpc-init-timeout-waiting-for-python-client-to-initialize-when-running-the-pynative-models-propensity-audit-tutorial" data-heading="How do I resolve the error &lt;code>rpc init: timeout waiting for python client to initialize&lt;/code> when running the PyNative models (propensity, audit, tutorial)?" data-level="4" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h4 id="how-do-i-resolve-the-error-rpc-init-timeout-waiting-for-python-client-to-initialize-when-running-the-pynative-models-propensity-audit-tutorial">How do I resolve the error &lt;code>rpc init: timeout waiting for python client to initialize&lt;/code> when running the PyNative models (propensity, audit, tutorial)?&lt;/h4>&lt;p>PyNative models are written in Python where the code is first compiled into bytecode and then executed by the Python interpreter.&lt;/p>
&lt;p>Sometimes, compiling Python code may take more time than expected. You can keep retrying the commands if they do not succeed the first time - the error will resolve on its own.&lt;/p>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="how-do-i-resolve-the-python-package-related-issues-when-trying-out-pynative-models" data-heading="How do I resolve the Python package-related issues when trying out PyNative models?" data-level="4" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h4 id="how-do-i-resolve-the-python-package-related-issues-when-trying-out-pynative-models">How do I resolve the Python package-related issues when trying out PyNative models?&lt;/h4>&lt;p>RudderStack highly recommends using an isolated and clean &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.20/dev-docs/create-new-project/#create-virtual-environment" >Python virtual environment&lt;/a>.&lt;/p>
&lt;p>If the issues persist, you can enforce &lt;code>pb&lt;/code> to use the Python present in the virtual environment by passing its path as the value for the parameter &lt;code>--rpc_python_path&lt;/code>.&lt;/p>
&lt;p>Make sure to pass the absolute path and not the relative path. For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">pb&lt;/span> &lt;span class="n">tutorial&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">connection&lt;/span> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">connection_name&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">rpc_python_path&lt;/span>&lt;span class="o">=/&lt;/span>&lt;span class="n">Users&lt;/span>&lt;span class="o">/&amp;lt;&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="o">&amp;gt;/.&lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="nb">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">python3&lt;/span>&lt;span class="mf">.10&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&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">You can use the &lt;code>which python&lt;/code> or &lt;code>which python3&lt;/code> command to get the Python path.&lt;/div>
&lt;/div>
&lt;/blockquote>
&lt;/html>
&lt;!-- end-chunk -->
&lt;!-- begin-chunk data-anchor="miscellaneous" data-heading="Miscellaneous" data-level="2" data-permalink="https://www.rudderstack.com/docs/archive/profiles/0.25/additional-resources/faq/" data-title="Profiles FAQ" -->
&lt;h2 id="miscellaneous">Miscellaneous&lt;/h2>&lt;p>&lt;strong>Why am I getting &lt;em>Authentication FAILED&lt;/em> error on my data warehouse while executing the run/compile commands?&lt;/strong>&lt;/p>
&lt;p>Some possible reasons for this error might be:&lt;/p>
&lt;ul>
&lt;li>Incorrect warehouse credentials.&lt;/li>
&lt;li>Insufficient user permissions to read and write data. You can ask your administrator to change your role or grant these privileges.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Why am I getting &lt;em>Object does not exist or not authorized&lt;/em> error on running this SQL query: &lt;code>SELECT * FROM &amp;quot;MY_WAREHOUSE&amp;quot;.&amp;quot;MY_SCHEMA&amp;quot;.&amp;quot;Material_domain_profile_c0635987_6&amp;quot;&lt;/code>?&lt;/strong>&lt;/p>
&lt;p>You must remove double quotes from your warehouse and schema names before running the query, that is &lt;code>SELECT * FROM MY_WAREHOUSE.MY_SCHEMA.Material_domain_profile_c0635987_6&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Is there a way to obtain the timestamp of any material table?&lt;/strong>&lt;/p>
&lt;p>Yes, you can use the &lt;code>GetTimeFilteringColSQL()&lt;/code> method to get the timestamp column of any material. It filters out rows based on the timestamp. It returns the &lt;code>occurred_at_col&lt;/code> in case of an event_stream table or &lt;code>valid_at&lt;/code> in case the material has that column. In absense of both, it returns an empty string. For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">{&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">from_material&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="err">}&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="k">WHERE&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="o">&amp;lt;&lt;/span>&lt;span class="n">from_material&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">GetTimeFilteringColSQL&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">some_timestamp&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>What is the difference between setting up Profiles in the RudderStack dashboard and Profile Builder CLI tool?&lt;/strong>&lt;/p>
&lt;p>You can run Profiles in the RudderStack dashboard or via &lt;a href="" >Profile Builder CLI&lt;/a>.&lt;/p>
&lt;p>The main difference is that the RudderStack dashboard only generates outputs based on the pre-defined templates. However, you can augment those outputs by downloading the config file and updating it manually.&lt;/p>
&lt;p>On the other hand, the CLI tool lets you achieve the end-to-end flow via creating a Profile Builder project.&lt;/p>
&lt;p>&lt;strong>Does the Profiles tool have logging enabled by default for security and compliance purposes?&lt;/strong>&lt;/p>
&lt;p>Logging is enabled by default for nearly all the commands executed by CLI (&lt;code>init&lt;/code>, &lt;code>validate access&lt;/code>, &lt;code>compile&lt;/code>, &lt;code>run&lt;/code>, &lt;code>cleanup&lt;/code>, etc.). Logs for all the output shown on screen are stored in the file &lt;code>logfile.log&lt;/code> in the &lt;strong>logs&lt;/strong> directory of your project folder. This includes logs for both successful and failed runs. RudderStack appends new entries at the end of the file once a command is executed.&lt;/p>
&lt;p>Some exceptions where the logs are not stored are:&lt;/p>
&lt;ul>
&lt;li>&lt;code>query&lt;/code>: The logger file stores the printing output and does not store the actual database output. However, you can access the SQL queries logs in your warehouse.&lt;/li>
&lt;li>&lt;code>help&lt;/code>: For any command.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>How can I remove the material tables that are no longer needed?&lt;/strong>&lt;/p>
&lt;p>To clean up all the materials older than a specific duration, for example 10 days, execute the following command:&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">pb cleanup materials -r &lt;span class="m">10&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The minimum value you can set here is &lt;code>1&lt;/code>. So if you have run the ID stitcher today, then you can remove all the older materials using &lt;code>pb cleanup materials -r 1&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Which tables and views are important in Profiles schema that should not be deleted?&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>material_registry&lt;/code>&lt;/li>
&lt;li>&lt;code>material_registry_&amp;lt;number&amp;gt;&lt;/code>&lt;/li>
&lt;li>&lt;code>pb_ct_version&lt;/code>&lt;/li>
&lt;li>&lt;code>ptr_to_latest_seqno_cache&lt;/code>&lt;/li>
&lt;li>&lt;code>wht_seq_no&lt;/code>&lt;/li>
&lt;li>&lt;code>wht_seq_no_&amp;lt;number&amp;gt;&lt;/code>&lt;/li>
&lt;li>Views whose names match your models in the YAML files.&lt;/li>
&lt;li>Material tables from the latest run (you may use the &lt;code>pb cleanup materials&lt;/code> command to delete materials older than a specific duration).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>I executed the auto migrate command and now I see a bunch of nested&lt;/strong> &lt;code>original_project_folder&lt;/code>. &lt;strong>Are we migrating through each different version of the tool?&lt;/strong>&lt;/p>
&lt;p>This is a symlink to the original project. Click on it in the Finder (Mac) to open the original project folder.&lt;/p>
&lt;p>&lt;strong>I am getting a &lt;strong>&lt;code>ssh: handshake failed&lt;/code>&lt;/strong> error when referring to a public project hosted on GitHub. It throws error for https:// path and works fine for ssh: path. I have set up token in GitHub and added to siteconfig.yaml file but I still get this error.&lt;/strong>&lt;/p>
&lt;p>You need to follow a different format for &lt;code>gitcreds:&lt;/code> in siteconfig. See &lt;a href="" >SiteConfiguration&lt;/a> for the format.&lt;/p>
&lt;p>After changing &lt;code>siteconfig&lt;/code>, if you still get an error, then clear the &lt;code>WhtGitCache&lt;/code> folder inside the directory having the &lt;code>siteconfig&lt;/code> file.&lt;/p>
&lt;p>&lt;strong>If I add filters to&lt;/strong> &lt;code>id_types&lt;/code> &lt;strong>in the project file, then do all rows that include any of those values get filtered out of the analysis, or is it just the specific value of that id type that gets filered?&lt;/strong>&lt;/p>
&lt;p>The PB tool does not extract rows. Instead, it extracts pairs from rows.&lt;/p>
&lt;p>So if you had a row with email, user_id, and anonymous_id and the anonymous_id is excluded, then the PB tool still extracts the email, user_id edge from the row.&lt;/p>
&lt;p>&lt;strong>In the material registry table, what does&lt;/strong> &lt;code>status: 2&lt;/code> &lt;strong>mean?&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>status: 2&lt;/code> means that the material has successfully completed its run.&lt;/li>
&lt;li>&lt;code>status: 1&lt;/code> means that the material did not complete its run.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>I am using Windows and get the following error:&lt;/strong> &lt;code>Error: while trying to migrate project: applying migrations: symlink &amp;lt;path&amp;gt;: A required privilege is not held by the client&lt;/code>.&lt;/p>
&lt;p>Your user requires privileges to create a symlink. You may either &lt;a href="https://portal.perforce.com/s/article/3472" >grant extra privileges to the user&lt;/a> or try with a user containing Admin privileges on PowerShell. In case that doesn&amp;rsquo;t help, try to install and use it via WSL (Widows subsystem for Linux).&lt;/p>
&lt;p>&lt;strong>If I want to run multiple select models, how can I run something like: &lt;code>pb run --model_refs &amp;quot;models/ewc_user_id_graph_all, models/ewc_user_id_graph, models/ewc_user_id_graph_v2&lt;/code>&lt;/strong>&lt;/p>
&lt;p>You can do so by passing &lt;code>--model_refs&lt;/code> multiple times per model:&lt;/p>
&lt;p>&lt;code>pb run -p samples/test_feature_table --model_refs 'models/test_id__, user/all' --migrate_on_load&lt;/code>
OR
&lt;code>pb run -p samples/test_feature_table --model_refs models/test_id__ --model_refs user/all --migrate_on_load&lt;/code>&lt;/p>
&lt;p>&lt;strong>How can I keep my Profiles projects up to date along with updating the Python package and migrating the schema version?&lt;/strong>&lt;/p>
&lt;p>You can check for the latest Profiles updates in the &lt;a href="https://www.rudderstack.com/docs/archive/profiles/0.25/changelog/" >changelog&lt;/a>.&lt;/p>
&lt;p>To update the Python package and migrate the schema version, you can standardise on a single pip release across the org and use the schema version that is native to that binary. When you move to a different binary, migrate your projects to the schema version native to it.&lt;/p>
&lt;p>Contact Profiles support team in our &lt;a href="https://rudderstack.com/join-rudderstack-slack-community" >Community Slack&lt;/a> for specific questions.&lt;/p>
&lt;p>&lt;strong>I am facing this error on adding a custom ID &lt;code>visitor_id&lt;/code> under the &lt;code>id_types&lt;/code> field in the &lt;code>pb_project.yaml&lt;/code> file:&lt;/strong> &lt;code>could not create project: failed to read project yaml Error: validating project sample_attribution: getting models for folder: user: error listing models: error building model user_default_id_stitcher: id type visitor_id not in project id types&lt;/code>. &lt;strong>What might be the reason?&lt;/strong>&lt;/p>
&lt;p>While adding a custom ID type, you must extend the package to include its specification in the &lt;code>pb_project.yaml&lt;/code> file as well. In this case, add the key &lt;code>extends:&lt;/code> followed by name of the same/different id_type that you wish to extend, and corresponding filters with include/exclude values like below:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-pb_project.yaml" data-lang="pb_project.yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">id_types&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="l">visitor_id&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">extends&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">visitor_id&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">filters&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">type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">exclude&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">value&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;someexcludedvalue&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Can I keep multiple projects in a Git Repo?&lt;/strong>&lt;/p>
&lt;p>Yes, you can create multiple folders in your project repo and keep different projects in each folder. While running the project, you can use any suitable URL to run a specific project:&lt;/p>
&lt;p>&lt;code>https://github.com/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/tree/&amp;lt;branch-name&amp;gt;/path/to/project&lt;/code>
&lt;code>https://github.com/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/tag/&amp;lt;tag-name&amp;gt;/path/to/project&lt;/code>
&lt;code>https://github.com/&amp;lt;org-name&amp;gt;/&amp;lt;repo-name&amp;gt;/commit/&amp;lt;commit-hash&amp;gt;/path/to/project&lt;/code>&lt;/p>
&lt;p>See &lt;a href="" >Supported Git URLs &lt;/a> for more information.&lt;/p>
&lt;p>&lt;strong>Can a models folder contain subfolders?&lt;/strong>&lt;/p>
&lt;p>Yes, you can manually add subfolders to the models folder and reference their path in the &lt;code>pb_project.yaml&lt;/code> file:&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">model_folders&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">models/inputs&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">models/inputs/web.yaml&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A sample folder structure is shown:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── models/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├── inputs/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| │ ├── web.yml
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| │ ├── mobile.yml
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| │ └── server.yml
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └── ...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>How is Activations different from Audiences?&lt;/strong>&lt;/p>
&lt;p>Activations qualify as Audiences with a minor exception of having a Profiles project as a source instead of a Reverse ETL source (with schema, database, table etc).&lt;/p>
&lt;p>&lt;strong>What do the sequence numbers under Artifacts in the History tab mean?&lt;/strong>&lt;/p>
&lt;p>A unique sequence number is generated every time you run a Profiles project. Each project run generates one sequence number. However, note that defining timegrains can result in multiple sequence numbers (based on the timegrain).&lt;/p>
&lt;figure class="image--main " >
&lt;a
data-lightbox="image-images/profiles/profiles-seq-number.webp" href="https://www.rudderstack.com/docs/docs/images/profiles/profiles-seq-number.webp"
>
&lt;img src="https://www.rudderstack.com/docs/docs/images/profiles/profiles-seq-number.webp"
decoding="async" loading="lazy" class="img-shortcode"/>
&lt;/a>
&lt;/figure>
&lt;p>&lt;strong>I am running a Profiles project with the &lt;code>timegrains&lt;/code> parameter and noticed that multiple subfolders having different &lt;code>seq_no&lt;/code> are generated. Which &lt;code>seq_no&lt;/code> should I use to resume an earlier run?&lt;/strong>&lt;/p>
&lt;p>For the CLI project, you can resume the project run using CLI commands(like &lt;code>run&lt;/code>, &lt;code>compile&lt;/code>, etc.) and passing the &lt;code>--seq_no&lt;/code> displayed at the top of the terminal output. For the UI project, you cannot choose to stop/resume the project run.&lt;/p>
&lt;p>&lt;strong>How do I identify the most recently-generated tables for a particular Profiles project?&lt;/strong>&lt;/p>
&lt;p>Check the &lt;code>material_registry_4&lt;/code> table in your schema. The &lt;code>seq_no&lt;/code> column increments with each run - if you are not using the timegrains feature, then for each run there will be only one &lt;code>seq_no&lt;/code>.&lt;/p>
&lt;p>Note that there will be multiple rows in this table corresponding to each model for each &lt;code>seq_no&lt;/code>.&lt;/p>
&lt;p>&lt;strong>What is the purpose of the &lt;code>PTR_TO_LATEST_SEQNO_CACHE&lt;/code> view in a Profiles schema?&lt;/strong>&lt;/p>
&lt;p>The &lt;code>PTR_TO_LATEST_SEQNO_CACHE&lt;/code> view scans the registry to build metadata for finding the latest table or view of any model name or model hash. This metadata then goes into the creation of views named &lt;code>model&lt;/code> - for each model named &lt;code>model&lt;/code> - and points to the latest &lt;code>Material_model_xxxxxxxx_n&lt;/code> after every run.&lt;/p>
&lt;p>&lt;strong>I have multiple models in my project. Can I run only a single model?&lt;/strong>&lt;/p>
&lt;p>Yes, you can. In your spec YAML file for the model you don&amp;rsquo;t want to run, set &lt;code>materialization&lt;/code> to &lt;code>disabled&lt;/code>:&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">materialization&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">enable_status&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">disabled&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A sample &lt;code>profiles.yaml&lt;/code> file highlighted a disabled model:&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">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="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">test_sql&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">model_type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">sql_template&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">model_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">materialization&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">run_type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">discrete&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">enable_status&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">disabled // Disables running the model.&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">single_sql&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">|&lt;/span>&lt;span class="sd">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sd"> {%- with input1 = this.DeRef(&amp;#34;inputs/tbl_a&amp;#34;) -%}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sd"> select id1 as new_id1, {{input1}}.*
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sd"> from {{input1}}
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sd"> {%- endwith -%}&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">occurred_at_col&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">insert_ts&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">ids&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">select&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;new_id1&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="l">test_id&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">entity&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">user&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Why am I getting the error &lt;code>could not build project from package corelib: getting ProjectFolder: getting tags list: repository not found&lt;/code>?&lt;/strong>&lt;/p>
&lt;p>You might get this error due to changes in your Git credentials. Try resetting them in your system configuration and try again.&lt;/p>
&lt;p>&lt;strong>What factors should I consider while defining the edge sources for my user ID graph?&lt;/strong>&lt;/p>
&lt;p>The ID graph needs only a minimum set of inputs for capturing all the identifiers. For example, you might not need to include the &lt;code>tracks&lt;/code> table to just capture the client side &lt;code>track&lt;/code> calls. As the &lt;code>anonymous_ids&lt;/code>, &lt;code>user_ids&lt;/code>, and &lt;code>emails&lt;/code> are probably captured in the &lt;code>pages&lt;/code> and &lt;code>identifies&lt;/code> tables.&lt;/p>
&lt;p>&lt;strong>Why is my Profiles project run failing since I enabled SAML SSO on GitHub?&lt;/strong>&lt;/p>
&lt;p>&lt;strong>My Profiles project run is failing since I enabled SAML SSO on GitHub. What might be the reason?&lt;/strong>&lt;/p>
&lt;p>After enabling SSO on GitHub, you must edit your Profiles project and deploy the updated SSH key. Also, make sure you are logged in to GitHub using SSO while doing that.&lt;/p>
&lt;br /></description></item></channel></rss>