Skip to main content

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 git+https://github.com/meltano/meltano-state-backend-snowflake.git meltano

With pipx

pipx install meltano
pipx inject meltano git+https://github.com/meltano/meltano-state-backend-snowflake.git

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 set meltano state_backend.uri 'snowflake://my_user@my_account/my_database'
meltano config set meltano 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

Using the GitHub CLI:

gh release create v<new-version>

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.2.0.tar.gz (135.3 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.2.0.tar.gz.

File metadata

File hashes

Hashes for meltano_state_backend_snowflake-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c53e47b667783ed35ebfb6d53bba337a7e932bc04c8cf7125b60ec0bd47c231e
MD5 5c838e6b55399cee7f3e591e88fc3ec9
BLAKE2b-256 e2afb0d6957dd3309ebccaf74cfe0c09b964e27d6cfd773f8d302bdf469b65d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for meltano_state_backend_snowflake-0.2.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.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for meltano_state_backend_snowflake-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7894fb09a6393c29bdac7cc1f274a3d73c454857acd31e3608bf56eaad18fc26
MD5 696c573bdfa816ad220e50a3047b6056
BLAKE2b-256 e130be750c215cc179ad0315acb6f663cf4caa40fca36b81ae0bada3c5fe244f

See more details on using hashes here.

Provenance

The following attestation bundles were made for meltano_state_backend_snowflake-0.2.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