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

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

Total release size: 41.6 MB

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

Download URL snowpipe_streaming-1.9.0-cp39-abi3-win_amd64.whl
Size 9.0 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3a3ce3d5e7e932b60ba9d593514bec6f4e455f51f7bba8e709d03cb262f9e7e5
BLAKE2b-256 checksum
How to use checksums
829499ac8fcc65f14456199934646cb73b1c09a054ecb3a2072bd3982dd78982
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.0-cp39-abi3-manylinux_2_26_aarch64.whl

Download URL snowpipe_streaming-1.9.0-cp39-abi3-manylinux_2_26_aarch64.whl
Size 11.2 MB
Tags CPython 3.9 Linux glibc 2.26+ ARM64 abi3
SHA-256 checksum
How to use checksums
30dc3c0fdced6832edb7f90844df6464a0a7742253c13fa8d6c213e71bfdeab9
BLAKE2b-256 checksum
How to use checksums
9afe522f4fa0150c30d8e46175d244f359613d009d73ed812aba9f0ee2901cb6
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.0-cp39-abi3-manylinux_2_24_x86_64.whl

Download URL snowpipe_streaming-1.9.0-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
a3034969daf0baab3b79d9a4d65a859a33b2caff70e7cbdd95f826a1e8ff6096
BLAKE2b-256 checksum
How to use checksums
780b2db9586903eb02f0408ceedbcae7054953003af9f8485637fb0405705034
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.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL snowpipe_streaming-1.9.0-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
58ef7c46ed0d013aa19da03f528a922e1af6a99110c762c0312fc3e453a62958
BLAKE2b-256 checksum
How to use checksums
9d9b08613c5f863e5fef5d76c3a77ec44a21e23b259307689c1f7b0d20e17c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.8

Release history Release notifications | RSS feed

This release

1.9.0 This release

4 release files

1.8.1

4 release files

1.8.0

4 release files

1.7.1

4 release files

1.7.0

4 release files

1.6.2

4 release files

1.6.1

4 release files

1.6.0

4 release files

1.5.0

4 release files

1.4.0

4 release files

1.2.0

4 release files

1.1.2

4 release files

1.1.0

4 release files

1.0.2

4 release files

1.0.1

4 release files

1.0.0

4 release files

0.6.0

4 release files

0.5.1

4 release files

0.5.0

4 release files

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