Member-only story
Building a Fully Snowflake-Native ELT Pipeline with Stripe and Python
Using Snowflake Notebooks, Dynamic Tables, and Slack notifications — no external ETL tools required.
I recently worked on a project to integrate Stripe with Snowflake for downstream reporting. Although our primary tech stack is built on Azure and typically uses Data Factory for data movement, I wanted to explore using Snowflake’s External Access Integration to connect directly to Stripe.
Instead of relying on external ETL tools, I used Snowflake Notebooks to build a fully Snowflake-native pipeline. I followed the ELT (Extract, Load, Transform) pattern and implemented a Medallion Architecture — loading raw data into Bronze, transforming it into a structured Silver layer, and aggregating insights in the Gold layer. This data is primarily used by business teams for reporting in Power BI.
Since we’ve been using Stripe since 2021, the business requested historical data from that point onward. I first extracted historical data from 2021 to today into the Bronze table (in raw JSON format), then transformed and loaded it into the Silver table (Dynamic), and finally created two curated Gold tables (Dynamic). For this blog, I demonstrate loading the last 180 days only.