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

Uploaded CPython 3.9+Windows x86-64

snowpipe_streaming-1.5.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.5.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.5.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.5.0-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.5.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1cb5adcea99774886e8a7c48037c1d146b0199d232ae4a0bc0d3c4cddcb4d9eb
MD5 73d9819bc4c3927c20c9af534e317f88
BLAKE2b-256 ac83211b057587eb5823c0f139527b47417674d4a35a78d477d8b1423f0831dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.5.0-cp39-abi3-manylinux_2_26_aarch64.whl
Algorithm Hash digest
SHA256 cb0441a1fa7158ac9619b100ce663278dc6968a1ae48939990d275f804a0d2e5
MD5 7de16daa8defdb7bc34dc3a5bc40f74e
BLAKE2b-256 7f587acfa6c1ccf5aadc5759389dbe1a8eab1e62a938519a59eac81c5984486c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.5.0-cp39-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 bcae9a78d5eb608e23d323ea2f4cd396cd4af8b06cf269329eee943cd4536cf9
MD5 d45029b0c285e1e335c2b0d7e97dbab5
BLAKE2b-256 a4c52f7c0e00f5de665b3f4660494ccd4d49e9fcb4bbb9edeadf77e16d932ad0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 755503c1380f77912b9c8da0d146e62805eaa3b11c2e3b7a8070cde16f41327a
MD5 25f35c060bbae108d276cd4b57ec4a31
BLAKE2b-256 8e4fd6a607c127e87492b348322fc10ae13a54f859d6d53a9f041844657508ef

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