The principle: Queries go to data
Traditional data sharing requires copying data between systems. Narrative inverts this model:| Traditional approach | Narrative approach |
|---|---|
| Copy data to a shared location | Leave data in place |
| Queries run against copies | Queries run against source data |
| Data freshness depends on sync frequency | Data is always current |
| Multiple copies increase security surface | Single source reduces exposure |
What flows where
Understanding what crosses boundaries helps clarify the architecture:From user to control plane
- NQL query text
- Authentication credentials
- Request metadata
From control plane to data plane
- Compiled SQL (transpiled for the target database)
- Job metadata and parameters
- Execution instructions
From data plane to control plane
- Status updates and completion signals
- Error messages and diagnostics
- Data samples (when requested for viewing results)
What never leaves the data plane
- Raw source data
- Intermediate query results
- Materialized view contents (stored locally)
Query data flow
All queries—including interactive queries run from the Query Editor—follow the same pattern as materialized views. Results are stored as a dataset in the data plane, not returned directly to the user.- A 24-hour retention policy that expires the results automatically
- A row limit that caps the result size
Materialized view data flow
Materialized views follow a different pattern. Results stay in the data plane:How you view query results
Since query results stay in the data plane, how do you actually see them? Through data sampling.- Sample job — The control plane requests a sample from the dataset in your data plane
- Row retrieval — Up to 1,000 rows are read from the stored results
- Sample storage — The sample is stored in the control plane for quick access
- Display — The sample appears in the UI or API response
Cross-data-plane queries
When a query references data in multiple data planes, the control plane coordinates execution:- Query decomposition — The control plane breaks the query into subqueries, one per data plane
- Parallel execution — Subqueries execute independently in each data plane
- Result coordination — Results are combined as needed, with the control plane coordinating data movement between planes
Data collaboration flow
When you share data with a partner organization, they query your data through the same architecture:- Partner submits NQL query referencing your dataset
- Control plane verifies their permissions against your access rules
- Compiled query is sent to your data plane
- Your data plane executes and returns results
- Partner receives results through the control plane
Data egress via connectors
While the architecture above keeps data within data planes, you often need to deliver data to external destinations for activation. Connectors enable delivery to platforms like advertising DSPs, cloud storage, and data warehouses.How connectors work
Connectors are pre-built integrations that handle authentication, data formatting, and delivery to external platforms. The data flow for connector-based delivery:Setting up delivery
Connector-based delivery involves two configuration levels:| Level | What it configures | Example |
|---|---|---|
| Profile | Account-level authentication and settings | AWS credentials, ad account ID |
| Delivery settings | Job-specific parameters | Destination folder, delivery schedule |
Each connector requires specific identifier types to match users on the destination platform. See Connectors Reference for requirements by platform.

