Skip to main content

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

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.

Project details


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.0-cp39-abi3-win_amd64.whl (8.3 MB view details)

Uploaded CPython 3.9+Windows x86-64

snowpipe_streaming-1.6.0-cp39-abi3-manylinux_2_26_aarch64.whl (10.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.26+ ARM64

snowpipe_streaming-1.6.0-cp39-abi3-manylinux_2_24_x86_64.whl (10.7 MB view details)

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

snowpipe_streaming-1.6.0-cp39-abi3-macosx_11_0_arm64.whl (9.7 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e2e2d72f3fef68ee37cabac2d85e5a8a565b798da1be88d297637ec9c99a76ad
MD5 b0811622ed1929e1ada72d5314fe9458
BLAKE2b-256 18b4c096b7803b78645ff9c73732a0ef5038a03eec5e9aa37cc65c4c95da7f7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.0-cp39-abi3-manylinux_2_26_aarch64.whl
Algorithm Hash digest
SHA256 6c9ed3a5e71c47aa83ad3482ba650608bef5a5156b26570a2b15a5ec3f75fd92
MD5 a3fd0757eb88289dd0cd1014e5b2d218
BLAKE2b-256 cc470ca9132ad63550689bce30b9f4bb2ab0e7661e5317f564f2f7783cf43f59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.0-cp39-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 743081fb02748d1fa3cd83c075929f7344ee70fbb9a4a2b81c58bba0691eee67
MD5 1095e9fd875a1a9e3990e7c3c14198f1
BLAKE2b-256 0ff2c69ba77a7adad06c9ed0c490d8e380bf2b18fa27aec8348ce3ca7fb7400f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3dbca12081321b440799d97533f5f0d529e590882c4efc5ce8b06b32bae6309
MD5 e4e88abdaf7bda0280c4c5577e2ee133
BLAKE2b-256 825d38acd336c43dc874862f2ecf3a4cf8eed14f0089177102540c97331e431c

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 Pingdom Monitoring Sentry Error logging StatusPage Status page