In private development

Planned, with no date. Nothing on this page is released; the Snowflake connector is built and tested only against simulated Snowflake services and has not run on a real account.

Snowflake

Deploy target
Planned

Emolysis for Snowflake.

Snowflake comes after Databricks. On Snowflake, Emolysis writes pipelines for streams, tasks and dynamic tables, follows Snowflake's identifier rules and tests every change on your machine first.

How it works

Planned

  1. Connect

    Key pair or programmatic access token

  2. Sample

    The Snowflake connector, or a Parquet unload

  3. Prove

    Golden tests on DuckDB

  4. Deploy

    Tables, streams, tasks and dynamic tables

Overview

What it does on Snowflake.

Snowflake comes after Databricks, and there is no date yet. The profile below is drafted; the connector is built and tested only against simulated Snowflake services; it has not run on a real account.

Connecting an account loads a Snowflake profile: Snowflake SQL and Snowpark, native and Iceberg tables, MERGE fed by streams, tasks and dynamic tables, and the traps that catch people, such as unquoted identifiers folding to uppercase.

Templates for the ten pipeline shapes are written for Snowflake and tested on DuckDB on your machine, then translated into Snowflake SQL at deploy time. A green run deploys as SQL that creates or alters what the pipeline needs, run under your role on your warehouse.

If you run Snowflake, the local parts work the same way: golden tests on DuckDB do not need a platform. Snowflake support is announced on the news page, together with the shapes whose templates pass their tests there.

Platform profile

What the profile captures.

Drafted, not yet checked on a real account: what Emolysis loads when you connect a Snowflake account, so the agent writes code the way Snowflake expects.

Snowflake · platform profilePlanned
Dialects
Snowflake SQL and Snowpark
Table format
Native Snowflake tables or Iceberg tables
Merge idiom
MERGE fed by streams, and dynamic tables
Incremental tools
Streams and tasks, and dynamic tables
Deployment unit
SQL scripts applied with the Snowflake CLI, or Terraform if your team uses it
Compute
Virtual warehouses and Snowpark Container Services
Sign-in
Key-pair authentication or a programmatic access token
Known traps
Unquoted identifiers fold to uppercase, and warehouse auto-suspend affects schedules and cost
Sampling
The Snowflake connector, or COPY INTO a stage as Parquet

Connect

Connecting an account.

How connecting Snowflake works, step by step. The connector has run only against simulated Snowflake services.

  1. Choose Snowflake

    Sign in to Emolysis, then choose Snowflake in the app. From a terminal, the command is emo connect snowflake.

  2. Authorize

    Authorize with a key pair or a programmatic access token. The credentials are kept in your machine's credential store and never sent to Emolysis.

  3. Pick where deploys run

    Emolysis lists the warehouses, databases and schemas your role can reach, and you pick where deploys run.

  4. Sample on request

    When you ask for a sample, Emolysis reads a small slice of a table with the Snowflake connector, or as a Parquet unload from a stage, into DuckDB on your machine. That query runs on your platform; the tests that follow do not.

Command · not released yetPlanned
emo connect snowflake

Deploy

Deploys as Snowflake SQL.

A green run deploys as SQL that creates or alters the tables, streams, tasks and dynamic tables the pipeline needs, run under your role on your warehouse.

  1. Native objects

    Streams and tasks for change-driven work, dynamic tables with a target lag for derived tables, and MERGE where the shape needs it.

  2. Identifier rules built in

    Unquoted identifiers fold to uppercase in Snowflake. The profile records it, so naming rules and lint account for case.

  3. Applied your way

    SQL scripts applied with the Snowflake CLI, or Terraform if your team already manages Snowflake that way.

  4. Cost in the review

    Warehouse auto-suspend affects schedules and cost. Each template carries a cost note, and emo check adds an estimate.

  5. Tagged for Snowflake

    Every generated file carries its platform and profile version, so it is never deployed to another platform without an explicit translation step.

  6. Your role, your warehouse

    Deployed objects run under your role on your warehouse, with your account's permissions and no more.

Known traps

Traps the profile knows.

Four mistakes that are easy to make on Snowflake, and what the Snowflake profile is drafted to record about them.

  1. Identifier case

    Unquoted identifiers fold to uppercase, while quoted ones keep their case. Code that mixes the two can create columns that differ only by case. Naming rules and lint account for it.

  2. Warehouse auto-suspend

    Auto-suspend affects schedules and cost. Each template carries a cost note that says what drives its cost on Snowflake, and emo check adds an estimate.

  3. Time Travel is not business history

    Time Travel retention is separate from your business retention. The Snapshot template keeps dated snapshots instead of relying on it.

  4. Outbound calls

    Calling an application's API from a task needs your account's external network access to be set up first. The Reverse ETL platform notes call it out.

Questions

Snowflake questions.

Answers about Snowflake and how it fits. More in the FAQ.

Is there a date for Snowflake support?

There is no date yet. Snowflake comes after Databricks. Its platform profile is drafted: the dialects, table formats, merge idioms, incremental tools, deployment units, sign-in methods and known traps the agent needs to know. The connector is built and tested only against simulated Snowflake services; it has not run on a real account. Support is announced on the news page, with the shapes whose templates pass their tests on Snowflake.

Can I use Emolysis with Snowflake today?

Not yet: nothing is released, and early access is by invitation. Connecting Snowflake, sampling from it and deploying to it are built and tested against simulated Snowflake services, not yet on a real account. Golden tests on DuckDB need no platform.

Why does identifier case matter on Snowflake?

Snowflake folds unquoted identifiers to uppercase, while quoted ones keep their case. Code that mixes the two can create columns that differ only by case, or fail to find a table it just created. The Snowflake profile records this trap, so the agent and the lint rules avoid it.

Does Emolysis use dynamic tables or streams and tasks?

Both, depending on the shape. A CDC merge can be MERGE fed by a stream, or a dynamic table. An Aggregation / gold table can be a dynamic table with a target lag, or a table refreshed by a task. The template for each shape records which it uses on Snowflake.

Can I move a pipeline from Databricks to Snowflake?

Not by accident. Every file Emolysis generates is tagged with its platform and profile version, so a Databricks pipeline cannot be deployed to Snowflake by mistake. Moving one is an explicit step: the SQL is translated into the target platform's dialect, that platform's template for the same shape is filled, and the golden tests run again on the target.

Nothing is released yet

Tell us what you run.

Snowflake comes after Databricks, with no date yet. Early access starts with Databricks teams. If you run Snowflake, tell us what you would need first.