Skip to main content

Snowflake Streaming Ingest Python SDK

A high-performance Python SDK for streaming data ingestion into Snowflake, built with Rust for optimal performance and reliability.

Overview

The Snowflake Streaming Ingest Python SDK provides a Python interface for real-time data streaming into Snowflake tables. It leverages a Rust core for high performance while providing a familiar Python API for easy integration.

Supported Platforms

Operating Systems

  • Linux: x86_64, aarch64
  • macOS: arm64 (Apple Silicon)
  • Windows: x86_64

Python Versions

  • Python 3.9 (minimum required)
  • Python 3.10
  • Python 3.11
  • Python 3.12
  • Python 3.13

Minimum System Requirements

Linux

  • glibc: 2.26 or higher
  • Architecture: x86_64, aarch64

macOS

  • Version: macOS 11.0 (Big Sur) or higher
  • Architecture: Apple Silicon (arm64)

Windows

  • Version: Windows 10 or higher
  • Architecture: x86_64

Installation

From PyPI (Recommended)

pip install snowpipe-streaming

Quick Start

from snowflake.ingest.streaming import StreamingIngestClient

# Create a client
client = StreamingIngestClient(
    client_name="my_client",
    db_name="my_database",
    schema_name="my_schema",
    pipe_name="my_pipe",
    properties={
        "account": "your_account",
        "user": "your_user",
        "private_key": "your_private_key",
        "url": "https://your_account.snowflakecomputing.com"
    }
)

# Open a channel
channel, status = client.open_channel("my_channel")

# Insert data
row_data = {
    "id": 1,
    "name": "John Doe",
    "timestamp": "2024-01-01T00:00:00Z"
}
channel.append_row(row_data)

# Close resources
channel.close()
client.close()

Features

  • High Performance: Rust-based core for optimal throughput and low latency
  • Memory Efficient: Minimal memory footprint with efficient data handling
  • Type Safety: Strong typing support with Python type hints
  • Automatic Retries: Built-in retry logic for transient failures
  • Backpressure Handling: Intelligent backpressure management
  • Comprehensive Logging: Detailed logging for debugging and monitoring
  • Cross-Platform: Native support for Linux, macOS, and Windows

Architecture

The SDK uses a hybrid Rust-Python architecture:

  • Rust Core: High-performance data processing, networking, and Snowflake communication
  • Python Bindings: Pythonic API using PyO3 for seamless integration
  • Stable ABI: Uses Python's stable ABI (abi3) for forward compatibility

Dependencies

Core Dependencies

  • msgspec: Fast JSON serialization/deserialization
  • Native Extensions: Rust-based binary modules (automatically included)

Build Dependencies (for development)

  • maturin: Rust-Python build tool
  • pytest: Testing framework
  • Rust toolchain: Required for building from source

Support

License

This project is licensed under the Apache License 2.0. See LICENSE-2.0.txt for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests: python -m pytest tests/
  5. Submit a pull request

For more details, see the main repository's contribution guidelines.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

snowpipe_streaming-1.7.0-cp39-abi3-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.9+Windows x86-64

snowpipe_streaming-1.7.0-cp39-abi3-manylinux_2_26_aarch64.whl (11.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.26+ ARM64

snowpipe_streaming-1.7.0-cp39-abi3-manylinux_2_24_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.24+ x86-64

snowpipe_streaming-1.7.0-cp39-abi3-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file snowpipe_streaming-1.7.0-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.7.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a72fc0cd2d5148dd5f007d86ddd6d2943bf0ef3506a8a673288aa582c521a99c
MD5 6f18634132637247c14e9b6475645a1b
BLAKE2b-256 5d8afd3212c5c5586e3462fd9fb347e74944c4388c1e1006c81c074341e1182c

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.7.0-cp39-abi3-manylinux_2_26_aarch64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.7.0-cp39-abi3-manylinux_2_26_aarch64.whl
Algorithm Hash digest
SHA256 67787cf03d17f535c7509a417a5ea54a1636e60239283851a84714ed45899416
MD5 67612db563c8d26694ca81bf1f7dee74
BLAKE2b-256 fc80c3a971a1ba7cf0b7f2b05ee4c642030abcafd0079365e6074ca7828cb823

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.7.0-cp39-abi3-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.7.0-cp39-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 d1029f8f4fd18d6bdcace545aa53837c8398086c1e21ab4132b276c0a516419a
MD5 28de17d7dc49dbaa8cabb8c4cc068d90
BLAKE2b-256 c99dd59447b973e9846847d1175ccef29bc838cffcd138aba03ec99863e04f51

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.7.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.7.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac420b259833ac6a25be076da5bd2b0aba0643010ecd9183a1b4b958d9a1670e
MD5 d3823eb439d414502fad668bfa5cfd8e
BLAKE2b-256 ab2ecc736e975c1cb507062d84cc60a5b1e46ce573dfba1ea34748e22fb25b01

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 Sentry Error logging StatusPage Status page