Skip to main content

Interface to the SingleStore database and cluster 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.8.7.tar.gz (163.6 kB view details)

Uploaded Source

Built Distributions

singlestoredb-0.8.7-cp36-abi3-win_amd64.whl (192.7 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.8.7-cp36-abi3-win32.whl (192.4 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.8.7-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (232.9 kB view details)

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

singlestoredb-0.8.7-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (233.0 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.8.7-cp36-abi3-macosx_10_9_universal2.whl (205.8 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.8.7.tar.gz
  • Upload date:
  • Size: 163.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.8.7.tar.gz
Algorithm Hash digest
SHA256 904568e4c0c9ca7eaded998daa3038de33aec7c39333f89dfb1c371932ff9fef
MD5 e995a8b95fd2e1cdeed15b7a75375430
BLAKE2b-256 dd99a9699eff290a300c0ceb510b07c3157e13e684c7614b4dc7dc2d45223c7f

See more details on using hashes here.

File details

Details for the file singlestoredb-0.8.7-cp36-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.8.7-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8e265f8d0e2e3268fdc935ee2120dd8feadd39e1b95804473401bc711b03ff84
MD5 a7ecb664690c9650c6df2ad897831d20
BLAKE2b-256 9ef7c83d537365d7987c6c307fde14c5045d971d27a975bd1ce0020a162d9b1c

See more details on using hashes here.

File details

Details for the file singlestoredb-0.8.7-cp36-abi3-win32.whl.

File metadata

  • Download URL: singlestoredb-0.8.7-cp36-abi3-win32.whl
  • Upload date:
  • Size: 192.4 kB
  • Tags: CPython 3.6+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for singlestoredb-0.8.7-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 7bf35fb9a6268cababb5836c2b64feeb0bdcb048b6d928d2e5519548c0eda475
MD5 0b9a2dd5fb34f12a6e4e15123cf3e6b2
BLAKE2b-256 4eb6cc6a9a1c9dceb50ef958bd554cd8e8a1bd0ca965890d201c8f5b404fd672

See more details on using hashes here.

File details

Details for the file singlestoredb-0.8.7-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.8.7-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5308e308a5d16c4bbdc1b74217d05df133e60bab239a4cf46907029dbef57847
MD5 1d29f41eacc94806147c6602a82a0b46
BLAKE2b-256 f9df3179cf9698241e22d9d8b314a489f99e9e80447c417964d161c435ef7823

See more details on using hashes here.

File details

Details for the file singlestoredb-0.8.7-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.8.7-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 436ee6891dea5be402905e1623fca6a970edd13d1222dcb04d8ca6cbd4f70d27
MD5 61b6011b7c6783270c841cb1dc3e4c80
BLAKE2b-256 d1658593a5e25b29fc97153236b52d17dc1fbf6292da6bd22f1325b7729ed016

See more details on using hashes here.

File details

Details for the file singlestoredb-0.8.7-cp36-abi3-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for singlestoredb-0.8.7-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 aa5c8b4368f2629392643dfa98e8f97b1c23cea1af60d0362cb0c78f47b9731c
MD5 c6e5a7af62456ca04accedb532bc48c0
BLAKE2b-256 ff6e93733f6064f7ea3368f391f6d4762b17b8252b2e1744b598ba0631e2263a

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