Skip to main content

dbt-frostlake

A dbt adapter for Frostlake, so a dbt project runs locally with zero warehouse cost.

It is a standalone adapter: built directly on dbt-adapters, with its own macros and dialect rules. No other adapter is installed or imported. The transport is frostlake-connector over frostlake, which speak Frostlake's HTTP protocol.

Install

pip install dbt-frostlake

That brings dbt-core, frostlake-connector and frostlake with it. No JVM is needed on the client.

Profile

my_project:
  target: dev
  outputs:
    dev:
      type: frostlake
      host: localhost      # Frostlake HTTP server
      port: 18082
      database: demo_db
      schema: public
      threads: 1

account, user and password are optional: they are accepted so a profile carried over from another warehouse still loads, and ignored — the server has no login.

Start a server for it

The engine is published to Maven Central, so no build is required:

mvn dependency:get -Dartifact=dev.frostlake:frostlake-db:0.0.7
java -cp "<frostlake-db jar>:<its runtime deps>" dev.frostlake.http.DatabaseHttpServer 18082

Requires JDK 17 and a Frostlake engine 0.0.7 or newer. Create the target database once it is up:

CREATE DATABASE IF NOT EXISTS demo_db;

Smoke-tested surface

Against a booted DatabaseHttpServer: dbt debug, dbt seed (typed CSV loads incl. DECIMAL), dbt run (view + table materializations), dbt test (unique, not_null), dbt build, dbt snapshot (check strategy, repeat runs), incremental models (first and subsequent runs), and dbt docs generate (information_schema catalog) — all green.

Dialect notes

Frostlake resolves unquoted identifiers uppercase, so the adapter turns dbt's default quoting off, and seed columns are unquoted unless a project sets quote_columns.

Two engine limitations are worked around in the macros: ALTER VIEW … RENAME TO rejects a qualified target (tables accept one), and CASCADE is accepted on DROP SCHEMA but not on DROP TABLE/DROP VIEW.

A runnable example project lives in frostlake-dbt-demo, a sibling repository: two seeds, two staging views, a table model and five data tests.

Tests

export JAVA_HOME=/path/to/jdk17
export FROSTLAKE_CLASSPATH="/path/to/frostlake-db.jar:<engine deps>"
python3 test/test_adapter.py

Covers the plugin wiring dbt reads on load (adapter and credentials classes, the empty plugin dependency list, the shipped include path), the credential surface and its unique_field connection key, and open() against a live server — handle usability, database/schema context, query tags, and reuse of an already-open connection. The plugin and credential tests need no server; the connection tests skip without FROSTLAKE_CLASSPATH.

Still to do

Grind dbt's standard acceptance suite (dbt-tests-adapter) green; every failure is either a facade gap or a Frostlake SQL gap worth fixing.

Metadata

Release files for dbt-frostlake 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dbt-frostlake 0.2.1
File Size Uploaded
dbt_frostlake-0.2.1.tar.gz 20.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dbt-frostlake 0.2.1
File Interpreter ABI Platform
dbt_frostlake-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 35.4 kB

Release files / dbt_frostlake-0.2.1.tar.gz

Download URL dbt_frostlake-0.2.1.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dcbbedcea8de4473282e6a74124beecd9292edb7b9fa949d68e6a19aff31f2cb
BLAKE2b-256 checksum
How to use checksums
a9de9453aac1db0e5b6aeb023811f68323b8d11fecb038c572d1be765bb4e109
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / dbt_frostlake-0.2.1-py3-none-any.whl

Download URL dbt_frostlake-0.2.1-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b04944c51c09f051d93c63db0ddff9d08d6f5725856ea796ce5be6a025f2c04
BLAKE2b-256 checksum
How to use checksums
7c4504acdb902c0548e66de8b719580545614fd61c683a363eaa1163a8c7d996
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page