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

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

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

snowpipe_streaming-1.6.2-cp39-abi3-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

snowpipe_streaming-1.6.2-cp39-abi3-manylinux_2_26_aarch64.whl (11.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.26+ ARM64

snowpipe_streaming-1.6.2-cp39-abi3-manylinux_2_24_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.24+ x86-64

snowpipe_streaming-1.6.2-cp39-abi3-macosx_11_0_arm64.whl (9.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file snowpipe_streaming-1.6.2-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 aeef1fe694df883a827784a7c96a664ae28d3844c79999bdd4e171f0079394e9
MD5 943ad6ccbbb962e27a7801bc1b9a5765
BLAKE2b-256 d3addb569087d347f50b04b8e3f99bb5643f20c1c146927d0aca355b14367420

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.6.2-cp39-abi3-manylinux_2_26_aarch64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.2-cp39-abi3-manylinux_2_26_aarch64.whl
Algorithm Hash digest
SHA256 d9997d7f5020499f5fb8e7278fdc2cfc664f8b8c5f02a4ea53d7f8c5a88430d6
MD5 11ed2347d253e0f5c58d255636a9bef3
BLAKE2b-256 c443773416431b7d17af0357b129d48fe03d64d91fbc6c9a4b140e4066edb928

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.6.2-cp39-abi3-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.2-cp39-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 09da11b20c2fb739e5e07483ff6ad7360054173b28c4b517b3f800343df566c2
MD5 8101c3b5506a4bdcb32bf98b4a0105a8
BLAKE2b-256 8fbdec84d5dbde16d06a2ac39ef7e83da8c2d0faf3332a2341f5cb2d58a38d7c

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.6.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02f99fdfc828994d0cb8e0f5821995c090e006360a04c92ee209bae6a38e3135
MD5 9748dbb4d796def1dd5d527e6430a96f
BLAKE2b-256 834594c9305615371370bdfab68e4b88920d0d185a61507fd708bdfd683ce798

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page