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

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.

Metadata

Release files for snowpipe-streaming 1.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for snowpipe-streaming 1.9.1
File Actions
snowpipe_streaming-1.9.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for snowpipe_streaming-1.9.1-cp39-abi3-win_amd64.whl
snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_26_aarch64.whl CPython 3.9 abi3 Linux glibc 2.26+ ARM64 Details for snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_26_aarch64.whl
snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_24_x86_64.whl CPython 3.9 abi3 Linux glibc 2.24+ x86-64 Details for snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_24_x86_64.whl
snowpipe_streaming-1.9.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for snowpipe_streaming-1.9.1-cp39-abi3-macosx_11_0_arm64.whl

Total release size: 42.5 MB

Release files / snowpipe_streaming-1.9.1-cp39-abi3-win_amd64.whl

Download URL snowpipe_streaming-1.9.1-cp39-abi3-win_amd64.whl
Size 9.2 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
b58053e61eb76734f72889ba1a499027aae652cd7c8557e5279b1dfe9aed373b
BLAKE2b-256 checksum
How to use checksums
9d00b9f7261246e5e35ca9b107099646c5facfcb30712a4c90194a2cad43c199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Release files / snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_26_aarch64.whl

Download URL snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_26_aarch64.whl
Size 11.4 MB
Tags CPython 3.9 Linux glibc 2.26+ ARM64 abi3
SHA-256 checksum
How to use checksums
1343d965d7c3a5b4a39d5ab6cff84d4e9ea0b2815effd105ef5a71f8bd5a54ce
BLAKE2b-256 checksum
How to use checksums
a225cce0232bbf4d75ca2df57e6564c48da9874c2549bdd7a78b078a51ebfc65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Release files / snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_24_x86_64.whl

Download URL snowpipe_streaming-1.9.1-cp39-abi3-manylinux_2_24_x86_64.whl
Size 11.7 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 abi3
SHA-256 checksum
How to use checksums
dd7ccf72f024ea5847aa1666c9398ac4e5013571f240e6dfbbf4067bf8bd5f6f
BLAKE2b-256 checksum
How to use checksums
7d0e14655ee1e7c7264e13328d446d9224abbfa49a36e20ec3b0b592ec7f9ea1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Release files / snowpipe_streaming-1.9.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL snowpipe_streaming-1.9.1-cp39-abi3-macosx_11_0_arm64.whl
Size 10.1 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
42bc055e3ca2cddc690cfdd6faed0c7cac6bf296d43247f4eb1f88da037993bc
BLAKE2b-256 checksum
How to use checksums
622e7169062b6ac8fdd23132be8b5b04e44e83d744b56c893f2bc63a497d8f31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Security for snowpipe-streaming 1.9.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page