Snowflake Streaming Ingest SDK
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snowpipe_streaming-1.2.0-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: snowpipe_streaming-1.2.0-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 8.3 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a408a1895ac48db00d3339d91c90e6ef2efb8847ca2049fd87eb8b35e41c9817
|
|
| MD5 |
ac9a8ab25664153f1e00f5475ca7287b
|
|
| BLAKE2b-256 |
f16678f260de935297b8e1b1932db3dc342ba6bc98ad56c820e6282aaadc385d
|
File details
Details for the file snowpipe_streaming-1.2.0-cp39-abi3-manylinux_2_24_x86_64.whl.
File metadata
- Download URL: snowpipe_streaming-1.2.0-cp39-abi3-manylinux_2_24_x86_64.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.9+, manylinux: glibc 2.24+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68f96eba64e711a3934c8d9952c98f521df521a6c55b675ee44706b81dd02189
|
|
| MD5 |
fc31b40eb9e2cd5cd5b48c420897c203
|
|
| BLAKE2b-256 |
784541e9347e769b3837670b1399357640f77cd572002db16c0f5588edf76273
|
File details
Details for the file snowpipe_streaming-1.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: snowpipe_streaming-1.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d43d1f7ba3887b74ddf62510ed10c539891277017fec4156cd8ab07f0584f951
|
|
| MD5 |
1f7f7132de11ef1b08e7b6e8816803b7
|
|
| BLAKE2b-256 |
2acdf522b64b5c8ec9224f3c50f52a22aa906db2f86cb1df2ba3beef9c5cada0
|
File details
Details for the file snowpipe_streaming-1.2.0-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: snowpipe_streaming-1.2.0-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04524b44141225ab56203336ba4ed5fd554cb3efa041c5e69f8a1097a5abc6eb
|
|
| MD5 |
82b0f04e4558a5f0c97fc0ba1c6ff4d5
|
|
| BLAKE2b-256 |
bd1615cc9dbc0858aa68f7bdf0a53750d3a28390e878a4bec6453209adaa2d09
|