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.5.tar.gz (217.8 kB view details)

Uploaded Source

Built Distributions

singlestoredb-0.10.5-cp38-abi3-win_amd64.whl (256.8 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-0.10.5-cp38-abi3-win32.whl (256.5 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-0.10.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (307.8 kB view details)

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

singlestoredb-0.10.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (307.9 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.10.5-cp38-abi3-macosx_10_9_universal2.whl (273.2 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.10.5.tar.gz
  • Upload date:
  • Size: 217.8 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.5.tar.gz
Algorithm Hash digest
SHA256 640310e8f5ae2c1f0d98fe624f3b2e9460d8dceb646b956def5a9f3f4a331774
MD5 24ec5a9d07cf63df7de70f9616e79612
BLAKE2b-256 8d5637af6eca544f02bf53f5476f44eb2d36ed5e04c9b43686e442053d7936c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.5-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8c6d071e16e9ea61f49c2e8b88ad10312693b4aea8b5a2077b820d07fe2d417c
MD5 897a5af9817236130bbe666585f3185d
BLAKE2b-256 bbad007573803221137fd9ddb4cc382799530f30ea74220bde62f2d0dff8dead

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.5-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 2bea66c63fd1124ad1d5cfa375744a608c9b4a7976f7ebdb08d17f64eb639e20
MD5 986291a2c80d937ab7ee830e6c74185f
BLAKE2b-256 3f35cbfd59acf5821c33e9ec7569e365a414757cf158b10a20b7332a89ea048d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a711e4ab2d61c30b7c64293a6d11b55ac111170738c94308dcf83be7173c0fc8
MD5 36febddbe00fac789e5b5a6f3aa2ed8d
BLAKE2b-256 3b0f77037d4f50ee4cacaf5c226f77ea798a494dc8a67d8ae7319f90385aa8e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a23c9533ac13df4d5a86a72fb297a003aedfcb11c78f031d6ea468eb35cc8ea
MD5 ba326150922807b7619f71a83eec7613
BLAKE2b-256 408fd2a2d2d31801fd405797c3e6d2d372fd6392dd3b8be36118e6498f48d3dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.5-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5db4b2df89133d308b701f8af8262b9ddb30de85e14ec6c1358fcde57078fcfe
MD5 e47917560c83a29ac51fd4fccbe2dd59
BLAKE2b-256 0f67a665184940dd60f35a41bff8f491f975b8f92b13268029deb440828a4721

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