Skip to main content

Meltano State Backend for Snowflake

Project description

meltano-state-backend-snowflake

PyPI version Python versions

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 data
  • meltano_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

meltano_state_backend_snowflake-0.1.0.tar.gz (180.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file meltano_state_backend_snowflake-0.1.0.tar.gz.

File metadata

File hashes

Hashes for meltano_state_backend_snowflake-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6a40a5b96af552a5fd647d4ce2b466e108d287d6bbe7f0e50fddfc52a2ac8070
MD5 839a415d3cea048cf994edfb26b41652
BLAKE2b-256 59af8075b0c3a868d00b3264c3dc82ced3a56e370af487502bdc90f53da631b6

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meltano_state_backend_snowflake-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for meltano_state_backend_snowflake-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd21887f57e6338939192a32b12a899d3cb8a3293903fce1a476dcf3b3865ee6
MD5 deb53d27b597e6a8e2fdf709d17887ac
BLAKE2b-256 de564d8a9829745e93138da7430e8ba941d37f67a3cc6cef72630fcf110b3770

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page