Integrating Snowflake with Third-party Data Sources
Instruction: Explain how you would approach integrating Snowflake with various third-party data sources.
Updated
Example answer
Define the integration contract before choosing a loader: source objects, stable IDs, change/deletion semantics, timestamps, expected volume, freshness and replay limits. For a third-party API, check pagination, rate limits, authentication, incremental cursors and how it reports corrected or deleted records.
An extractor or supported connector must retrieve the source data. Snowpipe loads arriving staged files; it is not a universal API polling or change-data-capture service. Use bulk COPY INTO for suitable batches, Snowpipe for continuous file arrivals, or a supported streaming path when row-level freshness requires it. Distinguish each stage's latency from end-to-end availability.
For a hypothetical accounting feed, retain an authorized raw delivery with batch/cursor metadata, validate it, and apply curated changes by the documented record identity and version. A retried delivery must not duplicate revenue, while a legitimate correction or reversal must not be mistaken for a retry. Design deterministic replay, deletion handling and a controlled backfill process.
Use scoped integrations and secret management, protect staging locations and classify sensitive fields. Reconcile source counts and monetary totals by an agreed reporting boundary, allowing for known timing differences; counts alone can miss substitutions. Monitor extraction failures, stale cursors, load errors, backlog, freshness and rejected records.
Test pagination boundaries, duplicates, partial failures, schema changes and outage recovery before relying on the pipeline. Report actual observed outcomes, without inventing past financial integrations or guaranteed real-time behavior.
Sources
Snowpipe file-loading model; bulk loading; Snowpipe Streaming.