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

Uploaded CPython 3.9+Windows x86-64

snowpipe_streaming-1.4.0-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.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

snowpipe_streaming-1.4.0-cp39-abi3-macosx_11_0_arm64.whl (10.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.4.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f0cc8515fbd218fe763c89aabb6cc57c139e7737b3c1e9b1867625ce5ec05808
MD5 28c993e4300a17b5f58e477b00e4d91e
BLAKE2b-256 660c49566307022d37ae6231421ab158deb8807392af3678cfb2e44e7c18a260

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.4.0-cp39-abi3-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 cfc31cd0e76865dd4328e9b21255622d5ff704ad980bbbf366ea7af379d64a10
MD5 9df5e3f3e1682ffb86da1495a9775428
BLAKE2b-256 527addb7956d3694405c769c9c995a78f2d107aff27fa9a112ede1ae2b59da6d

See more details on using hashes here.

File details

Details for the file snowpipe_streaming-1.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snowpipe_streaming-1.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0339501dae7b8dc0007088d412d0fc758d30d4610c2c18cbe571c746d8ff228e
MD5 126c2fb0e54114fe245a530fefa8ede1
BLAKE2b-256 243f5aa29f9b277345d524f2d01e881e9ad1edd564d29aa850bdfec51ae66a83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowpipe_streaming-1.4.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 128ddc379e3c109e67840c029223b01596eb157792aea6b8f91599a138266531
MD5 cad1a975c9cb3d9cf68810c40d1d9a0e
BLAKE2b-256 a648d39b0ab6aec57be9f944e04b4f5c3d7bfaa6aa8394d9a15da9e7bc8cd535

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