There is no true offline Snowflake
Snowflake is a hosted service; nothing runs the real engine locally. What exists falls into two buckets: emulators that accept Snowflake SQL/drivers but do not implement governance, and a free trial account that is the genuine article. Because the whole point of this demo is governance (row access policies, masking, audit), the emulators can carry the SQL while a simulation layer or a trial account carries the behaviour.
poc/snowflake_sim.py) for governance behaviour
and use an emulator only for SQL/DDL portability and CI. When the board approves, validate the same
sql/01…05 unchanged on a free 30-day Snowflake trial.Offline emulation options
| Option | What it is | Governance? | Best for |
|---|---|---|---|
| fakesnow Apache-2.0 | Patches the Snowflake Python connector (or runs an HTTP server) and executes against DuckDB, translating SQL with sqlglot. Persists to disk. | No row access / masking | Running our DDL/scripts locally; SQL portability; CI |
| LocalStack for Snowflake | Managed, Docker-based Snowflake-compatible endpoint; works with the Snowflake CLI (snow). Free Hobby tier for non-commercial use. |
Partial | Driver/CLI compatibility, local dev |
| snowflake-emulator MIT · Rust | DataFusion-backed engine speaking the Snowflake SQL API v2; Docker image. | No (GRANT/REVOKE are no-ops) | Driver/SQL compatibility testing |
| DuckDB MIT | The analytical engine underneath fakesnow; excellent local SQL. | No | Local analytics on the CORE/MARTS layer |
| dbt-duckdb | Runs the transformation layer (RAW → CORE → MARTS) offline; swap the adapter to dbt-snowflake later. |
No | Portable modeling / tests |
| Snowpark local testing framework official | Emulates Snowpark Python DataFrames locally without a connection. | No | Unit-testing Snowpark DataFrame code |
Free trial / sandbox account
| Option | What you get | Limits |
|---|---|---|
| Snowflake 30-day trial | $400 in free credits; Enterprise Edition features incl. row access policies and dynamic data masking; no credit card required; AWS/Azure/GCP + region choice; sample data preloaded. | 30 days or until credits run out; external network access, hybrid tables, Openflow limited; AI features off without a card; account suspended at end. |
| AWS Marketplace trial | Equivalent $400 / 30-day Snowflake offer through AWS Marketplace. | Same as above; some AWS infra costs may apply. |
Our footprint is tiny (30 contracts, X-Small warehouses, 60-second auto-suspend), so $400 of credits is far more than the demo needs. The trial is the only faithful way to validate row access policies and masking end-to-end.
How we'll simulate now, validate later
Now — govern in simulation
poc/snowflake_sim.pyemulates role context, the row access policy, masking, and query history offline. Demonstrated in the interactive demo's Snowflake console.Now — prove SQL portability
Run
sql/01…05through fakesnow (or LocalStack) to catch syntax/portability issues in CI, and optionally model MARTS with dbt-duckdb.When approved — validate for real
Stand up the 30-day trial, run the same DDL unchanged, and capture real
QUERY_HISTORY/POLICY_REFERENCESevidence.