Repository: SimpleDataLabsInc/prophecy-docs
Pull request #613: Table types and troubleshooting
Author: login: kathweinschenkprophecy
Created: 2025-04-11T17:30:05Z | Merged: 2025-04-14T20:29:15Z

Re: https://app.asana.com/1/711615303573503/project/1201259583869898/task/1209913644049267

---
- To see the specific tasks where the Asana app for GitHub is being used, see below:
  - https://app.asana.com/0/0/1209964487137916


Diff:
diff --git a/docs/analysts/development/gems/source-target/img/source-target-analysts.png b/docs/analysts/development/gems/source-target/img/source-target-analysts.png
new file mode 100644
index 00000000000..5421c61547d
Binary files /dev/null and b/docs/analysts/development/gems/source-target/img/source-target-analysts.png differ
diff --git a/docs/analysts/development/gems/source-target/img/source-types.png b/docs/analysts/development/gems/source-target/img/source-types.png
new file mode 100644
index 00000000000..1f16742ed69
Binary files /dev/null and b/docs/analysts/development/gems/source-target/img/source-types.png differ
diff --git a/docs/analysts/development/gems/source-target/source-target.md b/docs/analysts/development/gems/source-target/source-target.md
index 0966ce3bd5d..7e166ca2f67 100644
--- a/docs/analysts/development/gems/source-target/source-target.md
+++ b/docs/analysts/development/gems/source-target/source-target.md
@@ -8,21 +8,30 @@ tags: []
 
 Source and Target gems define how Prophecy reads and writes data in your pipeline.
 
