Skip to main content

A CLI utility for Snowflake Snowpipe REST APIs

Project description

Snowpipe CLI

Snowpipe CLI provides access to the Snowpipe REST API via the CLI. The script uses the snowflake-ingest python package to call the REST endpoints.

In addition to calling the Snowpipe REST endpoints, you can use Snowpipe CLI to PUT local files in the stage used by the pipe and then ingest. A single invocation of the ingest command handles any combination of already staged files and local files that need to be staged.

There is also a JWT generator that you can use to simply generate a JWT for adhoc use.

Installation

You can install the latest version with pip

pip install snowpipe-cli

Note: If you are installing into a virtual environment, you may need to deactivate and activate again in order for the snowpipe command to work correctly from your shell.

Requirements

Snowpipe CLI requires Python 3.8+.

Configuration

Create a config file with the Snowflake credentials and account information. The config file must be YAML like below:

url: phdata.snowflakecomputing.com
account: PHDATA
user: USER
key_fp: SHA256:something_from_snowflake_user
key_file: /path/to/user/private/key.pem
key_password: optional_password

See also example config.

The account value must not include the region and cloud if present in the Snowflake URL. The url is the URL of the Snowflake instance minus the scheme. For example, if your URL is https://tacos.us-east-2.azure.snowflakecomputing.com, then the account will be tacos and the url will be tacos.us-east-2.azure.snowflakecomputing.com.

To generate a private key, see Key Pair Authentication & Key Pair Rotation. When verifying the fingerprint, record the value into the key_fp YAML key.

Usage

The commands below are examples of calling the snowpipe script from your shell after it has been installed with pip. If you have cloned the repository, you can also invoke the script from its parent directory with ./snowpipe.py, or you can run from the src directory with python -m snowpipe_cli.

Show the script help, including the subcommands:

snowpipe -h

Show subcommand help:

snowpipe <subcommand> -h

Run a subcommand:

snowpipe <subcommand> <config_file> <other_args>...

Enable debug logging:

snowpipe -d <subcommand> <config_file>

Contributing

Install the prerequisites:

pip install -r requirements.txt

Build the package in the dist directory

python3 -m build

Upload to pypi

twine upload --repository pypi dist/*

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

snowpipe-cli-0.0.2rc3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

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

snowpipe_cli-0.0.2rc3-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file snowpipe-cli-0.0.2rc3.tar.gz.

File metadata

  • Download URL: snowpipe-cli-0.0.2rc3.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.10

File hashes

Hashes for snowpipe-cli-0.0.2rc3.tar.gz
Algorithm Hash digest
SHA256 014ffc7d5d61e1bd2337ff5cf4a5c66468f228cc911b4164ae19c15c02121a27
MD5 bf58525fb39c19ea37b6cdc12c1c2f55
BLAKE2b-256 9533b004b0d482602dbc394189f9bcd9a72adc07136ce36648f1eb19f1f8789f

See more details on using hashes here.

File details

Details for the file snowpipe_cli-0.0.2rc3-py3-none-any.whl.

File metadata

  • Download URL: snowpipe_cli-0.0.2rc3-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.10

File hashes

Hashes for snowpipe_cli-0.0.2rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 a08bf8825e94de708a8b43b3367d523f2c1bb8f67ecf26d26f6b4763c846cb45
MD5 fd601949af1e45d50a1218aaa9837968
BLAKE2b-256 df0613a1fd5e2a92a479285387a1fdb19f25039a37b96101116865fcb1c6718c

See more details on using hashes here.

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