Est.
Data SharingLong read

Delivering Customer Data to Non-Snowflake Warehouses From a Snowflake Backend

An embedded layer handles authentication, schema translation.

· 9 min read
Cover illustration for “Delivering Customer Data to Non-Snowflake Warehouses From a Snowflake Backend”
Data Sharing · November 6, 2026 · 9 min read · 1,916 words

An embedded integration layer can replace destination-specific custom pipelines when it handles authentication, schema translation, incremental sync, and recovery. For most enterprise SaaS products, the practical design combines object storage for bulk loads, push-based incremental delivery, and federated reads where stale data is unacceptable.

Why SaaS products built on Snowflake face a multi-warehouse delivery problem

A SaaS backend runs on Snowflake, but its customer runs on Redshift. Neither platform’s native tooling resolves the complete delivery problem. The provider must move data between systems whose permissions, query semantics, and compute budgets are controlled by different teams. For enterprises with mature data engineering practices, the receiving warehouse is an authoritative destination. Making those customers switch to the platform the vendor prefers can stall an enterprise deal.

AWS-native teams, BigQuery-first organizations, Databricks lakehouse teams, and Power BI-centric enterprises have different reasons for protecting their existing data platforms. Each evaluates an integration against its own operating model. A delivery feature therefore has to work with the customer’s infrastructure without turning every account into a separate engineering project.

What makes cross-warehouse delivery structurally harder than intra-platform sharing

Crossing the warehouse boundary exposes assumptions that intra-platform sharing can leave implicit. Snowflake SQL does not map cleanly to Redshift or BigQuery without transformation, so an export that moves successfully can still require schema translation before it is useful. Authentication must also work against a foreign identity system. The provider no longer controls the environment that receives the data. Warehouse sizing, role-based access control, and the customer’s compute budget constrain what delivery can accomplish.

Asking customers to pull from the SaaS backend leaves the provider in control of what its system retains and for how long, which can conflict with residency commitments. Bespoke connectors create separate authentication, mapping, recovery, and maintenance work for each destination. File drops remove the direct warehouse connection but introduce latency, schema drift, and no transactional guarantees. For near-real-time workloads, that delay can make the integration unacceptable even when the files arrive correctly.

The four target environments a Snowflake-backed SaaS must be ready to deliver to

Amazon Redshift serves AWS-native enterprise environments and traditional warehouse workloads. Delivery typically runs through S3 staging or JDBC/ODBC, with IAM role-based authentication preferred in enterprise deployments. Google BigQuery serves serverless analytics, ad/event processing, and fast dashboards through a fully managed model that separates storage and compute. Before a provider starts large loads, it must account for how costs differ between flat-rate slot pricing and on-demand pricing.

Databricks serves ML-heavy lakehouse workloads, making it a distinct destination. Its SQL dialect, storage formats, and authentication model create their own maintenance requirements. Microsoft Fabric / Azure Synapse serves enterprises whose reporting workflows already depend on Microsoft tools. Azure identity is part of the delivery path. Fabric’s OneLake consolidates storage, while dedicated SQL pools versus serverless pools determine cost behavior in Synapse.

Object storage is separate from these four warehouse environments. S3, GCS, and ADLS can act as staging systems or final landing zones for customers who ingest raw files into a lakehouse. That distinction affects ownership of the next step. Reaching a bucket does not mean the data is available for warehouse queries.

Three delivery patterns and what each one trades away

Push-based sync places responsibility for delivery with the SaaS provider. It supports incremental updates to the customer’s destination rather than requiring that customer to organize every transfer. That convenience creates an operational obligation for the provider. Authentication, schema translation, recovery, and downstream migrations become part of the product’s delivery contract. Push-based delivery also has to respect the receiving warehouse’s permissions and compute budget.

Federated reads favor freshness over a maintained destination copy. They fit real-time analytics and agent use cases where stale data is unacceptable, but they do not eliminate cross-platform dependencies. Query access still depends on authentication, permissions, and compatible semantics. Schema changes can break the customer’s queries silently. This pattern therefore shifts the burden from maintaining a delivered copy to maintaining a dependable read interface.

Object storage hand-off makes a different exchange. The backend writes Parquet or CSV files to a customer-controlled S3, GCS, or ADLS bucket, and the customer ingests them on its own schedule. This removes the need to authenticate directly with the destination warehouse, though access to storage still needs authorization. In return, the customer accepts ingestion latency, schema management, and error recovery without transactional guarantees from the hand-off itself.

These trade-offs favor a combined architecture for most enterprise SaaS products. Object storage handles bulk historical loads without coupling the provider to the customer’s warehouse ingestion schedule. Push-based sync then handles incremental updates. Federated reads remain reserved for workloads whose freshness requirements justify a live query path.

Authentication and access control across the warehouse boundary

Authentication is an ongoing governance responsibility. OAuth and identity-provider federation serve customers whose policies require integrations to pass through Okta, Azure Entra ID, or Google Workspace. That fit matters most in regulated environments, although how it is set up differs by destination. There must also be a supported path for key-pair authentication. Customers who want to manage access within their cloud provider’s identity system can use cloud-native options such as AWS IAM role assumption, GCP service accounts, and Azure managed identities.

