Skip to main content

Interface to the SingleStoreDB database and workspace management APIs

Project description

SingleStoreDB Python Interface

This project contains a DB-API 2.0 compatible Python interface to the SingleStore database and workspace management API.

Warning As of version v0.5.0, the parameter substitution syntax has changed from :1, :2, etc. for list parameters and :foo, :bar, etc. for dictionary parameters to %s and %(foo)s, %(bar)s etc., respectively.

Install

This package can be install from PyPI using pip:

pip install singlestoredb

Documentation

https://singlestore-labs.github.io/singlestoredb-python

Usage

Connections to the SingleStore database are made using the DB-API parameters host, port, user, password, etc, but they may also be done using URLs that specify these parameters as well (much like the SQLAlchemy package).

import singlestoredb as s2

# Connect using the default connector
conn = s2.connect('user:password@host:3306/db_name')

# Create a cursor
cur = conn.cursor()

# Execute SQL
cur.execute('select * from foo')

# Fetch the results
print(cur.description)
for item in cur:
    print(item)

# Close the connection
conn.close()

Connecting to the HTTP API is done as follows:

# Use the HTTP API connector
conn = s2.connect('https://user:password@host:8080/db_name')

Performance

While this package is based on PyMySQL which is a pure Python-based MySQL connector, it adds various performance enhancements that make it faster than most other connectors. The performance improvements come from changes to the data conversion functions, cursor implementations, and a C extension that is highly optimized to improve row data reading.

The package can be used both in a pure Python mode and as well as a C accelerated mode. Generally speaking, the C accelerated version of the client can read data 10X faster than PyMySQL, 2X faster than MySQLdb, and 1.5X faster than mysql.connector. All of this is done without having to install any 3rd party MySQL libraries!

Benchmarking was done with a table of 3,533,286 rows each containing a datetime, a float, and eight character columns. The data is the same data set used in this article. The client and server were running on the same machine and queries were made using fetchone, fetchall, fetchmany(1000), and an iterator over the cursor object (e.g., iter(cur)). The results are shown below.

Buffered

PyMySQL MySQLdb mysql.connector SingleStore (pure Python) SingleStore
fetchall 37.0s 8.7s 5.6s 29.0s 3.7s
fetchmany(1000) 37.4s 9.2s 6.2s 29.6s 3.6s
fetchone 38.2s 10.1s 10.2s 30.9s 4.8s
iter(cur) 38.3s 9.1s 10.2s 30.4s 4.4s

Unbuffered

PyMySQL MySQLdb mysql.connector SingleStore (pure Python) SingleStore
fetchall 39.0s 6.5s 5.5s 30.3s 5.5s
fetchmany(1000) 39.4s 7.0s 6.0s 30.4s 4.1s
fetchone 34.5s 8.9s 10.1s 30.8s 6.6s
iter(cur) 39.0s 9.0s 10.2s 31.4s 6.0s

License

This library is licensed under the Apache 2.0 License.

Resources

User agreement

SINGLESTORE, INC. ("SINGLESTORE") AGREES TO GRANT YOU AND YOUR COMPANY ACCESS TO THIS OPEN SOURCE SOFTWARE CONNECTOR ONLY IF (A) YOU AND YOUR COMPANY REPRESENT AND WARRANT THAT YOU, ON BEHALF OF YOUR COMPANY, HAVE THE AUTHORITY TO LEGALLY BIND YOUR COMPANY AND (B) YOU, ON BEHALF OF YOUR COMPANY ACCEPT AND AGREE TO BE BOUND BY ALL OF THE OPEN SOURCE TERMS AND CONDITIONS APPLICABLE TO THIS OPEN SOURCE CONNECTOR AS SET FORTH BELOW (THIS “AGREEMENT”), WHICH SHALL BE DEFINITIVELY EVIDENCED BY ANY ONE OF THE FOLLOWING MEANS: YOU, ON BEHALF OF YOUR COMPANY, CLICKING THE “DOWNLOAD, “ACCEPTANCE” OR “CONTINUE” BUTTON, AS APPLICABLE OR COMPANY’S INSTALLATION, ACCESS OR USE OF THE OPEN SOURCE CONNECTOR AND SHALL BE EFFECTIVE ON THE EARLIER OF THE DATE ON WHICH THE DOWNLOAD, ACCESS, COPY OR INSTALL OF THE CONNECTOR OR USE ANY SERVICES (INCLUDING ANY UPDATES OR UPGRADES) PROVIDED BY SINGLESTORE. BETA SOFTWARE CONNECTOR

