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

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

Total release size: 42.1 MB

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

Download URL snowpipe_streaming-1.9.2-cp39-abi3-win_amd64.whl
Size 9.2 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
2d3b1e014803402788c58088a1201219615716dd826c6137091761b6c0629334
BLAKE2b-256 checksum
How to use checksums
b78875da8e48e4a788fd4196fff84730420e1f2a19f9095f6b13a0c5426ea4f2
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.2-cp39-abi3-manylinux_2_26_aarch64.whl

Download URL snowpipe_streaming-1.9.2-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
2fa3c25945fa4cc2d217dc6de4e1db3227afc35ae4908240ed21a433171d9907
BLAKE2b-256 checksum
How to use checksums
5cc5737552b26d6de4728a4736a03347d1e23dd6018e055c46bc7d80a150a130
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.2-cp39-abi3-manylinux_2_24_x86_64.whl

Download URL snowpipe_streaming-1.9.2-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
15d49e2bd53dfec7b04fcf18844b5980eaa34466d96df105a7c74a1c940ab7c2
BLAKE2b-256 checksum
How to use checksums
6d524b629364b14538cfa2c4d133dcf979bf403ca340ba3d1d1580627daec6cf
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.2-cp39-abi3-macosx_11_0_arm64.whl

Download URL snowpipe_streaming-1.9.2-cp39-abi3-macosx_11_0_arm64.whl
Size 9.9 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9ee11654eb57cb7f3a3e8095188354cda65c267691dc7cf1197e8f7e934c9cd1
BLAKE2b-256 checksum
How to use checksums
fff4643a652c0567fad44302e510470385a00ad92c763111fddd786ca15e63f0
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.2

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