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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5db4154e3765a78d324dd8ba4fbced349bcbc7f14ae742b450c705bc26f7dabc
|
|
| MD5 |
09fb781dea3d3728e8024377a6c07fcb
|
|
| BLAKE2b-256 |
4ea5f32d2d3f403d2083ca966747e3c4c27fe46e8b61be3f3ba75bdc0643deaa
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae77aecae402e899d49b174f2b4608e6e8b9a79f126aa6a1d172dce915521292
|
|
| MD5 |
e181497cbb5dce92e426ff0d9626bf65
|
|
| BLAKE2b-256 |
80fff45c04dd28b553bb253028606bf0893d70680a694c5193d0e9a1c319f9a4
|