-
Notifications
You must be signed in to change notification settings - Fork 0
docs(warehouse-native): document Fully & Hybrid modes and Data Sources (FT-2068) #280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+127
−3
Merged
Changes from 1 commit
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
5c8f2b0
docs(warehouse-native): document Fully & Hybrid modes and Data Source…
joalves 6e24942
docs(warehouse-native): clarify Hybrid goal sourcing is per-goal (FT-…
joalves 24beec4
docs(warehouse-native): soften goal-location wording in Step 4 (FT-2068)
joalves f3cb2c4
docs(warehouse-native): remove internal implementation detail from ex…
joalves File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| --- | ||
| sidebar_position: 1 | ||
| title: "Warehouse Native Modes" | ||
| description: "Understand the two Warehouse Native modes — Hybrid and Fully — and choose the right one for your data and compliance needs." | ||
| --- | ||
|
|
||
| import Image from "../../../src/components/Image"; | ||
|
|
||
| # Warehouse Native Modes | ||
|
|
||
| ABsmartly supports two ways of running Warehouse Native, depending on how much of your experiment data you want to keep inside your own warehouse: | ||
|
|
||
| - **Hybrid Warehouse Native** — ABsmartly handles assignment and exposures in its managed ClickHouse, while your **goals and metrics** are computed against your own warehouse. | ||
| - **Fully Warehouse Native** — your warehouse holds **everything** — exposures, goals, and attributes — and nothing user-level ever leaves your infrastructure. | ||
|
|
||
| Both modes are built on the same foundation: **[data sources](./get-started)**. The mode you're in is determined by which data source is your **default**. | ||
|
|
||
| ## The default data source | ||
|
|
||
| Every ABsmartly installation has exactly one **default data source**. Out of the box, that's ABsmartly's built-in, managed **ClickHouse** — the same engine that powers the standard cloud experience. You can then connect additional **external** data sources (BigQuery, Snowflake, Redshift, Databricks, or your own ClickHouse) for your goals and metrics. | ||
|
|
||
| <Image maxWidth="48rem" centered img="warehouse-native/datasources-list.png" alt="Data Sources list showing the managed ClickHouse marked as Default alongside an external BigQuery data source" /> | ||
|
|
||
| The default data source is special: **exposure events can only come from the default data source.** This single rule is what separates the two modes. | ||
|
|
||
| - In **Hybrid**, the default stays ABsmartly's managed ClickHouse, so exposures live there. | ||
| - In **Fully**, your own warehouse becomes the default, so exposures live in your warehouse alongside everything else. | ||
|
|
||
| ## Hybrid Warehouse Native | ||
|
|
||
| In Hybrid mode, you keep ABsmartly's managed ClickHouse as the default data source and attach one or more external warehouses for your **goals**. | ||
|
|
||
| - **Assignment and exposures** are handled by ABsmartly and stored in the managed ClickHouse. | ||
| - **Goals and metrics** are computed against your external warehouse, where your business data already lives — so experiment results line up with what your BI and finance teams report. | ||
| - To join exposures against goals that live in a different warehouse, ABsmartly exports the exposures table as Parquet and imports it into your external data source at query time. You configure this on each external data source through the **[Exposures import](./get-started#step-4-configure-exposures-import-hybrid-only)** section. | ||
|
|
||
| Hybrid is the fastest way to get warehouse-aligned metrics: you keep ABsmartly's battle-tested assignment and exposure pipeline, and only move the metric computation into your warehouse. | ||
|
|
||
| ## Fully Warehouse Native | ||
|
|
||
| In Fully mode, **your own warehouse is the default data source.** Exposures, goals, and attributes all live in your warehouse, and no user-level data is ever sent to ABsmartly's cloud. ABsmartly still handles experiment management, assignment logic, statistics, and metric governance — but the underlying data never leaves your environment. | ||
|
|
||
| Because exposures come from the default data source, going Fully unlocks two things Hybrid can't offer: | ||
|
|
||
| - **Filter exposures yourself.** You control the exposures table, so you can strip out bots, scrapers, internal traffic, or any other unwanted exposures before ABsmartly analyzes them — using your own logic in your own warehouse. | ||
| - **Enrich exposures with your own attributes.** You can join in an external **attributes** table to add segmentation dimensions that ABsmartly never sees in Hybrid mode, then slice experiment results by those attributes. | ||
|
|
||
| :::info Why the exposure source matters | ||
| Exposure-side filtering (robots, scrapers, internal traffic) and attribute enrichment both operate on the exposure stream. Since exposures can only come from the default data source, these capabilities are only available when **your** warehouse is the default — that is, in **Fully Warehouse Native**. If you need either, choose Fully. | ||
| ::: | ||
|
|
||
| ## Choosing a mode | ||
|
|
||
| | | Hybrid Warehouse Native | Fully Warehouse Native | | ||
| |---|---|---| | ||
| | **Default data source** | ABsmartly's managed ClickHouse | Your own warehouse | | ||
| | **Where exposures live** | ABsmartly's managed ClickHouse | Your warehouse | | ||
| | **Where goals & metrics are computed** | Your warehouse | Your warehouse | | ||
| | **User-level data in ABsmartly cloud** | Exposures only | None | | ||
| | **Filter exposures yourself (bots/scrapers/internal traffic)** | ❌ | ✅ | | ||
| | **Enrich exposures with your own attributes table** | ❌ | ✅ | | ||
| | **Setup effort** | Lower — keep ABsmartly's exposure pipeline | Higher — your warehouse owns exposures end to end | | ||
|
|
||
| **Choose Hybrid** when you want goal and metric calculations to run against your warehouse data, but are happy to let ABsmartly manage assignment and exposures. | ||
|
|
||
| **Choose Fully** when data residency requires that no user-level data leaves your infrastructure, or when you need to filter exposures or enrich them with your own attributes. | ||
|
|
||
| ## Next steps | ||
|
|
||
| Whichever mode you're targeting, the setup starts the same way — by connecting a data source: | ||
|
|
||
| - **[Get Started with Warehouse Native](./get-started)** — connect your warehouse, map your tables, and configure data freshness. | ||
| - **[Connect your warehouse](./get-started#step-1-connect-to-your-data-warehouse)** — step-by-step guides for BigQuery, Snowflake, ClickHouse, Redshift, and Databricks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Object store URL schemes omit ClickHouse and Databricks.
The Credentials row covers all five supported warehouses, but the Object store URL row only lists schemes for BigQuery, Redshift, and Snowflake. A user configuring an external ClickHouse or Databricks data source for Hybrid exposures import won't know which URL scheme to enter. Add scheme examples for the remaining two warehouses for parity.
📝 Suggested addition
📝 Committable suggestion
🤖 Prompt for AI Agents