diff --git a/.github/PULL_REQUEST_TEMPLATE/maintainer_pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/maintainer_pull_request_template.md
index 768ac3f..ddc4d56 100644
--- a/.github/PULL_REQUEST_TEMPLATE/maintainer_pull_request_template.md
+++ b/.github/PULL_REQUEST_TEMPLATE/maintainer_pull_request_template.md
@@ -4,48 +4,27 @@
**This PR will result in the following new package version:**
-**Please detail what change(s) this PR introduces and any additional information that should be known during the review of this PR:**
+**Please provide the finalized CHANGELOG entry which details the relevant changes included in this PR:**
+
## PR Checklist
### Basic Validation
Please acknowledge that you have successfully performed the following commands locally:
-- [ ] dbt compile
-- [ ] dbt run –full-refresh
-- [ ] dbt run
-- [ ] dbt test
-- [ ] dbt run –vars (if applicable)
+- [ ] dbt run –full-refresh && dbt test
+- [ ] dbt run (if incremental models are present) && dbt test
Before marking this PR as "ready for review" the following have been applied:
-- [ ] The appropriate issue has been linked and tagged
-- [ ] You are assigned to the corresponding issue and this PR
-- [ ] BuildKite integration tests are passing
+- [ ] The appropriate issue has been linked, tagged, and properly assigned.
+- [ ] All necessary documentation and version upgrades have been applied.
+
+- [ ] docs were regenerated (unless this PR does not include any code or yml updates).
+- [ ] BuildKite integration tests are passing.
+- [ ] Detailed validation steps have been provided below.
### Detailed Validation
-Please acknowledge that the following validation checks have been performed prior to marking this PR as "ready for review":
-- [ ] You have validated these changes and assure this PR will address the respective Issue/Feature.
-- [ ] You are reasonably confident these changes will not impact any other components of this package or any dependent packages.
-- [ ] You have provided details below around the validation steps performed to gain confidence in these changes.
+Please share any and all of your validation steps:
-### Standard Updates
-Please acknowledge that your PR contains the following standard updates:
-- Package versioning has been appropriately indexed in the following locations:
- - [ ] indexed within dbt_project.yml
- - [ ] indexed within integration_tests/dbt_project.yml
-- [ ] CHANGELOG has individual entries for each respective change in this PR
-
-- [ ] README updates have been applied (if applicable)
-
-- [ ] DECISIONLOG updates have been updated (if applicable)
-- [ ] Appropriate yml documentation has been added (if applicable)
-
-### dbt Docs
-Please acknowledge that after the above were all completed the below were applied to your branch:
-- [ ] docs were regenerated (unless this PR does not include any code or yml updates)
-
### If you had to summarize this PR in an emoji, which would it be?
:dancer:
diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml
new file mode 100644
index 0000000..8ed5853
--- /dev/null
+++ b/.github/workflows/auto-release.yml
@@ -0,0 +1,13 @@
+name: 'auto release'
+on:
+ pull_request:
+ types:
+ - closed
+ branches:
+ - main
+
+jobs:
+ call-workflow-passing-data:
+ if: github.event.pull_request.merged
+ uses: fivetran/dbt_package_automations/.github/workflows/auto-release.yml@main
+ secrets: inherit
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ab6b05..44f7523 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,33 @@
+# dbt_mixpanel v0.9.0
+[PR #41](https://github.com/fivetran/dbt_mixpanel/pull/41) includes the following updates:
+
+## 🚨 Breaking Changes 🚨
+
+> ⚠️ Since the following changes are breaking, a `--full-refresh` after upgrading will be required.
+
+- Added a default 7-day look-back to incremental models to accommodate late arriving events. The number of days can be changed by setting the var `lookback_window` in your dbt_project.yml. See the [Lookback Window section of the README](https://github.com/fivetran/dbt_mixpanel/blob/main/README.md#lookback-window) for more details.
+ - **Note:** This replaces the variable `sessionization_trailing_window`, which was previously used in the `mixpanel__sessions` model. This variable was replaced due to the change in the incremental and lookback strategy.
+
+- Performance improvements:
+ - Updated the incremental strategy for of the following models to `insert_overwrite` for BigQuery and Databricks and `delete+insert` for all other supported warehouses.
+ - `stg_mixpanel__user_event_date_spine`
+ - `mixpanel__event`
+ - `mixpanel__daily_events`
+ - `mixpanel__monthly_events`
+ - `mixpanel__sessions`
+ - Removed `stg_mixpanel__event_tmp` in favor of ephemeral model `stg_mixpanel__event`. This is to reduce redundancy of models created and reduce the number of full scans.
+ - Updated the materialization of `stg_mixpanel__user_first_event` from a table to a view. This model is used in one downstream model, so a view will reduce storage requirements while not significantly hindering performance.
+ - For Snowflake and BigQuery destinations, added `cluster_by` columns to the configs for incremental models.
+ - For Databricks destinations, updated incremental model file formats to `parquet` for compatibility with the `insert_overwrite` strategy.
+
+## Feature Updates
+- Added column `dbt_run_date` to incremental end models to capture the date a record was added or updated by this package.
+- Added `_fivetran_id` to the `mixpanel__event` model, since this is the source `event` table's primary key as of the [March 2023 connector release notes](https://fivetran.com/docs/applications/mixpanel/changelog#march2023).
+
+## Contributors
+- [@jasongroob](https://github.com/jasongroob) ([#41](https://github.com/fivetran/dbt_mixpanel/pull/41))
+- [@CraigWilson-ZOE](https://github.com/CraigWilson-ZOE) ([#38](https://github.com/fivetran/dbt_mixpanel/issues/38))
+
# dbt_mixpanel v0.8.0
>Note: If you run into issues with this update, we suggest to try a **full refresh**.
## 🎉 Feature Updates 🎉
diff --git a/README.md b/README.md
index 313c0a8..bb6f435 100644
--- a/README.md
+++ b/README.md
@@ -56,11 +56,13 @@ dispatch:
```
### Database Incremental Strategies
-Some end models in this package are materialized incrementally. We currently use the `merge` strategy as the default strategy for BigQuery, Snowflake, and Databricks databases. For Redshift and Postgres databases, we use `delete+insert` as the default strategy.
+Many of the end models in this package are materialized incrementally, so we have configured our models to work with the different strategies available to each supported warehouse.
-We recognize there are some limitations with these strategies, particularly around updated records in the past which cause duplicates, and are assessing using a different strategy in the future.
+For **BigQuery** and **Databricks** destinations, we have chosen `insert_overwrite` as the default strategy, which benefits from the partitioning capability.
-> For either of these strategies, we highly recommend that users periodically run a `--full-refresh` to ensure a high level of data quality.
+For **Snowflake**, **Redshift**, and **Postgres** databases, we have chosen `delete+insert` as the default strategy.
+
+> Regardless of strategy, we recommend that users periodically run a `--full-refresh` to ensure a high level of data quality.
## Step 2: Install the package
Include the following mixpanel package version in your `packages.yml` file:
@@ -69,7 +71,7 @@ Include the following mixpanel package version in your `packages.yml` file:
```yaml
packages:
- package: fivetran/mixpanel
- version: [">=0.8.0", "<0.9.0"] # we recommend using ranges to capture non-breaking changes automatically
+ version: [">=0.9.0", "<0.10.0"] # we recommend using ranges to capture non-breaking changes automatically
```
## Step 3: Define database and schema variables
@@ -82,7 +84,6 @@ vars:
```
## (Optional) Step 4: Additional configurations
-Expand for configurations
## Macros
### analyze_funnel [(source)](https://github.com/fivetran/dbt_mixpanel/blob/master/macros/analyze_funnel.sql)
@@ -98,7 +99,7 @@ The macro takes the following as arguments:
- `event_funnel`: List of event types (not case sensitive).
- Example: `'['play_song', 'stop_song', 'exit']`
- `group_by_column`: (Optional) A column by which you want to segment the funnel (this macro pulls data from the `mixpanel__event` model). The default value is `None`.
- - Examaple: `group_by_column = 'country_code'`.
+ - Example: `group_by_column = 'country_code'`.
- `conversion_criteria`: (Optional) A `WHERE` clause that will be applied when selecting from `mixpanel__event`.
- Example: To limit all events in the funnel to the United States, you'd provide `conversion_criteria = 'country_code = "US"'`. To limit the events to only song play events to the US, you'd input `conversion_criteria = 'country_code = "US"' OR event_type != 'play_song'`.
@@ -199,15 +200,13 @@ vars:
session_event_criteria: 'event_type in ("play_song", "stop_song", "create_playlist")'
```
-#### Session Trailing Window
-Events can sometimes come late. For example, events triggered on a mobile device that is offline will be sent to Mixpanel once the device reconnects to wifi or a cell network. This makes sessionizing a bit trickier/costlier, as the sessions model (and all final models in this package) is materialized as an incremental table.
-
-Therefore, to avoid requiring a full refresh to incorporate these delayed events into sessions, the package by default re-sessionizes the most recent 3 hours of events on each run. To change this, add the following variable to your `dbt_project.yml` file:
+#### Lookback Window
+Events can sometimes arrive late. For example, events triggered on a mobile device that is offline will be sent to Mixpanel once the device reconnects to wifi or a cell network. Since many of the models in this package are incremental, by default we look back 7 days to ensure late arrivals are captured while avoiding requiring a full refresh. To change the default lookback window, add the following variable to your `dbt_project.yml` file:
```yml
vars:
mixpanel:
- sessionization_trailing_window: number_of_hours # ex: 12
+ lookback_window: number_of_days # default is 7
```
### Changing the Build Schema
@@ -224,7 +223,7 @@ models:
### Change the source table references
If an individual source table has a different name than the package expects, add the table name as it appears in your destination to the respective variable:
-> IMPORTANT: See this project's [`dbt_project.yml`](https://github.com/fivetran/dbt_mixpanel_source/blob/main/dbt_project.yml) variable declarations to see the expected names.
+> IMPORTANT: See this project's [`dbt_project.yml`](https://github.com/fivetran/dbt_mixpanel/blob/main/dbt_project.yml) variable declarations to see the expected names.
```yml
vars:
@@ -241,8 +240,6 @@ Events are considered duplicates and consolidated by the package if they contain
This is performed in line with Mixpanel's internal de-duplication process, in which events are de-duped at the end of each day. This means that if an event was triggered during an offline session at 11:59 PM and _resent_ when the user came online at 12:01 AM, these records would _not_ be de-duplicated. This is the case in both Mixpanel and the Mixpanel dbt package.
-
-
## (Optional) Step 5: Orchestrate your models with Fivetran Transformations for dbt Core™
Expand for details
diff --git a/dbt_project.yml b/dbt_project.yml
index 9fa8560..a80680a 100644
--- a/dbt_project.yml
+++ b/dbt_project.yml
@@ -1,6 +1,6 @@
config-version: 2
name: 'mixpanel'
-version: '0.8.0'
+version: '0.9.0'
require-dbt-version: [">=1.3.0", "<2.0.0"]
models:
mixpanel:
diff --git a/docs/catalog.json b/docs/catalog.json
index b93b694..be84d22 100644
--- a/docs/catalog.json
+++ b/docs/catalog.json
@@ -1 +1 @@
-{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.4.5", "generated_at": "2023-05-10T17:18:59.906200Z", "invocation_id": "95eacb8e-3224-453c-91d6-a2bfaea46595", "env": {}}, "nodes": {"seed.mixpanel_integration_tests.event": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_file": {"type": "text", "index": 1, "name": "_file", "comment": null}, "_line": {"type": "integer", "index": 2, "name": "_line", "comment": null}, "_fivetran_id": {"type": "text", "index": 3, "name": "_fivetran_id", "comment": null}, "event_id": {"type": "integer", "index": 4, "name": "event_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "time": {"type": "timestamp without time zone", "index": 6, "name": "time", "comment": null}, "distinct_id": {"type": "character varying(100)", "index": 7, "name": "distinct_id", "comment": null}, "properties": {"type": "text", "index": 8, "name": "properties", "comment": null}, "insert_id": {"type": "text", "index": 9, "name": "insert_id", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 10, "name": "mp_processing_time_ms", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "screen_width": {"type": "integer", "index": 12, "name": "screen_width", "comment": null}, "wifi": {"type": "integer", "index": 13, "name": "wifi", "comment": null}, "app_release": {"type": "integer", "index": 14, "name": "app_release", "comment": null}, "app_version": {"type": "integer", "index": 15, "name": "app_version", "comment": null}, "os": {"type": "integer", "index": 16, "name": "os", "comment": null}, "mp_device_model": {"type": "integer", "index": 17, "name": "mp_device_model", "comment": null}, "city": {"type": "integer", "index": 18, "name": "city", "comment": null}, "os_version": {"type": "integer", "index": 19, "name": "os_version", "comment": null}, "mp_country_code": {"type": "integer", "index": 20, "name": "mp_country_code", "comment": null}, "lib_version": {"type": "integer", "index": 21, "name": "lib_version", "comment": null}, "manufacturer": {"type": "integer", "index": 22, "name": "manufacturer", "comment": null}, "radio": {"type": "integer", "index": 23, "name": "radio", "comment": null}, "carrier": {"type": "integer", "index": 24, "name": "carrier", "comment": null}, "screen_height": {"type": "integer", "index": 25, "name": "screen_height", "comment": null}, "app_build_number": {"type": "integer", "index": 26, "name": "app_build_number", "comment": null}, "model": {"type": "integer", "index": 27, "name": "model", "comment": null}, "region": {"type": "integer", "index": 28, "name": "region", "comment": null}, "app_version_string": {"type": "integer", "index": 29, "name": "app_version_string", "comment": null}, "mp_lib": {"type": "integer", "index": 30, "name": "mp_lib", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 31, "name": "initial_referring_domain", "comment": null}, "device_id": {"type": "character varying(100)", "index": 32, "name": "device_id", "comment": null}, "referrer": {"type": "integer", "index": 33, "name": "referrer", "comment": null}, "current_url": {"type": "integer", "index": 34, "name": "current_url", "comment": null}, "browser": {"type": "integer", "index": 35, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 36, "name": "browser_version", "comment": null}, "initial_referrer": {"type": "integer", "index": 37, "name": "initial_referrer", "comment": null}, "search_engine": {"type": "integer", "index": 38, "name": "search_engine", "comment": null}, "referring_domain": {"type": "integer", "index": 39, "name": "referring_domain", "comment": null}, "bluetooth_version": {"type": "integer", "index": 40, "name": "bluetooth_version", "comment": null}, "has_nfc": {"type": "integer", "index": 41, "name": "has_nfc", "comment": null}, "brand": {"type": "integer", "index": 42, "name": "brand", "comment": null}, "has_telephone": {"type": "integer", "index": 43, "name": "has_telephone", "comment": null}, "screen_dpi": {"type": "integer", "index": 44, "name": "screen_dpi", "comment": null}, "google_play_services": {"type": "integer", "index": 45, "name": "google_play_services", "comment": null}, "had_persisted_distinct_id": {"type": "integer", "index": 46, "name": "had_persisted_distinct_id", "comment": null}, "bluetooth_enabled": {"type": "integer", "index": 47, "name": "bluetooth_enabled", "comment": null}, "ios_ifa": {"type": "integer", "index": 48, "name": "ios_ifa", "comment": null}, "device": {"type": "integer", "index": 49, "name": "device", "comment": null}, "mp_keyword": {"type": "integer", "index": 50, "name": "mp_keyword", "comment": null}, "distinct_id_before_identity": {"type": "integer", "index": 51, "name": "distinct_id_before_identity", "comment": null}, "ae_session_length": {"type": "integer", "index": 52, "name": "ae_session_length", "comment": null}, "insert_id_": {"type": "integer", "index": 53, "name": "insert_id_", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.mixpanel_integration_tests.event"}, "model.mixpanel.mixpanel__daily_events": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__daily_events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "event_type": {"type": "text", "index": 2, "name": "event_type", "comment": null}, "number_of_events": {"type": "numeric", "index": 3, "name": "number_of_events", "comment": null}, "number_of_users": {"type": "bigint", "index": 4, "name": "number_of_users", "comment": null}, "number_of_new_users": {"type": "bigint", "index": 5, "name": "number_of_new_users", "comment": null}, "number_of_repeat_users": {"type": "bigint", "index": 6, "name": "number_of_repeat_users", "comment": null}, "number_of_return_users": {"type": "bigint", "index": 7, "name": "number_of_return_users", "comment": null}, "trailing_users_28d": {"type": "bigint", "index": 8, "name": "trailing_users_28d", "comment": null}, "trailing_users_7d": {"type": "bigint", "index": 9, "name": "trailing_users_7d", "comment": null}, "unique_key": {"type": "text", "index": 10, "name": "unique_key", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__daily_events"}, "model.mixpanel.mixpanel__event": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"unique_event_id": {"type": "text", "index": 1, "name": "unique_event_id", "comment": null}, "date_day": {"type": "date", "index": 2, "name": "date_day", "comment": null}, "event_type": {"type": "text", "index": 3, "name": "event_type", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 4, "name": "occurred_at", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "name": "_fivetran_synced", "comment": null}, "app_session_length": {"type": "integer", "index": 6, "name": "app_session_length", "comment": null}, "app_build_number": {"type": "integer", "index": 7, "name": "app_build_number", "comment": null}, "app_version": {"type": "integer", "index": 8, "name": "app_version", "comment": null}, "has_bluetooth_enabled": {"type": "integer", "index": 9, "name": "has_bluetooth_enabled", "comment": null}, "bluetooth_version": {"type": "integer", "index": 10, "name": "bluetooth_version", "comment": null}, "device_brand": {"type": "integer", "index": 11, "name": "device_brand", "comment": null}, "browser": {"type": "integer", "index": 12, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 13, "name": "browser_version", "comment": null}, "wireless_carrier": {"type": "integer", "index": 14, "name": "wireless_carrier", "comment": null}, "city": {"type": "integer", "index": 15, "name": "city", "comment": null}, "current_url": {"type": "integer", "index": 16, "name": "current_url", "comment": null}, "device_name": {"type": "integer", "index": 17, "name": "device_name", "comment": null}, "device_id": {"type": "character varying(100)", "index": 18, "name": "device_id", "comment": null}, "people_id": {"type": "character varying(100)", "index": 19, "name": "people_id", "comment": null}, "people_id_before_identified": {"type": "integer", "index": 20, "name": "people_id_before_identified", "comment": null}, "google_play_service_status": {"type": "integer", "index": 21, "name": "google_play_service_status", "comment": null}, "has_near_field_communication": {"type": "integer", "index": 22, "name": "has_near_field_communication", "comment": null}, "has_telephone": {"type": "integer", "index": 23, "name": "has_telephone", "comment": null}, "initial_referrer": {"type": "integer", "index": 24, "name": "initial_referrer", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 25, "name": "initial_referring_domain", "comment": null}, "insert_id": {"type": "text", "index": 26, "name": "insert_id", "comment": null}, "mixpanel_library_version": {"type": "integer", "index": 27, "name": "mixpanel_library_version", "comment": null}, "device_manufacturer": {"type": "integer", "index": 28, "name": "device_manufacturer", "comment": null}, "device_model": {"type": "integer", "index": 29, "name": "device_model", "comment": null}, "country_code": {"type": "integer", "index": 30, "name": "country_code", "comment": null}, "referrer_keywords": {"type": "integer", "index": 31, "name": "referrer_keywords", "comment": null}, "mixpanel_library": {"type": "integer", "index": 32, "name": "mixpanel_library", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 33, "name": "mp_processing_time_ms", "comment": null}, "event_type_original_casing": {"type": "text", "index": 34, "name": "event_type_original_casing", "comment": null}, "os": {"type": "integer", "index": 35, "name": "os", "comment": null}, "os_version": {"type": "integer", "index": 36, "name": "os_version", "comment": null}, "event_properties": {"type": "text", "index": 37, "name": "event_properties", "comment": null}, "network_type": {"type": "integer", "index": 38, "name": "network_type", "comment": null}, "referrer": {"type": "integer", "index": 39, "name": "referrer", "comment": null}, "referring_domain": {"type": "integer", "index": 40, "name": "referring_domain", "comment": null}, "region": {"type": "integer", "index": 41, "name": "region", "comment": null}, "screen_pixel_density": {"type": "integer", "index": 42, "name": "screen_pixel_density", "comment": null}, "screen_height": {"type": "integer", "index": 43, "name": "screen_height", "comment": null}, "screen_width": {"type": "integer", "index": 44, "name": "screen_width", "comment": null}, "search_engine": {"type": "integer", "index": 45, "name": "search_engine", "comment": null}, "has_wifi_connected": {"type": "integer", "index": 46, "name": "has_wifi_connected", "comment": null}, "nth_event_record": {"type": "bigint", "index": 47, "name": "nth_event_record", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__event"}, "model.mixpanel.mixpanel__monthly_events": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__monthly_events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_month": {"type": "date", "index": 1, "name": "date_month", "comment": null}, "event_type": {"type": "text", "index": 2, "name": "event_type", "comment": null}, "total_monthly_active_users": {"type": "bigint", "index": 3, "name": "total_monthly_active_users", "comment": null}, "number_of_users": {"type": "bigint", "index": 4, "name": "number_of_users", "comment": null}, "number_of_new_users": {"type": "bigint", "index": 5, "name": "number_of_new_users", "comment": null}, "number_of_repeat_users": {"type": "bigint", "index": 6, "name": "number_of_repeat_users", "comment": null}, "number_of_return_users": {"type": "bigint", "index": 7, "name": "number_of_return_users", "comment": null}, "number_of_events": {"type": "numeric", "index": 8, "name": "number_of_events", "comment": null}, "number_of_churn_users": {"type": "bigint", "index": 9, "name": "number_of_churn_users", "comment": null}, "unique_key": {"type": "text", "index": 10, "name": "unique_key", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__monthly_events"}, "model.mixpanel.mixpanel__sessions": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__sessions", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"session_id": {"type": "text", "index": 1, "name": "session_id", "comment": null}, "people_id": {"type": "character varying(100)", "index": 2, "name": "people_id", "comment": null}, "session_started_at": {"type": "timestamp without time zone", "index": 3, "name": "session_started_at", "comment": null}, "session_started_on_day": {"type": "date", "index": 4, "name": "session_started_on_day", "comment": null}, "user_id": {"type": "character varying(100)", "index": 5, "name": "user_id", "comment": null}, "device_id": {"type": "character varying(100)", "index": 6, "name": "device_id", "comment": null}, "total_number_of_events": {"type": "bigint", "index": 7, "name": "total_number_of_events", "comment": null}, "event_frequencies": {"type": "text", "index": 8, "name": "event_frequencies", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__sessions"}, "model.mixpanel.stg_mixpanel__event_tmp": {"metadata": {"type": "VIEW", "schema": "mixpanel_integration_tests_2_stg_mixpanel", "name": "stg_mixpanel__event_tmp", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_file": {"type": "text", "index": 1, "name": "_file", "comment": null}, "_line": {"type": "integer", "index": 2, "name": "_line", "comment": null}, "_fivetran_id": {"type": "text", "index": 3, "name": "_fivetran_id", "comment": null}, "event_id": {"type": "integer", "index": 4, "name": "event_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "time": {"type": "timestamp without time zone", "index": 6, "name": "time", "comment": null}, "distinct_id": {"type": "character varying(100)", "index": 7, "name": "distinct_id", "comment": null}, "properties": {"type": "text", "index": 8, "name": "properties", "comment": null}, "insert_id": {"type": "text", "index": 9, "name": "insert_id", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 10, "name": "mp_processing_time_ms", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "screen_width": {"type": "integer", "index": 12, "name": "screen_width", "comment": null}, "wifi": {"type": "integer", "index": 13, "name": "wifi", "comment": null}, "app_release": {"type": "integer", "index": 14, "name": "app_release", "comment": null}, "app_version": {"type": "integer", "index": 15, "name": "app_version", "comment": null}, "os": {"type": "integer", "index": 16, "name": "os", "comment": null}, "mp_device_model": {"type": "integer", "index": 17, "name": "mp_device_model", "comment": null}, "city": {"type": "integer", "index": 18, "name": "city", "comment": null}, "os_version": {"type": "integer", "index": 19, "name": "os_version", "comment": null}, "mp_country_code": {"type": "integer", "index": 20, "name": "mp_country_code", "comment": null}, "lib_version": {"type": "integer", "index": 21, "name": "lib_version", "comment": null}, "manufacturer": {"type": "integer", "index": 22, "name": "manufacturer", "comment": null}, "radio": {"type": "integer", "index": 23, "name": "radio", "comment": null}, "carrier": {"type": "integer", "index": 24, "name": "carrier", "comment": null}, "screen_height": {"type": "integer", "index": 25, "name": "screen_height", "comment": null}, "app_build_number": {"type": "integer", "index": 26, "name": "app_build_number", "comment": null}, "model": {"type": "integer", "index": 27, "name": "model", "comment": null}, "region": {"type": "integer", "index": 28, "name": "region", "comment": null}, "app_version_string": {"type": "integer", "index": 29, "name": "app_version_string", "comment": null}, "mp_lib": {"type": "integer", "index": 30, "name": "mp_lib", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 31, "name": "initial_referring_domain", "comment": null}, "device_id": {"type": "character varying(100)", "index": 32, "name": "device_id", "comment": null}, "referrer": {"type": "integer", "index": 33, "name": "referrer", "comment": null}, "current_url": {"type": "integer", "index": 34, "name": "current_url", "comment": null}, "browser": {"type": "integer", "index": 35, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 36, "name": "browser_version", "comment": null}, "initial_referrer": {"type": "integer", "index": 37, "name": "initial_referrer", "comment": null}, "search_engine": {"type": "integer", "index": 38, "name": "search_engine", "comment": null}, "referring_domain": {"type": "integer", "index": 39, "name": "referring_domain", "comment": null}, "bluetooth_version": {"type": "integer", "index": 40, "name": "bluetooth_version", "comment": null}, "has_nfc": {"type": "integer", "index": 41, "name": "has_nfc", "comment": null}, "brand": {"type": "integer", "index": 42, "name": "brand", "comment": null}, "has_telephone": {"type": "integer", "index": 43, "name": "has_telephone", "comment": null}, "screen_dpi": {"type": "integer", "index": 44, "name": "screen_dpi", "comment": null}, "google_play_services": {"type": "integer", "index": 45, "name": "google_play_services", "comment": null}, "had_persisted_distinct_id": {"type": "integer", "index": 46, "name": "had_persisted_distinct_id", "comment": null}, "bluetooth_enabled": {"type": "integer", "index": 47, "name": "bluetooth_enabled", "comment": null}, "ios_ifa": {"type": "integer", "index": 48, "name": "ios_ifa", "comment": null}, "device": {"type": "integer", "index": 49, "name": "device", "comment": null}, "mp_keyword": {"type": "integer", "index": 50, "name": "mp_keyword", "comment": null}, "distinct_id_before_identity": {"type": "integer", "index": 51, "name": "distinct_id_before_identity", "comment": null}, "ae_session_length": {"type": "integer", "index": 52, "name": "ae_session_length", "comment": null}, "insert_id_": {"type": "integer", "index": 53, "name": "insert_id_", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.stg_mixpanel__event_tmp"}, "model.mixpanel.stg_mixpanel__user_event_date_spine": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2_stg_mixpanel", "name": "stg_mixpanel__user_event_date_spine", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "people_id": {"type": "character varying(100)", "index": 2, "name": "people_id", "comment": null}, "event_type": {"type": "text", "index": 3, "name": "event_type", "comment": null}, "is_first_event_day": {"type": "integer", "index": 4, "name": "is_first_event_day", "comment": null}, "unique_key": {"type": "text", "index": 5, "name": "unique_key", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.stg_mixpanel__user_event_date_spine"}, "model.mixpanel.stg_mixpanel__user_first_event": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2_stg_mixpanel", "name": "stg_mixpanel__user_first_event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"people_id": {"type": "character varying(100)", "index": 1, "name": "people_id", "comment": null}, "event_type": {"type": "text", "index": 2, "name": "event_type", "comment": null}, "first_event_day": {"type": "date", "index": 3, "name": "first_event_day", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.stg_mixpanel__user_first_event"}}, "sources": {"source.mixpanel.mixpanel.event": {"metadata": {"type": "BASE TABLE", "schema": "mixpanel_integration_tests_2", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_file": {"type": "text", "index": 1, "name": "_file", "comment": null}, "_line": {"type": "integer", "index": 2, "name": "_line", "comment": null}, "_fivetran_id": {"type": "text", "index": 3, "name": "_fivetran_id", "comment": null}, "event_id": {"type": "integer", "index": 4, "name": "event_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "time": {"type": "timestamp without time zone", "index": 6, "name": "time", "comment": null}, "distinct_id": {"type": "character varying(100)", "index": 7, "name": "distinct_id", "comment": null}, "properties": {"type": "text", "index": 8, "name": "properties", "comment": null}, "insert_id": {"type": "text", "index": 9, "name": "insert_id", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 10, "name": "mp_processing_time_ms", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "screen_width": {"type": "integer", "index": 12, "name": "screen_width", "comment": null}, "wifi": {"type": "integer", "index": 13, "name": "wifi", "comment": null}, "app_release": {"type": "integer", "index": 14, "name": "app_release", "comment": null}, "app_version": {"type": "integer", "index": 15, "name": "app_version", "comment": null}, "os": {"type": "integer", "index": 16, "name": "os", "comment": null}, "mp_device_model": {"type": "integer", "index": 17, "name": "mp_device_model", "comment": null}, "city": {"type": "integer", "index": 18, "name": "city", "comment": null}, "os_version": {"type": "integer", "index": 19, "name": "os_version", "comment": null}, "mp_country_code": {"type": "integer", "index": 20, "name": "mp_country_code", "comment": null}, "lib_version": {"type": "integer", "index": 21, "name": "lib_version", "comment": null}, "manufacturer": {"type": "integer", "index": 22, "name": "manufacturer", "comment": null}, "radio": {"type": "integer", "index": 23, "name": "radio", "comment": null}, "carrier": {"type": "integer", "index": 24, "name": "carrier", "comment": null}, "screen_height": {"type": "integer", "index": 25, "name": "screen_height", "comment": null}, "app_build_number": {"type": "integer", "index": 26, "name": "app_build_number", "comment": null}, "model": {"type": "integer", "index": 27, "name": "model", "comment": null}, "region": {"type": "integer", "index": 28, "name": "region", "comment": null}, "app_version_string": {"type": "integer", "index": 29, "name": "app_version_string", "comment": null}, "mp_lib": {"type": "integer", "index": 30, "name": "mp_lib", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 31, "name": "initial_referring_domain", "comment": null}, "device_id": {"type": "character varying(100)", "index": 32, "name": "device_id", "comment": null}, "referrer": {"type": "integer", "index": 33, "name": "referrer", "comment": null}, "current_url": {"type": "integer", "index": 34, "name": "current_url", "comment": null}, "browser": {"type": "integer", "index": 35, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 36, "name": "browser_version", "comment": null}, "initial_referrer": {"type": "integer", "index": 37, "name": "initial_referrer", "comment": null}, "search_engine": {"type": "integer", "index": 38, "name": "search_engine", "comment": null}, "referring_domain": {"type": "integer", "index": 39, "name": "referring_domain", "comment": null}, "bluetooth_version": {"type": "integer", "index": 40, "name": "bluetooth_version", "comment": null}, "has_nfc": {"type": "integer", "index": 41, "name": "has_nfc", "comment": null}, "brand": {"type": "integer", "index": 42, "name": "brand", "comment": null}, "has_telephone": {"type": "integer", "index": 43, "name": "has_telephone", "comment": null}, "screen_dpi": {"type": "integer", "index": 44, "name": "screen_dpi", "comment": null}, "google_play_services": {"type": "integer", "index": 45, "name": "google_play_services", "comment": null}, "had_persisted_distinct_id": {"type": "integer", "index": 46, "name": "had_persisted_distinct_id", "comment": null}, "bluetooth_enabled": {"type": "integer", "index": 47, "name": "bluetooth_enabled", "comment": null}, "ios_ifa": {"type": "integer", "index": 48, "name": "ios_ifa", "comment": null}, "device": {"type": "integer", "index": 49, "name": "device", "comment": null}, "mp_keyword": {"type": "integer", "index": 50, "name": "mp_keyword", "comment": null}, "distinct_id_before_identity": {"type": "integer", "index": 51, "name": "distinct_id_before_identity", "comment": null}, "ae_session_length": {"type": "integer", "index": 52, "name": "ae_session_length", "comment": null}, "insert_id_": {"type": "integer", "index": 53, "name": "insert_id_", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.mixpanel.mixpanel.event"}}, "errors": null}
\ No newline at end of file
+{"metadata": {"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json", "dbt_version": "1.7.7", "generated_at": "2024-02-21T18:28:47.813672Z", "invocation_id": "4d877b6c-31f7-49ea-8565-61f0b8d87c80", "env": {}}, "nodes": {"seed.mixpanel_integration_tests.event": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_file": {"type": "text", "index": 1, "name": "_file", "comment": null}, "_line": {"type": "integer", "index": 2, "name": "_line", "comment": null}, "_fivetran_id": {"type": "text", "index": 3, "name": "_fivetran_id", "comment": null}, "event_id": {"type": "integer", "index": 4, "name": "event_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "time": {"type": "timestamp without time zone", "index": 6, "name": "time", "comment": null}, "distinct_id": {"type": "character varying(100)", "index": 7, "name": "distinct_id", "comment": null}, "properties": {"type": "text", "index": 8, "name": "properties", "comment": null}, "insert_id": {"type": "text", "index": 9, "name": "insert_id", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 10, "name": "mp_processing_time_ms", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "screen_width": {"type": "integer", "index": 12, "name": "screen_width", "comment": null}, "wifi": {"type": "integer", "index": 13, "name": "wifi", "comment": null}, "app_release": {"type": "integer", "index": 14, "name": "app_release", "comment": null}, "app_version": {"type": "integer", "index": 15, "name": "app_version", "comment": null}, "os": {"type": "integer", "index": 16, "name": "os", "comment": null}, "mp_device_model": {"type": "integer", "index": 17, "name": "mp_device_model", "comment": null}, "city": {"type": "integer", "index": 18, "name": "city", "comment": null}, "os_version": {"type": "integer", "index": 19, "name": "os_version", "comment": null}, "mp_country_code": {"type": "integer", "index": 20, "name": "mp_country_code", "comment": null}, "lib_version": {"type": "integer", "index": 21, "name": "lib_version", "comment": null}, "manufacturer": {"type": "integer", "index": 22, "name": "manufacturer", "comment": null}, "radio": {"type": "integer", "index": 23, "name": "radio", "comment": null}, "carrier": {"type": "integer", "index": 24, "name": "carrier", "comment": null}, "screen_height": {"type": "integer", "index": 25, "name": "screen_height", "comment": null}, "app_build_number": {"type": "integer", "index": 26, "name": "app_build_number", "comment": null}, "model": {"type": "integer", "index": 27, "name": "model", "comment": null}, "region": {"type": "integer", "index": 28, "name": "region", "comment": null}, "app_version_string": {"type": "integer", "index": 29, "name": "app_version_string", "comment": null}, "mp_lib": {"type": "integer", "index": 30, "name": "mp_lib", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 31, "name": "initial_referring_domain", "comment": null}, "device_id": {"type": "character varying(100)", "index": 32, "name": "device_id", "comment": null}, "referrer": {"type": "integer", "index": 33, "name": "referrer", "comment": null}, "current_url": {"type": "integer", "index": 34, "name": "current_url", "comment": null}, "browser": {"type": "integer", "index": 35, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 36, "name": "browser_version", "comment": null}, "initial_referrer": {"type": "integer", "index": 37, "name": "initial_referrer", "comment": null}, "search_engine": {"type": "integer", "index": 38, "name": "search_engine", "comment": null}, "referring_domain": {"type": "integer", "index": 39, "name": "referring_domain", "comment": null}, "bluetooth_version": {"type": "integer", "index": 40, "name": "bluetooth_version", "comment": null}, "has_nfc": {"type": "integer", "index": 41, "name": "has_nfc", "comment": null}, "brand": {"type": "integer", "index": 42, "name": "brand", "comment": null}, "has_telephone": {"type": "integer", "index": 43, "name": "has_telephone", "comment": null}, "screen_dpi": {"type": "integer", "index": 44, "name": "screen_dpi", "comment": null}, "google_play_services": {"type": "integer", "index": 45, "name": "google_play_services", "comment": null}, "had_persisted_distinct_id": {"type": "integer", "index": 46, "name": "had_persisted_distinct_id", "comment": null}, "bluetooth_enabled": {"type": "integer", "index": 47, "name": "bluetooth_enabled", "comment": null}, "ios_ifa": {"type": "integer", "index": 48, "name": "ios_ifa", "comment": null}, "device": {"type": "integer", "index": 49, "name": "device", "comment": null}, "mp_keyword": {"type": "integer", "index": 50, "name": "mp_keyword", "comment": null}, "distinct_id_before_identity": {"type": "integer", "index": 51, "name": "distinct_id_before_identity", "comment": null}, "ae_session_length": {"type": "integer", "index": 52, "name": "ae_session_length", "comment": null}, "insert_id_": {"type": "integer", "index": 53, "name": "insert_id_", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "seed.mixpanel_integration_tests.event"}, "model.mixpanel.mixpanel__daily_events": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__daily_events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "event_type": {"type": "text", "index": 2, "name": "event_type", "comment": null}, "number_of_events": {"type": "numeric", "index": 3, "name": "number_of_events", "comment": null}, "number_of_users": {"type": "bigint", "index": 4, "name": "number_of_users", "comment": null}, "number_of_new_users": {"type": "bigint", "index": 5, "name": "number_of_new_users", "comment": null}, "number_of_repeat_users": {"type": "bigint", "index": 6, "name": "number_of_repeat_users", "comment": null}, "number_of_return_users": {"type": "bigint", "index": 7, "name": "number_of_return_users", "comment": null}, "trailing_users_28d": {"type": "bigint", "index": 8, "name": "trailing_users_28d", "comment": null}, "trailing_users_7d": {"type": "bigint", "index": 9, "name": "trailing_users_7d", "comment": null}, "unique_key": {"type": "text", "index": 10, "name": "unique_key", "comment": null}, "dbt_run_date": {"type": "date", "index": 11, "name": "dbt_run_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__daily_events"}, "model.mixpanel.mixpanel__event": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"unique_event_id": {"type": "text", "index": 1, "name": "unique_event_id", "comment": null}, "date_day": {"type": "date", "index": 2, "name": "date_day", "comment": null}, "event_type": {"type": "text", "index": 3, "name": "event_type", "comment": null}, "occurred_at": {"type": "timestamp without time zone", "index": 4, "name": "occurred_at", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 5, "name": "_fivetran_synced", "comment": null}, "_fivetran_id": {"type": "text", "index": 6, "name": "_fivetran_id", "comment": null}, "app_session_length": {"type": "integer", "index": 7, "name": "app_session_length", "comment": null}, "app_build_number": {"type": "integer", "index": 8, "name": "app_build_number", "comment": null}, "app_version": {"type": "integer", "index": 9, "name": "app_version", "comment": null}, "has_bluetooth_enabled": {"type": "integer", "index": 10, "name": "has_bluetooth_enabled", "comment": null}, "bluetooth_version": {"type": "integer", "index": 11, "name": "bluetooth_version", "comment": null}, "device_brand": {"type": "integer", "index": 12, "name": "device_brand", "comment": null}, "browser": {"type": "integer", "index": 13, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 14, "name": "browser_version", "comment": null}, "wireless_carrier": {"type": "integer", "index": 15, "name": "wireless_carrier", "comment": null}, "city": {"type": "integer", "index": 16, "name": "city", "comment": null}, "current_url": {"type": "integer", "index": 17, "name": "current_url", "comment": null}, "device_name": {"type": "integer", "index": 18, "name": "device_name", "comment": null}, "device_id": {"type": "character varying(100)", "index": 19, "name": "device_id", "comment": null}, "people_id": {"type": "character varying(100)", "index": 20, "name": "people_id", "comment": null}, "people_id_before_identified": {"type": "integer", "index": 21, "name": "people_id_before_identified", "comment": null}, "google_play_service_status": {"type": "integer", "index": 22, "name": "google_play_service_status", "comment": null}, "has_near_field_communication": {"type": "integer", "index": 23, "name": "has_near_field_communication", "comment": null}, "has_telephone": {"type": "integer", "index": 24, "name": "has_telephone", "comment": null}, "initial_referrer": {"type": "integer", "index": 25, "name": "initial_referrer", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 26, "name": "initial_referring_domain", "comment": null}, "insert_id": {"type": "text", "index": 27, "name": "insert_id", "comment": null}, "mixpanel_library_version": {"type": "integer", "index": 28, "name": "mixpanel_library_version", "comment": null}, "device_manufacturer": {"type": "integer", "index": 29, "name": "device_manufacturer", "comment": null}, "device_model": {"type": "integer", "index": 30, "name": "device_model", "comment": null}, "country_code": {"type": "integer", "index": 31, "name": "country_code", "comment": null}, "referrer_keywords": {"type": "integer", "index": 32, "name": "referrer_keywords", "comment": null}, "mixpanel_library": {"type": "integer", "index": 33, "name": "mixpanel_library", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 34, "name": "mp_processing_time_ms", "comment": null}, "event_type_original_casing": {"type": "text", "index": 35, "name": "event_type_original_casing", "comment": null}, "os": {"type": "integer", "index": 36, "name": "os", "comment": null}, "os_version": {"type": "integer", "index": 37, "name": "os_version", "comment": null}, "event_properties": {"type": "text", "index": 38, "name": "event_properties", "comment": null}, "network_type": {"type": "integer", "index": 39, "name": "network_type", "comment": null}, "referrer": {"type": "integer", "index": 40, "name": "referrer", "comment": null}, "referring_domain": {"type": "integer", "index": 41, "name": "referring_domain", "comment": null}, "region": {"type": "integer", "index": 42, "name": "region", "comment": null}, "screen_pixel_density": {"type": "integer", "index": 43, "name": "screen_pixel_density", "comment": null}, "screen_height": {"type": "integer", "index": 44, "name": "screen_height", "comment": null}, "screen_width": {"type": "integer", "index": 45, "name": "screen_width", "comment": null}, "search_engine": {"type": "integer", "index": 46, "name": "search_engine", "comment": null}, "has_wifi_connected": {"type": "integer", "index": 47, "name": "has_wifi_connected", "comment": null}, "nth_event_record": {"type": "bigint", "index": 48, "name": "nth_event_record", "comment": null}, "dbt_run_date": {"type": "date", "index": 49, "name": "dbt_run_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__event"}, "model.mixpanel.mixpanel__monthly_events": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__monthly_events", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_month": {"type": "date", "index": 1, "name": "date_month", "comment": null}, "event_type": {"type": "text", "index": 2, "name": "event_type", "comment": null}, "total_monthly_active_users": {"type": "bigint", "index": 3, "name": "total_monthly_active_users", "comment": null}, "number_of_users": {"type": "bigint", "index": 4, "name": "number_of_users", "comment": null}, "number_of_new_users": {"type": "bigint", "index": 5, "name": "number_of_new_users", "comment": null}, "number_of_repeat_users": {"type": "bigint", "index": 6, "name": "number_of_repeat_users", "comment": null}, "number_of_return_users": {"type": "bigint", "index": 7, "name": "number_of_return_users", "comment": null}, "number_of_events": {"type": "numeric", "index": 8, "name": "number_of_events", "comment": null}, "number_of_churn_users": {"type": "bigint", "index": 9, "name": "number_of_churn_users", "comment": null}, "unique_key": {"type": "text", "index": 10, "name": "unique_key", "comment": null}, "dbt_run_date": {"type": "date", "index": 11, "name": "dbt_run_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__monthly_events"}, "model.mixpanel.mixpanel__sessions": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2_mixpanel", "name": "mixpanel__sessions", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"session_id": {"type": "text", "index": 1, "name": "session_id", "comment": null}, "people_id": {"type": "character varying(100)", "index": 2, "name": "people_id", "comment": null}, "session_started_at": {"type": "timestamp without time zone", "index": 3, "name": "session_started_at", "comment": null}, "session_started_on_day": {"type": "date", "index": 4, "name": "session_started_on_day", "comment": null}, "user_id": {"type": "character varying(100)", "index": 5, "name": "user_id", "comment": null}, "device_id": {"type": "character varying(100)", "index": 6, "name": "device_id", "comment": null}, "total_number_of_events": {"type": "bigint", "index": 7, "name": "total_number_of_events", "comment": null}, "event_frequencies": {"type": "text", "index": 8, "name": "event_frequencies", "comment": null}, "dbt_run_date": {"type": "date", "index": 9, "name": "dbt_run_date", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.mixpanel__sessions"}, "model.mixpanel.stg_mixpanel__user_event_date_spine": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2_stg_mixpanel", "name": "stg_mixpanel__user_event_date_spine", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"date_day": {"type": "date", "index": 1, "name": "date_day", "comment": null}, "people_id": {"type": "character varying(100)", "index": 2, "name": "people_id", "comment": null}, "event_type": {"type": "text", "index": 3, "name": "event_type", "comment": null}, "is_first_event_day": {"type": "integer", "index": 4, "name": "is_first_event_day", "comment": null}, "unique_key": {"type": "text", "index": 5, "name": "unique_key", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.stg_mixpanel__user_event_date_spine"}, "model.mixpanel.stg_mixpanel__user_first_event": {"metadata": {"type": "VIEW", "schema": "22_mixpanel_integration_tests_2_stg_mixpanel", "name": "stg_mixpanel__user_first_event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"people_id": {"type": "character varying(100)", "index": 1, "name": "people_id", "comment": null}, "event_type": {"type": "text", "index": 2, "name": "event_type", "comment": null}, "first_event_day": {"type": "date", "index": 3, "name": "first_event_day", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "model.mixpanel.stg_mixpanel__user_first_event"}}, "sources": {"source.mixpanel.mixpanel.event": {"metadata": {"type": "BASE TABLE", "schema": "22_mixpanel_integration_tests_2", "name": "event", "database": "postgres", "comment": null, "owner": "pguser"}, "columns": {"_file": {"type": "text", "index": 1, "name": "_file", "comment": null}, "_line": {"type": "integer", "index": 2, "name": "_line", "comment": null}, "_fivetran_id": {"type": "text", "index": 3, "name": "_fivetran_id", "comment": null}, "event_id": {"type": "integer", "index": 4, "name": "event_id", "comment": null}, "name": {"type": "text", "index": 5, "name": "name", "comment": null}, "time": {"type": "timestamp without time zone", "index": 6, "name": "time", "comment": null}, "distinct_id": {"type": "character varying(100)", "index": 7, "name": "distinct_id", "comment": null}, "properties": {"type": "text", "index": 8, "name": "properties", "comment": null}, "insert_id": {"type": "text", "index": 9, "name": "insert_id", "comment": null}, "mp_processing_time_ms": {"type": "integer", "index": 10, "name": "mp_processing_time_ms", "comment": null}, "_fivetran_synced": {"type": "timestamp without time zone", "index": 11, "name": "_fivetran_synced", "comment": null}, "screen_width": {"type": "integer", "index": 12, "name": "screen_width", "comment": null}, "wifi": {"type": "integer", "index": 13, "name": "wifi", "comment": null}, "app_release": {"type": "integer", "index": 14, "name": "app_release", "comment": null}, "app_version": {"type": "integer", "index": 15, "name": "app_version", "comment": null}, "os": {"type": "integer", "index": 16, "name": "os", "comment": null}, "mp_device_model": {"type": "integer", "index": 17, "name": "mp_device_model", "comment": null}, "city": {"type": "integer", "index": 18, "name": "city", "comment": null}, "os_version": {"type": "integer", "index": 19, "name": "os_version", "comment": null}, "mp_country_code": {"type": "integer", "index": 20, "name": "mp_country_code", "comment": null}, "lib_version": {"type": "integer", "index": 21, "name": "lib_version", "comment": null}, "manufacturer": {"type": "integer", "index": 22, "name": "manufacturer", "comment": null}, "radio": {"type": "integer", "index": 23, "name": "radio", "comment": null}, "carrier": {"type": "integer", "index": 24, "name": "carrier", "comment": null}, "screen_height": {"type": "integer", "index": 25, "name": "screen_height", "comment": null}, "app_build_number": {"type": "integer", "index": 26, "name": "app_build_number", "comment": null}, "model": {"type": "integer", "index": 27, "name": "model", "comment": null}, "region": {"type": "integer", "index": 28, "name": "region", "comment": null}, "app_version_string": {"type": "integer", "index": 29, "name": "app_version_string", "comment": null}, "mp_lib": {"type": "integer", "index": 30, "name": "mp_lib", "comment": null}, "initial_referring_domain": {"type": "integer", "index": 31, "name": "initial_referring_domain", "comment": null}, "device_id": {"type": "character varying(100)", "index": 32, "name": "device_id", "comment": null}, "referrer": {"type": "integer", "index": 33, "name": "referrer", "comment": null}, "current_url": {"type": "integer", "index": 34, "name": "current_url", "comment": null}, "browser": {"type": "integer", "index": 35, "name": "browser", "comment": null}, "browser_version": {"type": "integer", "index": 36, "name": "browser_version", "comment": null}, "initial_referrer": {"type": "integer", "index": 37, "name": "initial_referrer", "comment": null}, "search_engine": {"type": "integer", "index": 38, "name": "search_engine", "comment": null}, "referring_domain": {"type": "integer", "index": 39, "name": "referring_domain", "comment": null}, "bluetooth_version": {"type": "integer", "index": 40, "name": "bluetooth_version", "comment": null}, "has_nfc": {"type": "integer", "index": 41, "name": "has_nfc", "comment": null}, "brand": {"type": "integer", "index": 42, "name": "brand", "comment": null}, "has_telephone": {"type": "integer", "index": 43, "name": "has_telephone", "comment": null}, "screen_dpi": {"type": "integer", "index": 44, "name": "screen_dpi", "comment": null}, "google_play_services": {"type": "integer", "index": 45, "name": "google_play_services", "comment": null}, "had_persisted_distinct_id": {"type": "integer", "index": 46, "name": "had_persisted_distinct_id", "comment": null}, "bluetooth_enabled": {"type": "integer", "index": 47, "name": "bluetooth_enabled", "comment": null}, "ios_ifa": {"type": "integer", "index": 48, "name": "ios_ifa", "comment": null}, "device": {"type": "integer", "index": 49, "name": "device", "comment": null}, "mp_keyword": {"type": "integer", "index": 50, "name": "mp_keyword", "comment": null}, "distinct_id_before_identity": {"type": "integer", "index": 51, "name": "distinct_id_before_identity", "comment": null}, "ae_session_length": {"type": "integer", "index": 52, "name": "ae_session_length", "comment": null}, "insert_id_": {"type": "integer", "index": 53, "name": "insert_id_", "comment": null}}, "stats": {"has_stats": {"id": "has_stats", "label": "Has Stats?", "value": false, "include": false, "description": "Indicates whether there are statistics for this table"}}, "unique_id": "source.mixpanel.mixpanel.event"}}, "errors": null}
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 0807e63..ca1e6f8 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -24,7 +24,7 @@
-