Skip to main content

Python SQLAlchemy Dialect for StarRocks

Project description

StarRocks Python Client

A StarRocks client for the Python programming language.

StarRocks is the next-generation data platform designed to make data-intensive real-time analytics fast and easy. It delivers query speeds 5 to 10 times faster than other popular solutions. StarRocks can perform real-time analytics well while updating historical records. It can also enhance real-time analytics with historical data from data lakes easily. With StarRocks, you can get rid of the de-normalized tables and get the best performance and flexibility.

Installation

pip install starrocks

SQLAlchemy Usage

To connect to StarRocks using SQLAlchemy, use a connection string (URL) following this pattern:

  • User: User Name
  • Password: DBPassword
  • Host: StarRocks FE Host
  • Catalog: Catalog Name
  • Database: Database Name
  • Port: StarRocks FE port

Here's what the connection string looks like:

starrocks://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>

Example

Python connector supports only Python 3 and SQLAlchemy 1.4 and 2:

from sqlalchemy import create_engine, Integer, insert
from sqlalchemy.schema import Table, MetaData, Column
from sqlalchemy.sql.expression import select, text

engine = create_engine('starrocks://root:xxx@localhost:9030/hive_catalog.hive_db')

### Querying data
with engine.connect() as connection:
    rows = connection.execute(text("SELECT * FROM hive_table")).fetchall()
    print(rows)


### DDL Operation
meta = MetaData()
tbl = Table(
    'table1',
    meta,
    Column("id", Integer),
    starrocks_engine='OLAP',
    starrocks_comment='table comment',
    starrocks_properties=(
        ("storage_medium", "SSD"),
        ("storage_cooldown_time", "2025-06-04 00:00:00"),
        ("replication_num", "1")
    ))

meta.create_all(engine)

### Insert data
stmt = insert(tbl).values(id=1)
stmt.compile()
with engine.connect() as connection:
    connection.execute(stmt)
    rows = connection.execute(tbl.select()).fetchall()
    print(rows)

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

starrocks-1.2.1.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

starrocks-1.2.1-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file starrocks-1.2.1.tar.gz.

File metadata

  • Download URL: starrocks-1.2.1.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for starrocks-1.2.1.tar.gz
Algorithm Hash digest
SHA256 75edba47e779bb9afecb5965c146e310ec483f74575125250443605df9f97e91
MD5 db289323b4926b7bd6fa7400c38e9967
BLAKE2b-256 61efac5b4a824e3260276d57b2174d6172c7a4c5d25cb86a122867123656bce0

See more details on using hashes here.

File details

Details for the file starrocks-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: starrocks-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for starrocks-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 154a6d552cbd1a5e331aaf06500926a2fecfa3cab68615cba5603dcd3f0da7bc
MD5 ee31d794b3cef914c792d7fede659a12
BLAKE2b-256 4c0b161346c0e99125db4230fefa34cd49bcb7de6a3016e56d2b8949275e7329

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page