Customer Understands and agrees that it is being granted access to pre-release or “beta” versions of SingleStore’s open source software connector (“Beta Software Connector”) for the limited purposes of non-production testing and evaluation of such Beta Software Connector. Customer acknowledges that SingleStore shall have no obligation to release a generally available version of such Beta Software Connector or to provide support or warranty for such versions of the Beta Software Connector for any production or non-evaluation use.

NOTWITHSTANDING ANYTHING TO THE CONTRARY IN ANY DOCUMENTATION, AGREEMENT OR IN ANY ORDER DOCUMENT, SINGLESTORE WILL HAVE NO WARRANTY, INDEMNITY, SUPPORT, OR SERVICE LEVEL, OBLIGATIONS WITH RESPECT TO THIS BETA SOFTWARE CONNECTOR (INCLUDING TOOLS AND UTILITIES).

APPLICABLE OPEN SOURCE LICENSE: Apache 2.0

IF YOU OR YOUR COMPANY DO NOT AGREE TO THESE TERMS AND CONDITIONS, DO NOT CHECK THE ACCEPTANCE BOX, AND DO NOT DOWNLOAD, ACCESS, COPY, INSTALL OR USE THE SOFTWARE OR THE SERVICES.

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

singlestoredb-0.10.3.tar.gz (214.6 kB view details)

Uploaded Source

Built Distributions

singlestoredb-0.10.3-cp38-abi3-win_amd64.whl (252.9 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-0.10.3-cp38-abi3-win32.whl (252.7 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-0.10.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (304.0 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

singlestoredb-0.10.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (304.1 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.10.3-cp38-abi3-macosx_10_9_universal2.whl (269.4 kB view details)

Uploaded CPython 3.8+ macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file singlestoredb-0.10.3.tar.gz.

File metadata

  • Download URL: singlestoredb-0.10.3.tar.gz
  • Upload date:
  • Size: 214.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for singlestoredb-0.10.3.tar.gz
Algorithm Hash digest
SHA256 44e9e07ee435c58476d03500f52eed1bd4c9621deb848529f1a03224d938629c
MD5 1bff3cfe9b4a5ddaffcdf67413d1950e
BLAKE2b-256 8876a31547e2771c9ff737afd713192af0769243fc5fe5288f41aa0d5b05b0df

See more details on using hashes here.

File details

Details for the file singlestoredb-0.10.3-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.3-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8a6334eb28449549ae4e4f8332d5df3f48064bc373de84823f5ceb8862525471
MD5 bc90dac441ae1868a843a1f48364eee0
BLAKE2b-256 1fc22166c57ffbc387a6bca84f03bd500d0bdca8000ffc31629ce813942d4950

See more details on using hashes here.

File details

Details for the file singlestoredb-0.10.3-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.3-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 a6fdaabd6c03e040e3bab5529a189a18f54d83d5cb8defdba53e474a73a7dc83
MD5 d75f47e6f7c549be44d1d5cc9f6d61f0
BLAKE2b-256 401bf36a1c09d655fd1bc8be64be5b5a4ee55e255c3ebe848d0e091492cefe83

See more details on using hashes here.

File details

Details for the file singlestoredb-0.10.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 111a35205e0b8910ebdf8398d46b91b25ba61fa0b35aad6f4f5e581f6477ee54
MD5 8e64df9892813b5410bd7a29523bdce7
BLAKE2b-256 7f2eb7ed8dc0d8394f5be72cc012fc9a5f956d506919efd7a42907e08a36bbaa

See more details on using hashes here.

File details

Details for the file singlestoredb-0.10.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9879da035c0cad0863a9654d1e0c6c5c127e402093d18a5a2844db0ab4c1627c
MD5 a193d30d4f652845cfcc5db98bf72f95
BLAKE2b-256 f64bc59c39d2cc60d864d1dc085aeddc75e308e1fa90d3b86248bcd011a21eef

See more details on using hashes here.

File details

Details for the file singlestoredb-0.10.3-cp38-abi3-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.3-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d41c848b4804e2b39737393e7ac0f63734b6303110e80502110b60b2596d5502
MD5 9595418ef91fac7564c89dfdb3dd3372
BLAKE2b-256 c6905518f7a933999dec54e377f019527821b31ea11f95df63aa957b1be079e3

See more details on using hashes here.

Supported by

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