+![Source/Target Gem Drawer](img/source-target-analysts.png)
+
+There are two types of sources and targets:
+
+- [Tables in your SQL data warehouse](#tables)
+- [Sources and targets from external systems](#external-sources-and-targets)
+
+:::caution
+When deciding between tables and external sources, consider the primary SQL connection in your Prophecy fabric. Processing tables natively in the SQL warehouse will be fast, and processing external data is slower.<br/>**Do not create an external connection that duplicates the primary SQL warehouse connection in your fabric.**
+:::
+
 ## Tables
 
 <span class="badge">SQL</span><br/><br/>
 
-Tables are natively read from and written to the SQL warehouse that is configured as your primary SQL connection in a Prophecy fabric.
+Tables are natively read from and written to the SQL warehouse that is configured as your primary SQL connection in a Prophecy fabric. You can add existing tables from your data warehouse to Prophecy, or you can create new tables directly in Prophecy.
 
-| Name  | Description                                                                                                   |
-| ----- | ------------------------------------------------------------------------------------------------------------- |
-| Table | Persistent storage of structured data in your SQL warehouse. Faster for frequent queries (indexed).           |
-| View  | A virtual table that derives data dynamically from a query. Slower for complex queries (computed at runtime). |
-| Seed  | Small CSV-format files that you can write directly in Prophecy.                                               |
+| Name  | Description                                                                                                   | Gem Type         |
+| ----- | ------------------------------------------------------------------------------------------------------------- | ---------------- |
+| Table | Persistent storage of structured data in your SQL warehouse. Faster for frequent queries (indexed).           | Source or Target |
+| View  | A virtual table that derives data dynamically from a query. Slower for complex queries (computed at runtime). | Source or Target |
+| Seed  | Small CSV-format files that you can write directly in Prophecy.                                               | Source only      |
 
-:::caution
-When deciding between tables and external sources, consider the primary SQL connection in your Prophecy fabric. Processing tables natively in the SQL warehouse will be fast, but processing external data is slower.<br/>**Do not create an external connection that duplicates your primary SQL warehouse connection.**
-:::
+Once you have used a table in a project, you can easily reuse that table as a source. Find you tables in the [project browser](/analysts/pipelines#sidebar) in the left sidebar.
 
 ## External Sources and Targets
 
@@ -30,14 +39,29 @@ When deciding between tables and external sources, consider the primary SQL conn
 
 To use data from outside of your SQL warehouse, you can use the following external sources and targets. This data is not persisted in Prophecy, but rather read through Prophecy.
 
-| File or External Table | [Connection](docs/analysts/development/connections.md) types |
-| ---------------------- | ------------------------------------------------------------ |
-| CSV                    | S3, SFTP, Sharepoint, Databricks                             |
-| JSON                   | S3, SFTP, Sharepoint, Databricks                             |
-| Text                   | None                                                         |
-| XLSX                   | S3, SFTP, Sharepoint, Databricks, Smartsheet                 |
-| XML                    | S3, SFTP, Sharepoint, Databricks                             |
-| Databricks             | Databricks                                                   |
-| Snowflake              | Snowflake                                                    |
-| MSSQL                  | MSSQL                                                        |
-| MongoDB                | MongoDB                                                      |
+### External connections
+
+To use external sources and targets, you need to set up the corresponding [connections](docs/analysts/development/connections.md). Review the following connections that Prophecy provides.
+
+![Source gem connections](img/source-types.png)
+
+#### Table connections
+
+The following connections support tabular sources and targets.
+
+- [Databricks](/administration/fabrics/prophecy-fabrics/connections/databricks)
+- [Snowflake](/administration/fabrics/prophecy-fabrics/connections/snowflake)
+- [MSSQL](/administration/fabrics/prophecy-fabrics/connections/mssql)
+- [MongoDB](/administration/fabrics/prophecy-fabrics/connections/mongodb)
+
+#### File connections
+
+The following connections support file sources and targets.
+
+| Connection type                                                                         | Supported file formats |
+| --------------------------------------------------------------------------------------- | ---------------------- |
+| [Amazon S3](/administration/fabrics/prophecy-fabrics/connections/s3)                    | CSV, JSON, XLSX, XML   |
+| [SFTP](/administration/fabrics/prophecy-fabrics/connections/sftp)                       | CSV, JSON, XLSX, XML   |
+| [Microsoft Sharepoint](/administration/fabrics/prophecy-fabrics/connections/sharepoint) | CSV, JSON, XLSX, XML   |
+| [Databricks](/administration/fabrics/prophecy-fabrics/connections/databricks)           | CSV, JSON, XLSX, XML   |
+| [Smartsheet](/administration/fabrics/prophecy-fabrics/connections/smartsheet)           | XLSX                   |
diff --git a/docs/analysts/development/gems/source-target/table/seed.md b/docs/analysts/development/gems/source-target/table/seed.md
new file mode 100644
index 00000000000..535e5339fd3
--- /dev/null
+++ b/docs/analysts/development/gems/source-target/table/seed.md
@@ -0,0 +1,25 @@
+---
+title: Seed
+id: seed
+slug: /analysts/seed
+description: Create small CSV-format source files directly in Prophecy
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Seeds are small CSV-format files that you can create in Prophecy to use as Source gems.
+
+## Source parameters
+
+Seeds can only be sources. The following table describes the required parameters for seeds.
+
+| Parameter       | Description                                                          |
+| --------------- | -------------------------------------------------------------------- |
+| Type and Format | Select `Seed`.                                                       |
+| Properties      | Copy-paste your CSV data and define certain properties of the table. |
+| Preview         | Load the data to see a preview before saving.                        |
+
+:::note
+The **Location** tab of the seed configuration is grayed out. This is because seeds are stored as CSV files in your project code.
+:::
diff --git a/docs/analysts/development/gems/source-target/table/table.md b/docs/analysts/development/gems/source-target/table/table.md
index d7b37ca0ba6..efcb3e1fa80 100644
--- a/docs/analysts/development/gems/source-target/table/table.md
+++ b/docs/analysts/development/gems/source-target/table/table.md
@@ -8,29 +8,27 @@ tags: []
 
 <span class="badge">SQL</span><br/><br/>
 
-Tables are natively read from and written to the SQL warehouse that is configured as your primary SQL connection in a Prophecy fabric. Prophecy offers the following table types:
+Tables represent persistent storage of structured data in your SQL warehouse.
 
-| Name  | Description                                                                                                   |
-| ----- | ------------------------------------------------------------------------------------------------------------- |
-| Table | Persistent storage of structured data in your SQL warehouse. Faster for frequent queries (indexed).           |
-| View  | A virtual table that derives data dynamically from a query. Slower for complex queries (computed at runtime). |
-| Seed  | Small CSV-format files that you can write directly in Prophecy.                                               |
+## Source parameters
 
-## Create a Table gem
+When you create a Table gem at the beginning of your pipeline, configure it with the following parameters.
 
-To begin using tables, add a Table gem to your pipeline.
+| Parameter       | Description                                                                                                 |
+| --------------- | ----------------------------------------------------------------------------------------------------------- |
+| Type and Format | Select `Table`.                                                                                             |
+| Location        | Choose the location where the table will be stored. You can create a new table by writing a new table name. |
+| Properties      | Define certain properties of the table, including the table schema.                                         |
+| Preview         | Load the data to see a preview before saving.                                                               |
 
-1. Open a pipeline in a project.
-1. Open the **Source/Target** category in the gem drawer.
-1. Click **Table**. This adds a Table gem to your pipeline canvas.
+## Target parameters
 
-## Configure the Table gem
+When you add a Table gem to the end of your pipeline, configure it with the following parameters.
 
-When you open the [gem configuration](docs/analysts/development/gems/gems.md#gem-configuration), you can choose an existing table in your primary SQL warehouse or create a new one.
-
-1. Select an existing table or create a new table. The available tables in the configuration are located in the default database and schema that you defined in your [fabric](docs/administration/fabrics/prophecy-fabrics/prophecy-fabrics.md).
-1. Choose the type and format of the table (table, view, or seed) and click **Next**.
-1. Set the location where the table will be stored in the SQL warehouse, then click **Next**. You can select an existing table location or name a new table.
-1. Define the table's properties and verify the schema and click **Next**.
-1. Load the data to preview the table.
-1. Click **Save**.
+| Parameter       | Description                                                                                                                                                  |
+| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Type and Format | Select `Table`.                                                                                                                                              |
+| Location        | Choose the location where the table will be stored. You can create a new table by writing a new table name.                                                  |
+| Properties      | Define certain properties of the table. The schema cannot be changed for target tables.                                                                      |
+| Write Options   | Select how you want the data to be written each time you run the pipeline. For more information, see [Write Options](/engineers/write-options-target-model). |
+| Preview         | Load the data to see a preview before saving.                                                                                                                |
diff --git a/docs/analysts/development/gems/source-target/table/view.md b/docs/analysts/development/gems/source-target/table/view.md
new file mode 100644
index 00000000000..5e7e8134d91
--- /dev/null
+++ b/docs/analysts/development/gems/source-target/table/view.md
@@ -0,0 +1,22 @@
+---
+title: View
+id: view
+slug: /analysts/view
+description: Views in the SQL warehouse
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Views are virtual tables computed at runtime that derive data dynamically from a query.
+
+## Source and target parameters
+
+Source and target views have the same following parameters.
+
+| Parameter       | Description                                                                                                 |
+| --------------- | ----------------------------------------------------------------------------------------------------------- |
+| Type and Format | Select `View`.                                                                                              |
+| Location        | Choose the location where the table will be stored. You can create a new table by writing a new table name. |
+| Properties      | Define certain properties of the table, including the table schema.                                         |
+| Preview         | Load the data to see a preview before saving.                                                               |
diff --git a/docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md b/docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
new file mode 100644
index 00000000000..2a68cd8248d
--- /dev/null
+++ b/docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
@@ -0,0 +1,33 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+## Example
+
+Assume you try the following scenario:
+
+- Pipeline A appends data to `final_table`.
+- Pipeline B also tries to append different data to `final_table`.
+
+This will result in errors or unexpected behavior.
+
+## Why this happens
+
+Prophecy executes SQL transformations by generating and running [dbt models](/engineers/models). dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
+
+## Solution
+
+To resolve this, split the write operations into separate intermediate tables and use a third table to consolidate the data via a union.
+
+We recommended the following process:
+
+- Pipeline 1 writes to `intermediate_table_1`
+- Pipeline 2 writes to `intermediate_table_2`
+- Pipeline 3 unions the two tables into a `final_table`
diff --git a/sidebars.js b/sidebars.js
index e1f1fb24012..95acc6612f6 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -117,11 +117,10 @@ const sidebars = {
                 {
                   type: "category",
                   label: "Table",
-                  link: {
-                    type: "doc",
-                    id: "analysts/development/gems/source-target/table/table",
-                  },
                   items: [
+                    "analysts/development/gems/source-target/table/table",
+                    "analysts/development/gems/source-target/table/view",
+                    "analysts/development/gems/source-target/table/seed",
                     "analysts/development/gems/source-target/table/upload-files",
                   ],
                 },
@@ -146,6 +145,13 @@ const sidebars = {
                     "analysts/development/gems/source-target/external-table/mongodb",
                   ],
                 },
+                {
+                  type: "category",
+                  label: "Troubleshooting",
+                  items: [
+                    "analysts/development/gems/source-target/troubleshooting/multi-source-table",
+                  ],
+                },
               ],
             },
             {


Reviews:
user: login: kailie-prophecy
body: Looks great overall! Just a few questions and suggestions to consider :)
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T19:41:28Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:04:14Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:04:25Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:04:57Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:05:37Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:05:48Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:06:22Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:06:37Z
user: login: kathweinschenkprophecy
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-11T20:09:24Z
user: login: kailie-prophecy
body: LGTM % a minor nit!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-14T20:07:22Z

Review comments:
diff_hunk: @@ -30,14 +37,14 @@ When deciding between tables and external sources, consider the primary SQL conn
 
 To use data from outside of your SQL warehouse, you can use the following external sources and targets. This data is not persisted in Prophecy, but rather read through Prophecy.
 
-| File or External Table | [Connection](docs/analysts/development/connections.md) types |
-| ---------------------- | ------------------------------------------------------------ |
-| CSV                    | S3, SFTP, Sharepoint, Databricks                             |
-| JSON                   | S3, SFTP, Sharepoint, Databricks                             |
-| Text                   | None                                                         |
-| XLSX                   | S3, SFTP, Sharepoint, Databricks, Smartsheet                 |
-| XML                    | S3, SFTP, Sharepoint, Databricks                             |
-| Databricks             | Databricks                                                   |
-| Snowflake              | Snowflake                                                    |
-| MSSQL                  | MSSQL                                                        |
-| MongoDB                | MongoDB                                                      |
+| [Connection type](docs/analysts/development/connections.md) | Supported formats                      |
path: docs/analysts/development/gems/source-target/source-target.md
user: login: kailie-prophecy
body: Question: What do you mean by supported formats? Like file formats? Or external formats? I assumed file at first since the first few rows contain file formats, but then I saw Snowflake, MSSSQL and MongoDB and was like no it's not.
created_at: 2025-04-11T19:17:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -30,14 +37,14 @@ When deciding between tables and external sources, consider the primary SQL conn
 
 To use data from outside of your SQL warehouse, you can use the following external sources and targets. This data is not persisted in Prophecy, but rather read through Prophecy.
 
-| File or External Table | [Connection](docs/analysts/development/connections.md) types |
-| ---------------------- | ------------------------------------------------------------ |
-| CSV                    | S3, SFTP, Sharepoint, Databricks                             |
-| JSON                   | S3, SFTP, Sharepoint, Databricks                             |
-| Text                   | None                                                         |
-| XLSX                   | S3, SFTP, Sharepoint, Databricks, Smartsheet                 |
-| XML                    | S3, SFTP, Sharepoint, Databricks                             |
-| Databricks             | Databricks                                                   |
-| Snowflake              | Snowflake                                                    |
-| MSSQL                  | MSSQL                                                        |
-| MongoDB                | MongoDB                                                      |
+| [Connection type](docs/analysts/development/connections.md) | Supported formats                      |
+| ----------------------------------------------------------- | -------------------------------------- |
+| S3                                                          | CSV, JSON, XLSX, XML                   |
path: docs/analysts/development/gems/source-target/source-target.md
user: login: kailie-prophecy
body: Suggestion/Nit: Since we do it in the engineers section, I think we should link to each page in the supported column
created_at: 2025-04-11T19:18:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,25 @@
+---
+title: Seed
+id: seed
+slug: /analysts/seed
+description: Write small CSV-format files directly in Prophecy
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Seeds are small CSV-format files that you can write directly in Prophecy.
+
+## Source parameters
+
+Seeds can only be sources. The following table describes the required parameters for Seed gems.
path: docs/analysts/development/gems/source-target/table/seed.md
user: login: kailie-prophecy
body: Question: Aren't Source gems to read? In the description and intro above you say `write`. Or should this be target here?

Suggestion: I don't think you need to mention that seeds are only for one gem in this section since it's mentioned in the intro.
created_at: 2025-04-11T19:24:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,25 @@
+---
+title: Seed
+id: seed
+slug: /analysts/seed
+description: Write small CSV-format files directly in Prophecy
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Seeds are small CSV-format files that you can write directly in Prophecy.
+
+## Source parameters
+
+Seeds can only be sources. The following table describes the required parameters for Seed gems.
+
+| Parameter       | Description                                                         |
+| --------------- | ------------------------------------------------------------------- |
+| Type and Format | Select `Seed`.                                                      |
+| Properties      | Define certain properties of the table, including the table schema. |
+| Preview         | Load the data to see a preview before saving.                       |
+
+:::note
+The Location tab of the Seed configuration is grayed out. This is because seeds are stored as CSV files in your project code.
path: docs/analysts/development/gems/source-target/table/seed.md
user: login: kailie-prophecy
body: ```suggestion
The **Location** tab of the Seed configuration is grayed out because seeds are stored as CSV files in your project code.
```
Nit/Suggestion: I've been bolding labels and monospacing the actual values of parameters
created_at: 2025-04-11T19:25:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kailie-prophecy
body: ```suggestion
## Example
```
Suggestion/Nit: I think invalid is implied here since you're on a page that is talking about an issue and you do state this scenario results in errors.
created_at: 2025-04-11T19:33:35Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
+
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kailie-prophecy
body: ```suggestion
Assume you have the following scenario:

```
created_at: 2025-04-11T19:34:31Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
+
+- Pipeline A appends data to `final_table`.
+- Pipeline B also tries to append different data to `final_table`.
+
+This setup is not supported and will result in errors or unexpected behavior.
+
+## Why this happens
+
+Under the hood, Prophecy executes SQL transformations by generating and running dbt models. dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kailie-prophecy
body: Suggestion: Can you link to or clarify what dbt model is? I had to look it up and I think it's a cloud tool/platform. (I also just had no idea what it stood for or what it was, but have seen the term in the past)
created_at: 2025-04-11T19:36:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
+
+- Pipeline A appends data to `final_table`.
+- Pipeline B also tries to append different data to `final_table`.
+
+This setup is not supported and will result in errors or unexpected behavior.
+
+## Why this happens
+
+Under the hood, Prophecy executes SQL transformations by generating and running dbt models. dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
+
+## Solution
+
+To resolve this, split the write operations into separate intermediate tables and use a third table to consolidate the data via a union.
+
+Recommended pattern:
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kailie-prophecy
body: ```suggestion
We recommended the following process:
```
created_at: 2025-04-11T19:37:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,22 @@
+---
+title: View
+id: view
+slug: /analysts/view
+description: Views in the SQL warehouse
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Views are virtual tables computed at runtime that derive data dynamically from a query.
path: docs/analysts/development/gems/source-target/table/view.md
user: login: kailie-prophecy
body: ```suggestion
Views are virtual tables from _____ computed at runtime that derive data dynamically from a query.
```
Question/Suggestion: My first question reading this was where are the virtual tables?
created_at: 2025-04-11T19:38:50Z
author_association: CONTRIBUTOR
diff_hunk: @@ -30,14 +37,14 @@ When deciding between tables and external sources, consider the primary SQL conn
 
 To use data from outside of your SQL warehouse, you can use the following external sources and targets. This data is not persisted in Prophecy, but rather read through Prophecy.
 
-| File or External Table | [Connection](docs/analysts/development/connections.md) types |
-| ---------------------- | ------------------------------------------------------------ |
-| CSV                    | S3, SFTP, Sharepoint, Databricks                             |
-| JSON                   | S3, SFTP, Sharepoint, Databricks                             |
-| Text                   | None                                                         |
-| XLSX                   | S3, SFTP, Sharepoint, Databricks, Smartsheet                 |
-| XML                    | S3, SFTP, Sharepoint, Databricks                             |
-| Databricks             | Databricks                                                   |
-| Snowflake              | Snowflake                                                    |
-| MSSQL                  | MSSQL                                                        |
-| MongoDB                | MongoDB                                                      |
+| [Connection type](docs/analysts/development/connections.md) | Supported formats                      |
path: docs/analysts/development/gems/source-target/source-target.md
user: login: kathweinschenkprophecy
body: Format = encompasses file format or table type

I added "table" after dbx as an afterthought.... I'll remove it
created_at: 2025-04-11T20:04:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -30,14 +37,14 @@ When deciding between tables and external sources, consider the primary SQL conn
 
 To use data from outside of your SQL warehouse, you can use the following external sources and targets. This data is not persisted in Prophecy, but rather read through Prophecy.
 
-| File or External Table | [Connection](docs/analysts/development/connections.md) types |
-| ---------------------- | ------------------------------------------------------------ |
-| CSV                    | S3, SFTP, Sharepoint, Databricks                             |
-| JSON                   | S3, SFTP, Sharepoint, Databricks                             |
-| Text                   | None                                                         |
-| XLSX                   | S3, SFTP, Sharepoint, Databricks, Smartsheet                 |
-| XML                    | S3, SFTP, Sharepoint, Databricks                             |
-| Databricks             | Databricks                                                   |
-| Snowflake              | Snowflake                                                    |
-| MSSQL                  | MSSQL                                                        |
-| MongoDB                | MongoDB                                                      |
+| [Connection type](docs/analysts/development/connections.md) | Supported formats                      |
+| ----------------------------------------------------------- | -------------------------------------- |
+| S3                                                          | CSV, JSON, XLSX, XML                   |
path: docs/analysts/development/gems/source-target/source-target.md
user: login: kathweinschenkprophecy
body: good idea will do
created_at: 2025-04-11T20:04:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,25 @@
+---
+title: Seed
+id: seed
+slug: /analysts/seed
+description: Write small CSV-format files directly in Prophecy
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Seeds are small CSV-format files that you can write directly in Prophecy.
+
+## Source parameters
+
+Seeds can only be sources. The following table describes the required parameters for Seed gems.
path: docs/analysts/development/gems/source-target/table/seed.md
user: login: kathweinschenkprophecy
body: yes, you "write" it in prophecy and it become the source for your pipeline (the first gem in the pipeline)

I can make this clearer
created_at: 2025-04-11T20:04:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,25 @@
+---
+title: Seed
+id: seed
+slug: /analysts/seed
+description: Write small CSV-format files directly in Prophecy
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Seeds are small CSV-format files that you can write directly in Prophecy.
+
+## Source parameters
+
+Seeds can only be sources. The following table describes the required parameters for Seed gems.
+
+| Parameter       | Description                                                         |
+| --------------- | ------------------------------------------------------------------- |
+| Type and Format | Select `Seed`.                                                      |
+| Properties      | Define certain properties of the table, including the table schema. |
+| Preview         | Load the data to see a preview before saving.                       |
+
+:::note
+The Location tab of the Seed configuration is grayed out. This is because seeds are stored as CSV files in your project code.
path: docs/analysts/development/gems/source-target/table/seed.md
user: login: kathweinschenkprophecy
body: Bolding UI elements is correct. I missed it! I agree with monospacing parameters
created_at: 2025-04-11T20:05:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kathweinschenkprophecy
body: true
created_at: 2025-04-11T20:05:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
+
+- Pipeline A appends data to `final_table`.
+- Pipeline B also tries to append different data to `final_table`.
+
+This setup is not supported and will result in errors or unexpected behavior.
+
+## Why this happens
+
+Under the hood, Prophecy executes SQL transformations by generating and running dbt models. dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kathweinschenkprophecy
body: We have a page clarifying https://docs.prophecy.io/engineers/models

I'll link the same link from the first paragraph here
created_at: 2025-04-11T20:06:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,31 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+Example scenario (invalid):
+
+- Pipeline A appends data to `final_table`.
+- Pipeline B also tries to append different data to `final_table`.
+
+This setup is not supported and will result in errors or unexpected behavior.
+
+## Why this happens
+
+Under the hood, Prophecy executes SQL transformations by generating and running dbt models. dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
+
+## Solution
+
+To resolve this, split the write operations into separate intermediate tables and use a third table to consolidate the data via a union.
+
+Recommended pattern:
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kathweinschenkprophecy
body: TY

Me being lazy again
created_at: 2025-04-11T20:06:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,22 @@
+---
+title: View
+id: view
+slug: /analysts/view
+description: Views in the SQL warehouse
+tags: []
+---
+
+<span class="badge">SQL</span><br/><br/>
+
+Views are virtual tables computed at runtime that derive data dynamically from a query.
path: docs/analysts/development/gems/source-target/table/view.md
user: login: kathweinschenkprophecy
body: Since views don't have persistent storage, they are not stored anywhere (what virtual means). A view is just a SQL query
created_at: 2025-04-11T20:09:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,33 @@
+---
+title: Multiple pipelines writing to the same table
+sidebar_label: Multi-source table
+id: multi-source-table
+slug: /analysts/multi-source-table
+description: Work around dbt limitations to append data from multiple sources into one table
+tags: []
+---
+
+Prophecy doesn't allow multiple pipelines or branches to write directly to the same table. As such, it also doesn't directly support appending data from multiple sources into a single table. Use the [solution](#solution) provided as a workaround to this limitation.
+
+## Example
+
+Assume you try the following scenario:
+
+- Pipeline A appends data to `final_table`.
+- Pipeline B also tries to append different data to `final_table`.
+
+This will result in errors or unexpected behavior.
+
+## Why this happens
+
+Under the hood, Prophecy executes SQL transformations by generating and running [dbt models](/engineers/models). dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
path: docs/analysts/development/gems/source-target/troubleshooting/multi-source-table.md
user: login: kailie-prophecy
body: ```suggestion
Prophecy executes SQL transformations by generating and running [dbt models](/engineers/models). dbt operates with a model-centric approach where each model is responsible for generating or updating a specific table. dbt expects a **1:1 relationship between models and tables**.
```
Nit: I think "Under the hood" isn't needed. 
created_at: 2025-04-14T20:07:11Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-04-11T17:33:12Z
body: 🚀 Staging preview available: [https://SimpleDataLabsInc.github.io/prophecy-docs-staging/preview/pr-613/](https://SimpleDataLabsInc.github.io/prophecy-docs-staging/preview/pr-613/)
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-14T14:22:55Z
body: 🚀 Staging preview available: [https://SimpleDataLabsInc.github.io/prophecy-docs-staging/preview/pr-613/](https://SimpleDataLabsInc.github.io/prophecy-docs-staging/preview/pr-613/)
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-14T20:29:01Z
body: 🚀 Staging preview available: [https://SimpleDataLabsInc.github.io/prophecy-docs-staging/preview/pr-613/](https://SimpleDataLabsInc.github.io/prophecy-docs-staging/preview/pr-613/)
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-04-14T20:29:58Z
body: :mag_right::speech_balloon: [Inkeep](https://inkeep.com) AI search and chat service is syncing content for source 'Prophecy Docs'
author_association: NONE