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.8.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.8.0
File
snowpipe_streaming-1.8.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
snowpipe_streaming-1.8.0-cp39-abi3-manylinux_2_26_aarch64.whl CPython 3.9 abi3 Linux glibc 2.26+ ARM64 Details
snowpipe_streaming-1.8.0-cp39-abi3-manylinux_2_24_x86_64.whl CPython 3.9 abi3 Linux glibc 2.24+ x86-64 Details
snowpipe_streaming-1.8.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.8.0-cp39-abi3-win_amd64.whl

Download URL snowpipe_streaming-1.8.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
fc029099054d356275b3298c6596514bfb91005f67cff28c6b2d39a68e2d61ee
BLAKE2b-256 checksum
How to use checksums
796c35afdcac2fdf5b1d9410c00a1f0dea0eb6929ed8fd20a4e164cfaa56a9db
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.8.0-cp39-abi3-manylinux_2_26_aarch64.whl

Download URL snowpipe_streaming-1.8.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
963edfaa6faf701849117243ebe0dce54fb5246c28e48d480f5e6b13f96bc6d2
BLAKE2b-256 checksum
How to use checksums
4f5bf13356611cdaadaf9b3cfbf0b4708c43ecf30b927f1385a8a9954e9bfa31
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.8.0-cp39-abi3-manylinux_2_24_x86_64.whl

Download URL snowpipe_streaming-1.8.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
aade07bc1c21ffe5cd7c47c7205fcd1ebfe03627de6f5361bb0ae824516e91f4
BLAKE2b-256 checksum
How to use checksums
7eb82a9176225af63ff2bed06108d2f0f5797e5927b9a536196dac642d9eb726
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.8.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL snowpipe_streaming-1.8.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
ee89f3f5589698e39acef8a0acdf7aae1b0cf284aa018e0800248e0e4b846c36
BLAKE2b-256 checksum
How to use checksums
9def9f8f91804501b34cc7f0f859a34056fb2d9e2a6b8b1e1cd4468fcca5347a
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

This release

1.8.0 This release

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