Can Snowflake users get Photon-like Spark performance with Quanton?

sivabalan1 pts0 comments

Snowflake (Snowpark Container Services) | Quanton Docs

Skip to main content<br>Create an account →

Create an account →

On this page

Welcome from Snowflake Summit<br>If you just scanned our QR code — welcome. This is where you get started running Quanton inside your Snowflake account. Everything below is a working guide, but if you want to learn more about Quanton in general, see the homepage.

What is Quanton?​

Quanton is a speed layer for Apache Spark, built by Onehouse. It replaces Spark's JVM execution engine with Velox — a vectorized, C++ runtime originally developed at Meta — so your existing Spark jobs run materially faster with no code changes . Same API, same DataFrame and SQL surface, same Hudi/Iceberg/Delta support. Just faster.

Running on Snowflake's infrastructure specifically, Quanton slots into Snowpark Container Services (SPCS) : you bring your Spark workloads, Snowflake supplies the compute, and Quanton accelerates execution natively in C++. You control everything from Snowsight SQL worksheets — no cluster to manage, no custom Spark distribution to maintain.

What this guide covers: pushing the Quanton image to your Snowflake repository, storing a signed entitlement as a secret, and submitting two test jobs — a quick in-memory gate check to confirm everything is wired up, then a real Hudi write to S3. If you have a Snowflake account with ACCOUNTADMIN access, you can be running your first job in under an hour.

This guide walks through running Quanton with Velox native execution on Snowflake Snowpark Container Services (SPCS). Everything an operator does is run from the Snowsight UI (SQL worksheets) — the only step that needs a command line is a one-time image push, which a user with Docker access performs once.

How it works​

SPCS is a bring-your-own-image runtime: Snowflake runs your container image directly, with no Spark fork to bridge. Quanton is delivered inside the onehouse-values.yaml you download — as a single base64 blob carried in the spark.quanton.onehouse.config Spark conf. You store that blob once as a Snowflake secret ; the job reads it from there and configures itself.

This guide covers a single-node job , which is the simplest way to confirm Quanton runs in your account.

SPCS compute pools are x86_64 only (CPU_X64_* / HIGHMEM_X64_*).

Prerequisites​

A Snowflake account with the ACCOUNTADMIN role and Snowsight UI access (to create compute pools, external access integrations, secrets, and image repositories)

A Quanton on Snowflake (SPCS) project and its onehouse-values.yaml — see Project Creation

An S3 bucket and AWS credentials with write access (for the Iceberg/Hudi writes in Step 6a / 6b)

One-time, command-line: a user with Docker and the Snowflake CLI (snow) to publish the image (Step 4). Everything else is Snowsight.

Setup​

Step 1: Create a project and download credentials​

In the Onehouse console, click on the project name, then click Create New Project .

In the dialog box, give the project an appropriate name, select Quanton on Snowflake (SPCS) under Cloud Provider , and hit Save .

Download the resulting onehouse-values.yaml. It contains three things you'll use below:

ValueLocation in the fileImage onehouseConfig.quantonSparkImage (must be …v0.18.0-al2023 or newer)Image pull token onehouseConfig.imagePullSecrets.accessTokenEntitlement blob onehouseConfig.additionalSparkConfParameters."spark.quanton.onehouse.config"<br>Step 2: Store your entitlement as a secret (Snowsight)​

The entitlement blob holds a signed token and an mTLS client identity, so store it once as a Snowflake secret — encrypted at rest, and never pasted into a job. Open a SQL worksheet (role ACCOUNTADMIN ) and run, pasting the spark.quanton.onehouse.config value from Step 1:

USE ROLE ACCOUNTADMIN;<br>CREATE DATABASE IF NOT EXISTS quanton_poc;<br>CREATE SCHEMA IF NOT EXISTS quanton_poc.spcs;

CREATE OR REPLACE SECRET quanton_poc.spcs.quanton_onehouse_config<br>TYPE = GENERIC_STRING<br>SECRET_STRING = '';

That's the only time you handle the blob. The job reads it from this secret and derives everything else (cloud, environment) on its own — you never set those by hand.

Step 3: Create Snowflake resources (Snowsight)​

USE ROLE ACCOUNTADMIN;<br>USE SCHEMA quanton_poc.spcs;

-- Image repository — the push target for Step 4.<br>CREATE IMAGE REPOSITORY IF NOT EXISTS quanton_images;<br>SHOW IMAGE REPOSITORIES; -- copy repository_url for Step 4

-- Egress: your S3 bucket AND the Onehouse control plane (the driver validates the<br>-- entitlement over mTLS against the control plane — this host is required).<br>CREATE OR REPLACE NETWORK RULE quanton_egress_rule<br>TYPE = HOST_PORT MODE = EGRESS<br>VALUE_LIST = (<br>'gwc.onehouse.ai:443',<br>'s3..amazonaws.com',<br>'.s3..amazonaws.com',<br>'sts.amazonaws.com'<br>);

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION quanton_eai<br>ALLOWED_NETWORK_RULES = (quanton_egress_rule) ENABLED = TRUE;

-- Single node is enough for this guide. HIGHMEM gives Velox room for off-heap.<br>CREATE COMPUTE POOL IF NOT EXISTS...

snowflake quanton create spark onehouse image

Related Articles