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.3

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.3
File Actions
snowpipe_streaming-1.9.3-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for snowpipe_streaming-1.9.3-cp39-abi3-win_amd64.whl
snowpipe_streaming-1.9.3-cp39-abi3-manylinux_2_26_aarch64.whl CPython 3.9 abi3 Linux glibc 2.26+ ARM64 Details for snowpipe_streaming-1.9.3-cp39-abi3-manylinux_2_26_aarch64.whl
snowpipe_streaming-1.9.3-cp39-abi3-manylinux_2_24_x86_64.whl CPython 3.9 abi3 Linux glibc 2.24+ x86-64 Details for snowpipe_streaming-1.9.3-cp39-abi3-manylinux_2_24_x86_64.whl
snowpipe_streaming-1.9.3-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for snowpipe_streaming-1.9.3-cp39-abi3-macosx_11_0_arm64.whl

Total release size: 42.1 MB

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

Download URL snowpipe_streaming-1.9.3-cp39-abi3-win_amd64.whl
Size 9.2 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1cf2469bd249d5447c63759033f4e041b50d8a4a82f5f5592635e5276a6e1ff8
BLAKE2b-256 checksum
How to use checksums
2961d9ed17bc4fffa7627d6e73af357f17e3a2d0e0e24076c9d2b61cae07a57f
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.3-cp39-abi3-manylinux_2_26_aarch64.whl

Download URL snowpipe_streaming-1.9.3-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
61dd6250cf82a9f1f1950272380c567b8a406d56d456cb3e026df750dba0df8f
BLAKE2b-256 checksum
How to use checksums
ff3d9a957740e79e6cf95385ab4a5a913d9e1a8262630777a652bedbd6d0df28
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.3-cp39-abi3-manylinux_2_24_x86_64.whl

Download URL snowpipe_streaming-1.9.3-cp39-abi3-manylinux_2_24_x86_64.whl
Size 11.5 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 abi3
SHA-256 checksum
How to use checksums
f695b9e912875d173580218cfc0cfc9b25fc5900b40dc770d892ec5f1f51d48d
BLAKE2b-256 checksum
How to use checksums
653ab0f21b72d293208ce69c9e7c29a1eba2cac82959cbd572850562bbc9987d
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.3-cp39-abi3-macosx_11_0_arm64.whl

Download URL snowpipe_streaming-1.9.3-cp39-abi3-macosx_11_0_arm64.whl
Size 10.0 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
051d943cc33f5b573549b9ab41e0a1edb3b450bc137f6dc497e5bd62ef5a1f4d
BLAKE2b-256 checksum
How to use checksums
9e4f13aeb3ab44d5edc63c5605ce57d1985ed109bbff3ec575b4f8e64536c43c
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.3

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