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
- Documentation: Snowflake Documentation
- Issues: GitHub Issues
- Community: Snowflake Community
License
This project is licensed under the Apache License 2.0. See LICENSE-2.0.txt for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
python -m pytest tests/ - 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)
| File | Actions Reset | |||
|---|---|---|---|---|
| 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.