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

# 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.1.0.tar.gz (15.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.1.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyulysses-1.1.0.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.12.8 Windows/2019Server

File hashes

Hashes for pyulysses-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7dc67d80f2e71844c6c7698774a261ea69cc793a0c28e3d52b4fd2deb0cf12bb
MD5 66f4949cc8ff76cf347bf8d7f638b00f
BLAKE2b-256 ffdc2add2c7c384ed909569eff87c117c312128eba556f9975aa454cfa2fe6c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyulysses-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.12.8 Windows/2019Server

File hashes

Hashes for pyulysses-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02971e940809ccdda038ad60827c26ad30c2cef4e700317fef9141ed849fe7f4
MD5 5c4fde357734947877f86efc047539cc
BLAKE2b-256 c83f29d34ee38990b142d9ee300142df4251ad4a98d1a7b76b168f4bfbcbedef

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