The customer must be able to choose. Prescribing one authentication model excludes accounts whose security policies require another, even when the underlying data transfer is technically feasible. Delivery must also work within the role-based access control already in place, without asking for broad permissions. Security reviews will check whether credentials can rotate without downtime and whether every query from the integration shows up in the customer’s warehouse audit log. Those questions belong in the architecture before deployment.

Data residency, compliance, and what enterprise procurement teams actually check

Enterprise procurement can stop an integration before its technical review begins. SOC 2 Type II, encryption at rest and in transit, and private-cloud deployment capability therefore belong in the initial architecture. Residency is a separate requirement from certification. A customer may accept a SOC 2 certified vendor but still require data to stay within a given region or cloud provider’s infrastructure. Region-scoped delivery paths must satisfy that restriction at the network level.

Private-cloud and VPC deployment let customers who require it run the integration layer inside their own environment, so data does not pass through a third-party network. Healthcare and life-sciences requirements can also add a Business Associate Agreement on top of SOC 2. Certification alone does not settle those obligations. As AI features query data that has been delivered, procurement teams are also asking about model risk controls, AI vendor assessments, and audit trails for agent-initiated queries. These are requirements on the full data path.

How can SaaS products export customer data without custom pipelines?

An embedded delivery layer is the practical alternative to maintaining a connector project for every destination. A custom Redshift connector may cover one authentication implementation, mapping approach, and recovery path, but that work expands across BigQuery, Databricks, Fabric, and object storage variants. The infrastructure commitment grows with the supported surface. For most SaaS teams, destination-specific construction is therefore the wrong default. Embedding is useful only if the shared layer actually absorbs those operational differences.

The minimum capabilities are destination-aware authentication, explicit schema translation, incremental sync with row-level delivery tracking, and actionable error recovery. For enterprise use, the layer must also handle large numbers of rows in each sync cycle and more than one destination for each customer. Connector count alone is an insufficient selection criterion. A layer that reaches every platform but leaves recovery and schema handling to the product team has not removed the central engineering burden.

White-label embedding lets the customer configure a destination under the SaaS product’s brand, without a visible infrastructure vendor or a third-party setup flow. An embeddable React SDK and a clean API support that product experience. A fixed cost per active destination aligns more closely with the product’s growth model than charges per row or data volume, which increase as customers make greater use of their data.

How AI agents change the data delivery architecture

Batch delivery enables an agent to read SaaS data inside the customer’s warehouse environment. The agent’s query path then adds a real-time access pattern alongside the sync architecture. Query results stream to a reasoning layer, are used for the immediate task, and are discarded afterward. This differs from maintaining another delivered data copy. Residency commitments still depend on where that reasoning layer runs and where the results travel, as well as on whether they are retained.

The Model Context Protocol connects AI agents to data systems, but interoperability also expands the governance surface. When agents connect across enterprise systems, they bring risks of fragmented controls, shadow AI, and data exfiltration. Row-level security, minimum necessary permissions, and audit logging of every query still apply. However, agents query more frequently and less predictably than human analysts, so the delivery architecture must support a governed read path as well as a dependable batch path.

Genuine disagreements practitioners have about this architecture

Even with a single delivery abstraction, teams must decide who takes on each part of the work. When the provider changes its Snowflake schema, push-based delivery makes the provider responsible for downstream migration. Federated reads instead expose customer queries to breakage. Neither way of splitting the work is necessarily easier for both sides. The disagreement concerns the delivery contract and which team can realistically maintain it.

Destination diversity also remains a maintenance liability after embedding. Redshift, BigQuery, Databricks, and Fabric evolve authentication, storage formats, and SQL dialects independently. An abstraction relocates that work. Practitioners can reasonably disagree about whether its convenience justifies the added operational layer, particularly when query cost and freshness requirements differ across customers. Supporting every destination is an ongoing commitment.

The strongest alternative argument is to use object storage alone. File delivery can scale across destination platforms and cloud providers without the need to maintain direct warehouse connectors. Sophisticated enterprise data teams may prefer that division of responsibility. However, it leaves schema management and recovery with the customer, a burden SMB-to-mid-market teams typically cannot absorb. The unresolved choice is whether direct delivery provides enough customer value to justify the provider’s additional responsibility.

What to design for when building the delivery layer

The design should make it easy to add destinations without rewiring core delivery logic. To achieve that, keep OAuth, key-pair authentication, and cloud-native identity implementations behind a common interface. Treat schema translation as an explicit stage before final formatting. SQL dialects diverge on data types, timestamps, and semi-structured data. Without a translation step, data can arrive successfully and still have data quality errors that go unnoticed at the destination.

Build incremental delivery into that core from the start. Full-table refreshes can handle initial loads, but large enterprise datasets need row-level change tracking to keep syncing. Customers also need to see delivery status inside the product. Show when the last sync ran, how many rows arrived, and whether errors occurred, so routine delivery questions do not require a support request. That visibility makes the delivery contract usable by the customer as well as operable by the provider.

Plan compliance before the first enterprise procurement review, and treat destination-based pricing as part of the commercial architecture early in planning. Region controls, private-cloud capability, and encryption constrain how the system can be deployed. Volume-based charges can also discourage customers from syncing useful data. The durable mental model is a shared delivery core with destination-specific authentication and schema handling, bulk and incremental transfer paths, and a separately governed live read path.

Filed underData Sharing

More in Data Sharing