Skip to main content

SQLAlchemy dialect for Parseable

Project description

SQLAlchemy Parseable Connector for Apache Superset

A SQLAlchemy dialect and DBAPI implementation for connecting Apache Superset to Parseable, enabling seamless data visualization and analytics of your log data.

Features

  • Full SQLAlchemy dialect implementation for Parseable
  • Support for timestamp-based queries
  • Automatic schema detection
  • Support for special characters in table names (e.g., "ingress-nginx")
  • Type mapping from Parseable to SQLAlchemy types
  • Connection pooling and management

Prerequisites

  • Python 3.11.6 or higher
  • Apache Superset
  • A running Parseable instance

Installation

1. Set Up Python Environment

First, create and activate a Python virtual environment:

python3 -m venv venv
source venv/bin/activate  # On Linux/Mac
# or
.\venv\Scripts\activate  # On Windows

2. Install and Configure Superset

Install Apache Superset and perform initial setup:

# Install Superset
pip install apache-superset

# Configure Superset
export SUPERSET_SECRET_KEY=your-secure-secret-key
export FLASK_APP=superset

# Initialize the database
superset db upgrade

# Create an admin user
superset fab create-admin

# Load initial data
superset init

3. Install Parseable Connector

Install the Parseable connector in development mode:

cd sqlalchemy-parseable
pip install -e .

Running Superset

Start the Superset development server:

superset run -p 8088 --with-threads --reload --debugger

Access Superset at http://localhost:8088

Connecting to Parseable

  1. In the Superset UI, go to Data → Databases → + Database
  2. Select "Other" as the database type
  3. Use the following SQLAlchemy URI format:
    parseable://username:password@host:port/table_name
    
    Example:
    parseable://admin:admin@demo.parseable.com:443/ingress-nginx
    

Query Examples

The connector supports standard SQL queries with some Parseable-specific features:

-- Basic query with time range
SELECT method, status, COUNT(*) as count
FROM ingress-nginx
WHERE p_timestamp >= '2024-01-01T00:00:00Z'
  AND p_timestamp < '2024-01-02T00:00:00Z'
GROUP BY method, status;

-- Status code analysis
SELECT status, COUNT(*) as count
FROM ingress-nginx
WHERE p_timestamp >= '2024-01-01T00:00:00Z'
GROUP BY status;

Development

The connector implements several key components:

  • ParseableDialect: SQLAlchemy dialect implementation
  • ParseableClient: HTTP client for Parseable API
  • ParseableConnection: DBAPI connection implementation
  • ParseableCursor: DBAPI cursor implementation

Features and Limitations

Supported Features

  • Query execution with time range filtering
  • Schema inspection
  • Column type mapping
  • Connection testing
  • Table existence checking

Current Limitations

  • No transaction support (Parseable is append-only)
  • No write operations support
  • Limited to supported Parseable query operations

Troubleshooting

Common Issues

  1. Connection Errors

    • Verify Parseable host and port are correct
    • Ensure credentials are valid
    • Check if table name exists in Parseable
  2. Query Errors

    • Verify time range format (should be ISO8601)
    • Check if column names exist in schema
    • Ensure proper quoting for table names with special characters

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Apache License 2.0

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

sqlalchemy_parseable-0.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

sqlalchemy_parseable-0.1.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file sqlalchemy_parseable-0.1.0.tar.gz.

File metadata

  • Download URL: sqlalchemy_parseable-0.1.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.6

File hashes

Hashes for sqlalchemy_parseable-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0e9c934f23a94d82f1e372244b2cdffb428b5bc17feb8003bb4790d6ed90d8f5
MD5 39333f79102039546b4faea30a0d4236
BLAKE2b-256 9e91506fc03c9998571039a913375a3ba8bea1817d34ea82e9d6814cb1645ac4

See more details on using hashes here.

File details

Details for the file sqlalchemy_parseable-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlalchemy_parseable-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 920f1a3be88c8aa1593fe1abaaeba2bd97833f1831695f8caca220503782d2eb
MD5 abfb6dbaa1c886848bc18ffc72a8454f
BLAKE2b-256 277efba290c1e8c18234cbdf6d69bce14ffaeb09b3513f964a8a8743081cda51

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