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

Uploaded CPython 3.9+Windows x86-64

snowpipe_streaming-1.6.1-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.1-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.1-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.1-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 02db16173cbd342c272e4f32152a71e9a6ed456a736156c27a94be204824f4af
MD5 e3c52365ac43e8f1d278b5d92650bbf7
BLAKE2b-256 74ec3c5a33a2f5be0c6e94fc0fcbbb16e4ebb1752259db71c9d23d81f09aea1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.1-cp39-abi3-manylinux_2_26_aarch64.whl
Algorithm Hash digest
SHA256 a4ef141ed8197d36dbb5e951e0dce14743424947dfcae371029de305914c2a74
MD5 090b09bdef16aa45bdea279050619fbf
BLAKE2b-256 88cf70fba10293d5168560abe889b0b9b813180d242871462f52810091d06077

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.1-cp39-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 5bc3f75ac89c8f4495abd43e21a18ad92f7e08fb0d849830df5e4e9c04a2baf5
MD5 e82bcd7574ca6433d9a98bf04c9b57d2
BLAKE2b-256 11f191823a2e84871d550b4ff9be1384bc5bd1516c3f1d3431593ac83897e0c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.6.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9390e96c793df0e9c200a330a239cb8780d28e6faab0d2aaaf0f7e50545d6c40
MD5 38aeee33ffb78db4e9a8160d5c2fc428
BLAKE2b-256 b3d79bb4c7e266c8fc77cb37435ac8dd0836ad2e63e303706b99e3e6141c3107

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