Skip to content

Snowflake implementation

We set up Snowflake with defined roles, cost-efficient warehouses and dbt models built on top, as we did for DPG Media’s churn analysis.

At DPG Media, we combined data from different tables using SQL and dbt for churn analysis

For DPG Media, we investigated churn among digital subscribers to two brands using Python, SQL and dbt. The technical blog post accompanying this case study explains the approach: Snowflake as the central repository for the tables, and dbt to transform the data consistently and repeatably.

Read the case study

How do we set up Snowflake without costs and access permissions getting out of hand?

Creating an account is quick. After that, warehouses, roles and separate loading scripts grow alongside each other, until no one knows who has ACCOUNTADMIN or which query is using up the credits. An implementation puts that foundation in place before reports start running on it.

Book a call

A Snowflake implementation defines roles, warehouses, loading routes and cost controls

Discuss your Snowflake plans

Layers and roles

Databases for raw, processed and reporting data, with team-specific roles arranged in a hierarchy. ACCOUNTADMIN remains with a small number of administrators.

Warehouses for each task

Separate warehouses for loading, transformation and reporting, each no larger than needed, with auto-suspend and auto-resume so they do not run while idle.

Loading and transformation

Load data from source systems via stages or Snowpipe and transform it in dbt models with tests. For DPG Media, we worked with SQL and dbt.

Costs and recovery

Resource monitors that send alerts or suspend warehouses when a credit limit is reached, and Time Travel to recover a deleted or modified table.

We configure Snowflake around the reports and models that will read from it

  1. Map sources and usage

    Identify the sources, the reports and models that will read from them, who needs access and which cloud region is right.

  2. Set up the account and build the first layer

    Configure roles, warehouses and databases, load data from the first sources and add dbt models with tests.

  3. Go live and hand over

    Put monitoring, access rights and loading schedules into production, with documentation so your team can take over management.

Is Snowflake the right choice for us, or would something lighter work?

Talk it through with us

A good fit if

Your data is spread across an ERP system, separate databases and spreadsheets. You want a single cloud-based SQL data warehouse for reporting and analysis, and your team works with SQL.

Not a good fit if

You have a few sources and a small database that works well. Or your organisation already uses another data platform; adding a second would mainly create more management work.

What determines the scope

The number of sources and how often they refresh, whether you need to migrate from an existing data warehouse, how many teams and roles are involved, and who will manage it after handover.

Won’t Snowflake become unpredictably expensive?

You pay for storage and for the time warehouses are running. Auto-suspend, small warehouses and resource monitors help you keep track of those costs. You can use a budget to monitor serverless functions.

Snowflake, a lakehouse or a data warehouse on your own server: which approach fits your data?

Snowflake

Choose this if you mainly want to report on and analyse structured data using SQL, without managing servers. Our advice: define roles and warehouses before the first team gets started.

A lakehouse

Choose this if notebooks, Spark and machine learning are central to working with large volumes of data, including unstructured data. Read about Databricks implementation.

A data warehouse on your own server

Choose this if data must remain on your own network or the volume is small. Read about building a data warehouse.

We choose the data platform for each organisation and build on Snowflake where it makes sense

Data Science Lab has worked with data and AI since 2016. For Athlon, we used Snowflake, Python and R Shiny for inventory management. We are a Databricks Partner and a Microsoft Partner; we are not a Snowflake partner.

Book an introductory meeting

An overview of your data sources and reports makes the first conversation about Snowflake more concrete

Stef Stoelwinder

Stef Stoelwinder

Business Development

Stef is your first point of contact. In our first conversation, we’ll discuss your data sources, reports and plans for Snowflake, and where to start.

Which source would you like to start with in Snowflake?

Tell us which sources and reports you have and whether you already have a Snowflake account. We’ll reply by email or arrange an initial conversation.

Enter a valid email address.

Let us know how we can help you.

Frequently asked questions

You set up the account so multiple teams can work in it securely and cost-effectively: a cloud region, databases and schemas for each layer, a role hierarchy, virtual warehouses for different tasks, loading routes for data sources, transformations in dbt and monitoring of credit consumption.

We do this as part of the data and AI platform, so reports and models read from the same data.

A Snowflake consultant designs the roles, warehouses and loading routes, and sets up transformations and cost monitoring. Snowflake recommends a hierarchy of custom roles and advises against combining account administration privileges and data access privileges in the same role.

ACCOUNTADMIN is the highest role and, according to Snowflake, should be assigned to only a limited number of users. There is no role that bypasses all privilege checks.

Snowflake runs on Amazon Web Services, Google Cloud and Microsoft Azure. You choose a region, such as Azure West Europe or Google Cloud europe-west4, both of which are in the Netherlands.

To run queries and load data, you need a virtual warehouse: computing power that you switch on separately. Its size determines the computing power available per cluster, and each increase in size doubles hourly credit consumption.

Snowflake bills for warehouses by the second, with a one-minute minimum each time one starts. Auto-suspend switches off an idle warehouse; auto-resume switches it back on for the next query.

A resource monitor tracks a credit quota and can issue warnings or suspend warehouses. Only ACCOUNTADMIN can create monitors, and you use a budget for serverless features.

Snowflake stores the tables, while dbt transforms them into models with tests. In our churn analysis, we describe this combination: models that select columns, perform calculations and produce a combined dataset.

Note that dbt creates tables in Snowflake as transient by default, without Fail-safe. You can choose a separate warehouse for each model. Read more about dbt implementation.

In batches using COPY INTO from a stage, on a warehouse you choose and pay for based on its running time. Or continuously with Snowpipe: it loads files as soon as they arrive in a stage, using Snowflake computing power and billed according to the amount of data loaded.

For sources such as an ERP or CRM system, you would usually put a loading tool or pipeline in front of it to supply the files or tables.

Time Travel lets you recover earlier data. The default retention period is one day; you can extend it for permanent objects, except in the Standard Edition. You can restore a deleted table with UNDROP. After that, the data moves to Fail-safe, where you can no longer recover it yourself.

A zero-copy clone lets you create a test environment that only incurs storage costs when you make changes to it.

No. According to our partners page, we are a Databricks Partner and a Microsoft Partner. We work with Snowflake where it suits an organisation or is already in place, as at Athlon.

If you’re weighing up platforms, we’ll compare the differences openly. Read about Databricks implementation too; the choice is yours.