Skip to main content

Library to manage connection to Dremio via Apache Arrow Flight

Project description

PyUlysses

PyUlysses is a Python library for seamless connectivity to Dremio DataHub using Apache Arrow Flight. It provides an intuitive interface for executing SQL queries and managing data operations with built-in support for DuckDB integration.

Python Version License

Architecture

┌─────────────────┐
│  Your Python    │
│  Application    │
└────────┬────────┘
         │
         │ PyUlysses
         ▼
┌─────────────────┐      Arrow Flight      ┌─────────────────┐
│   PyArrow       │◄────────────────────────►│  Dremio Server  │
│   Client        │                          │   (DataHub)     │
└────────┬────────┘                          └─────────────────┘
         │
         │ Zero-copy transfer
         ▼
┌─────────────────┐
│    DuckDB       │
│   Analytics     │
└─────────────────┘

Features

Key Features:

  • High-performance Arrow Flight connectivity to Dremio
  • Native DuckDB integration for query results
  • Automatic retry logic with configurable timeouts
  • Robust error handling and logging
  • Secure authentication via PAT tokens
  • Zero-copy data transfer with Apache Arrow
  • Direct integration with analytical workflows

Installation

Virtual Environment (Recommended)

While optional, we strongly recommend using a virtual environment to isolate PyUlysses dependencies from your system Python installation.

Linux/macOS (Cortex)

# Create virtual environment
python3 -m venv venv

# Activate virtual environment
source venv/bin/activate

# Install lib
pip install pyulysses

Windows

# Create virtual environment
python -m venv venv

# Activate virtual environment (Command Prompt)
venv\Scripts\activate.bat

# Or PowerShell
venv\Scripts\Activate.ps1

# Install lib
pip install pyulysses

Quick Start

1. Configure Environment Variables

Create a .env file in your project root:

DREMIO_USERNAME=your_username
DREMIO_ACCESS_TOKEN=your_personal_access_token
DREMIO_HOST=dremio.example.com
DREMIO_PORT=9047

2. Basic Usage

Create a Python code inside the src folder.

from pyulysses.connector.datahub_connector import Client

# Initialize client
client = Client()

# Execute query
result = client.query(""" SELECT * FROM your_table """)

# Display results
print(result)

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🤖 Developer

Developer Role
Wallace Camargo Data Engineer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyulysses-1.0.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyulysses-1.0.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file pyulysses-1.0.0.tar.gz.

File metadata

  • Download URL: pyulysses-1.0.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for pyulysses-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5db4154e3765a78d324dd8ba4fbced349bcbc7f14ae742b450c705bc26f7dabc
MD5 09fb781dea3d3728e8024377a6c07fcb
BLAKE2b-256 4ea5f32d2d3f403d2083ca966747e3c4c27fe46e8b61be3f3ba75bdc0643deaa

See more details on using hashes here.

File details

Details for the file pyulysses-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyulysses-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for pyulysses-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae77aecae402e899d49b174f2b4608e6e8b9a79f126aa6a1d172dce915521292
MD5 e181497cbb5dce92e426ff0d9626bf65
BLAKE2b-256 80fff45c04dd28b553bb253028606bf0893d70680a694c5193d0e9a1c319f9a4

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