Snowflake consulting services for cost, performance and scale.

Reduce unexplained spend, tune slow workloads, improve account architecture or deliver a Snowflake migration. Recommendations are based on account usage, query profiles and the workloads your team actually runs.

Engagement
Focused specialist consulting
Starting point
Your existing platform and team

Is this the right fit?

A strong fit if

This consulting work is a strong fit when…

Costs climb and no one owns them

Warehouses sized for the worst day

Copied CTEs and views

Raw tables feed BI directly

Probably not a fit if

It is probably not the right fit when…

×

The platform and delivery constraint are still completely unknown.

×

The work needs permanent on-call coverage or an unrestricted backlog.

What changes

Snowflake consulting services

Focused Snowflake implementation and optimisation across the account lifecycle.

Snowflake cost optimisation

Attribute spend by warehouse and workload, then tune sizing, schedules and resource use around what the account actually runs.

Query performance tuning

Profile expensive queries and improve pruning, joins, clustering and model design where the evidence points.

Warehouse architecture and sizing

Separate workloads, choose practical warehouse sizes and document the operating decisions behind them.

Snowflake migrations

Plan and deliver schema, ingestion and transformation migrations with an explicit cutover and validation path.

dbt on Snowflake

Build tested transformation layers, incremental models, contracts and CI inside the existing account.

Roles, grants and secure access

Make access rules understandable, reviewable and maintainable as teams and data products change.

Technical example

Separate workloads before scaling warehouses.

Ingestion, transformation and BI have different workload shapes. Separate them, attribute their spend and use query evidence before changing warehouse sizes. Actual savings depend on account configuration and usage.

bi/dau.sql (before)

-- bi/dau.sql (before)
-- Illustrative anti-pattern: a dashboard scans raw event history.
-- One oversized warehouse handles every workload.
-- Run from a Looker Studio data source by an analyst.
select
  user_id,
  date(event_at) as day
from raw.events
where event_at > current_date - 30
group by 1, 2

models/marts/fct_dau.sql (after)

-- models/marts/fct_dau.sql (after)
{{ config(
  materialized='incremental',
  incremental_strategy='merge',
  unique_key=['user_id', 'day'],
  cluster_by=['user_id', 'day'],
  snowflake_warehouse='transforming_xs',
  on_schema_change='append_new_columns',
  tags=['product']
) }}

with events as (select * from {{ ref('stg_events') }})
select
  user_id::number as user_id,
  date(event_at)  as day,
  count(*)        as events
from events
{% if is_incremental() %}
  where event_at > (select max(day) from {{ this }})
{% endif %}
group by 1, 2
  • Logic moves into a tested mart, not a dashboard query
  • A right-sized warehouse per workload, not one XL for everything
  • Clustering keys on the join and time columns
  • A cost model in ACCOUNT_USAGE shows spend by warehouse and query

Reviewable delivery

Account changes tied to usage evidence.

A reviewable Snowflake engagement should connect each recommendation to warehouse history, query profiles or access requirements. Before sign-off, your team should have the implemented settings or code, validation results and a clear record of what changed, why and what still needs monitoring.

How we work

How changes are tested and handed over.

Start with a scoped account outcome or use recurring delivery for ongoing platform work.

01

Embedded delivery

Northgrain works inside your team on warehouse design, dbt models and cost tuning, with a clear communication rhythm and visible decisions.

02

Project delivery

A scoped Snowflake build with a clear start, end, and handoff: a migration, a cost cleanup, or an architecture review with a prioritized roadmap.

Questions

Answered before the first call.

Discuss your Snowflake account.

Share the workload, cost or performance problem and the change you need. We will reply with the most useful next step.