Meltano State Backend for Snowflake
Project description
meltano-state-backend-snowflake
This is a Meltano extension that provides a Snowflake state backend.
Installation
This package needs to be installed in the same Python environment as Meltano.
From GitHub
With uv
uv tool install --with meltano-state-backend-snowflake meltano
With pipx
pipx install meltano
pipx inject meltano 'meltano-state-backend-snowflake
Configuration
To store state in Snowflake, set the state_backend.uri setting to snowflake://<user>:<password>@<account>/<database>/<schema>.
State will be stored in two tables that Meltano will create automatically:
meltano_state- Stores the actual state datameltano_state_locks- Manages concurrency locks
To authenticate to Snowflake, you'll need to provide:
state_backend:
uri: snowflake://my_user:my_password@my_account/my_database/my_schema
snowflake:
warehouse: my_warehouse # Required: The compute warehouse to use
role: my_role # Optional: The role to use for the connection
Alternatively, you can provide credentials via individual settings:
state_backend:
uri: snowflake://my_account/my_database/my_schema
snowflake:
account: my_account
user: my_user
password: my_password
warehouse: my_warehouse
database: my_database
schema: my_schema # Defaults to PUBLIC if not specified
role: my_role # Optional
Connection Parameters
- account: Your Snowflake account identifier (e.g.,
myorg-account123) - user: The username for authentication
- password: The password for authentication
- warehouse: The compute warehouse to use (required)
- database: The database where state will be stored
- schema: The schema where state tables will be created (defaults to PUBLIC)
- role: Optional role to use for the connection
Security Considerations
When storing credentials:
- Use environment variables for sensitive values in production
- Consider using Snowflake key-pair authentication (future enhancement)
- Ensure the user has CREATE TABLE, INSERT, UPDATE, DELETE, and SELECT privileges
Example using environment variables:
export MELTANO_STATE_BACKEND_SNOWFLAKE_PASSWORD='my_secure_password'
meltano config meltano set state_backend.uri 'snowflake://my_user@my_account/my_database'
meltano config meltano set state_backend.snowflake.warehouse 'my_warehouse'
Development
Setup
uv sync
Run tests
Run all tests, type checks, linting, and coverage:
uvx -with tox-uv tox run-parallel
Bump the version
uv version --bump <type>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meltano_state_backend_snowflake-0.1.0.tar.gz.
File metadata
- Download URL: meltano_state_backend_snowflake-0.1.0.tar.gz
- Upload date:
- Size: 180.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a40a5b96af552a5fd647d4ce2b466e108d287d6bbe7f0e50fddfc52a2ac8070
|
|
| MD5 |
839a415d3cea048cf994edfb26b41652
|
|
| BLAKE2b-256 |
59af8075b0c3a868d00b3264c3dc82ced3a56e370af487502bdc90f53da631b6
|
Provenance
The following attestation bundles were made for meltano_state_backend_snowflake-0.1.0.tar.gz:
Publisher:
release.yaml on meltano/meltano-state-backend-snowflake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meltano_state_backend_snowflake-0.1.0.tar.gz -
Subject digest:
6a40a5b96af552a5fd647d4ce2b466e108d287d6bbe7f0e50fddfc52a2ac8070 - Sigstore transparency entry: 275889550
- Sigstore integration time:
-
Permalink:
meltano/meltano-state-backend-snowflake@5c984ff73fe5856c307f9dd5779c4067b691002f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/meltano
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@5c984ff73fe5856c307f9dd5779c4067b691002f -
Trigger Event:
push
-
Statement type:
File details
Details for the file meltano_state_backend_snowflake-0.1.0-py3-none-any.whl.
File metadata
- Download URL: meltano_state_backend_snowflake-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd21887f57e6338939192a32b12a899d3cb8a3293903fce1a476dcf3b3865ee6
|
|
| MD5 |
deb53d27b597e6a8e2fdf709d17887ac
|
|
| BLAKE2b-256 |
de564d8a9829745e93138da7430e8ba941d37f67a3cc6cef72630fcf110b3770
|
Provenance
The following attestation bundles were made for meltano_state_backend_snowflake-0.1.0-py3-none-any.whl:
Publisher:
release.yaml on meltano/meltano-state-backend-snowflake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meltano_state_backend_snowflake-0.1.0-py3-none-any.whl -
Subject digest:
fd21887f57e6338939192a32b12a899d3cb8a3293903fce1a476dcf3b3865ee6 - Sigstore transparency entry: 275889559
- Sigstore integration time:
-
Permalink:
meltano/meltano-state-backend-snowflake@5c984ff73fe5856c307f9dd5779c4067b691002f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/meltano
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@5c984ff73fe5856c307f9dd5779c4067b691002f -
Trigger Event:
push
-
Statement type: