Embucket provides a wire-compatible Snowflake API, allowing you to run dbt models locally without connecting to a cloud Snowflake instance. This accelerates development workflows and reduces costs.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/embucket/embucket/llms.txt
Use this file to discover all available pages before exploring further.
Why Use Embucket with dbt?
Faster Development
Run and test dbt models locally without network latency or cloud compute costs.
Cost Savings
Develop and test without consuming Snowflake credits during the development phase.
Offline Development
Work on your dbt models even without internet connectivity.
Consistent Environment
Ensure reproducible development environments across your team.
Prerequisites
- dbt Core or dbt Cloud CLI installed
- Embucket running locally or on your network
- Existing dbt project with Snowflake models
Profile Configuration
Basic Setup
Add an Embucket target to your~/.dbt/profiles.yml:
Use
type: snowflake - Embucket is compatible with the dbt-snowflake adapter.Multiple Environments
Configure both Embucket (local) and Snowflake (production) targets:Running dbt Models
Standard Workflow
Run your dbt models against Embucket just like you would with Snowflake:Development Workflow Example
Typical development cycle with Embucket:Supported dbt Features
Embucket supports most dbt-core functionality:Models
Models
- SQL models (SELECT statements)
- Incremental models
- Ephemeral models
- Table and view materializations
- Custom materializations
Tests
Tests
- Schema tests (unique, not_null, accepted_values, relationships)
- Data tests (custom SQL tests)
- Test severity levels
Macros
Macros
- Jinja templating
- Custom macros
- dbt built-in macros
- ref() and source() functions
Seeds
Seeds
- CSV seed files
- Seed configuration
- Data type inference
Snapshots
Snapshots
- Timestamp-based snapshots
- Check-based snapshots
- Snapshot configurations
Development Workflow Benefits
Rapid Iteration
Develop and test models quickly without waiting for cloud resources:Cost-Efficient Testing
Test complex transformations without incurring cloud compute costs:Collaborative Development
Each developer can run their own Embucket instance:Working with External Data
Embucket can connect to external Iceberg tables and S3 Table Buckets:Configure External Catalog
Createconfig/metastore.yaml:
Start Embucket with Configuration
Reference External Tables in dbt
Create sources in your dbt project:Limitations
While Embucket provides excellent Snowflake compatibility, some differences exist:Feature Compatibility Matrix
| Feature | Embucket Support | Notes |
|---|---|---|
| SELECT queries | Full | Complete Snowflake SQL dialect |
| JOINs | Full | All join types supported |
| Window functions | Full | RANK, ROW_NUMBER, LAG, LEAD, etc. |
| CTEs | Full | Common table expressions |
| CREATE TABLE | Full | Standard table creation |
| CREATE VIEW | Full | View definitions |
| Date/time functions | Full | dateadd, datediff, date_trunc, etc. |
| Aggregate functions | Full | SUM, AVG, COUNT, etc. |
| String functions | Full | CONCAT, SUBSTR, REGEXP, etc. |
| MERGE INTO | Full | Upsert operations |
| Transactions | Partial | Basic support |
| Query tags | Accepted | Tags stored but not used |
Troubleshooting
dbt cannot connect to Embucket
dbt cannot connect to Embucket
Solution:
- Verify Embucket is running:
curl http://localhost:3000/session/v1/login-request - Check profile configuration in
~/.dbt/profiles.yml - Test connection:
dbt debug - Ensure credentials match (default:
embucket/embucket)
Model runs successfully but data is wrong
Model runs successfully but data is wrong
Solution:
- Check if external catalog is configured correctly
- Verify table permissions in metastore config
- Run with verbose logging:
dbt run --debug - Compare query output between Embucket and Snowflake
Incremental models not working as expected
Incremental models not working as expected
Solution:
- Embucket fully supports incremental models
- Ensure unique key is properly defined
- Check that the merge strategy matches your use case
- Verify the incremental logic in your model
Compilation error on Snowflake-specific syntax
Compilation error on Snowflake-specific syntax
Solution:
- Check if the feature is in Embucket’s limitations list above
- Use dbt macros to adapt syntax:
{% if target.name == 'local' %} - File an issue on Embucket’s GitHub for missing features
Best Practices
Next Steps
Querying Guide
Learn about SQL syntax and query patterns
External Catalogs
Connect to data lakes and Iceberg tables
Snowflake CLI
Interact with Embucket via command line
Deployment
Deploy Embucket for your team