Skip to main content

Data exchange agent for migrations and validation

Project description

Snowflake Data Exchange Agent

Python

The Data Exchange Agent is the Worker component of the Cloud Data Migration solution. It connects to source databases (SQL Server, Amazon Redshift), extracts data, and uploads it to Snowflake stages for ingestion by the Data Migration Orchestrator (snowflake-data-migration-orchestrator).

Installation

pip install snowflake-data-exchange-agent

Python Version: 3.11 or higher

Usage

# Start with a configuration file
data-exchange-agent -c <configuration-file-path>

# Start with default configuration.toml in current directory
data-exchange-agent

# Custom port and parallelism
data-exchange-agent --max-parallel-tasks 8 --port 8080

# Debug mode
data-exchange-agent --debug --port 5001

Worker Configuration

The Worker configuration file uses TOML format.

Section Property Type Description
Top Level selected_task_source String Currently should always be set to "snowflake_stored_procedure".
[application] max_parallel_tasks Integer Maximum number of tasks the worker will process in parallel (using threads).
[application] task_fetch_interval Integer Interval (in seconds) between attempts to fetch new tasks from the Orchestrator.
[connections.source.*] Object Configuration for source system connections. The Worker typically requires an ODBC driver. See examples below.
[connections.target.snowflake_connection_name] connection_name String The name of the connection entry in the ~/.snowflake/config.toml file to use.

Example: SQL Server (Standard Authentication)

[connections.source.sqlserver]
username = "username"
password = "password"
database = "database_name"
host = "127.0.0.1"
port = 1433

Example: Amazon Redshift (IAM Authentication)

[connections.source.redshift]
username = "demo-user"
database = "demo_db"
auth_method = "iam-provisioned-cluster"
cluster_id = "my-aws-cluster"
region = "us-west-2"
access_key_id = "your-access-key-id"
secret_access_key = "your-secret-access-key"

Example: Amazon Redshift (Standard Authentication)

[connections.source.redshift]
username = "myuser"
password = "mypassword"
database = "mydatabase"
host = "my-cluster.abcdef123456.us-west-2.redshift.amazonaws.com"
port = 5439
auth_method = "standard"

Note: Only one source connection is needed. The Snowflake target connection should point to a valid entry in your ~/.snowflake/config.toml.

ODBC Driver Auto-Detection

The agent automatically detects the best available ODBC driver for SQL Server connections. If no odbc_driver is specified in the configuration, it will prefer the newest available driver (ODBC Driver 18 > 17 > 13 > 11). If a specific driver is requested but not found, it falls back to the best available driver with a warning.

To manually specify a driver:

[connections.source.sqlserver]
odbc_driver = "ODBC Driver 17 for SQL Server"

ODBC Encryption (SQL Server)

The encrypt and trust_server_certificate parameters are optional. By default, they are omitted from the connection string, allowing the ODBC driver to use its default behavior:

  • ODBC Driver 17 and below: Encryption is disabled by default.
  • ODBC Driver 18 and above: Encryption is mandatory by default.
[connections.source.sqlserver]
username = "sa"
password = "mypassword"
database = "mydb"
host = "my-server.example.com"
port = 1433
encrypt = true
trust_server_certificate = false

For development environments or SQL Servers without encryption support, either omit the encryption parameters or set encrypt = false.

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

snowflake_data_exchange_agent-1.4.0.tar.gz (151.5 kB view details)

Uploaded Source

Built Distribution

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

snowflake_data_exchange_agent-1.4.0-py3-none-any.whl (144.6 kB view details)

Uploaded Python 3

File details

Details for the file snowflake_data_exchange_agent-1.4.0.tar.gz.

File metadata

File hashes

Hashes for snowflake_data_exchange_agent-1.4.0.tar.gz
Algorithm Hash digest
SHA256 849d4b9e283dca50cf7f5dfe0226681116639d0f352e52959b05c01dd8063002
MD5 773427d1c20da57a7a79db1d3a4e8737
BLAKE2b-256 f19db2da538ebf504dcbc66380be42133092e89f4b6a68ffa018722590a7a04b

See more details on using hashes here.

File details

Details for the file snowflake_data_exchange_agent-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for snowflake_data_exchange_agent-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8fc8963eb88e37666e0d9b29a1dcb74896d71f8f0bfd5a69ad0ce5627ea9a61a
MD5 bfc1a20c57a9d7acfc58b583a72d3354
BLAKE2b-256 46955cb4044f9a800968748b4e84e78fe4c96c2b899cdcd8316dee373de65cdd

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