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.

Release files for snowpipe-streaming 1.7.1

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

Total release size: 41.4 MB

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

Download URL snowpipe_streaming-1.7.1-cp39-abi3-win_amd64.whl
Size 9.0 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
cb214844f6de68d93ad9b36b7b5a8d75824bb204ec5063edc1a5fe051199a4fe
BLAKE2b-256 checksum
How to use checksums
2f7beb4a77799245ee6e8294af6defd5651e359c5e93d776a1cc7166fdcbe7f2
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.7.1-cp39-abi3-manylinux_2_26_aarch64.whl

Download URL snowpipe_streaming-1.7.1-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
7a42cf8708da330bb1906c09978d353ffc6c29fcdbd8cc6ed46cbb98130d96af
BLAKE2b-256 checksum
How to use checksums
3de32f4f77597eb44e096d74d149f5d4f99684bb2f1219a39cd987d857e7ebf7
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.7.1-cp39-abi3-manylinux_2_24_x86_64.whl

Download URL snowpipe_streaming-1.7.1-cp39-abi3-manylinux_2_24_x86_64.whl
Size 11.4 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 abi3
SHA-256 checksum
How to use checksums
7cda5d038eab7f9a40b39f32dec8f47e62b777686418d3127fb6882afff0a7ab
BLAKE2b-256 checksum
How to use checksums
4d8a662209abd85aed4d3e3554a6ec8a0ab22c64cdde1163e3437c0d165d18ef
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.7.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL snowpipe_streaming-1.7.1-cp39-abi3-macosx_11_0_arm64.whl
Size 9.8 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b321d8c3933d18ab32e19dea6e5a1fbf2d01635e06f2151e8384ad3f2d4becfb
BLAKE2b-256 checksum
How to use checksums
bdd4e981853f9828d7d5addbe73219114498104fe76e673e1443d65c3de37593
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

1.8.1

4 release files

1.8.0

4 release files

This release

1.7.1 This release

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