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

Uploaded Source

Built Distributions

singlestoredb-0.8.4-cp36-abi3-win_amd64.whl (189.9 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.8.4-cp36-abi3-win32.whl (189.3 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.8.4-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (221.8 kB view details)

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

singlestoredb-0.8.4-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (222.4 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.8.4-cp36-abi3-macosx_10_9_universal2.whl (200.0 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.8.4.tar.gz
  • Upload date:
  • Size: 160.1 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.4.tar.gz
Algorithm Hash digest
SHA256 9eb422065d9191d571eebdbefb85e75d3c253b642a97e4a7f6917b33d8b3905a
MD5 5ea9458021f012da9417fe5635c9703a
BLAKE2b-256 ea98c8aa8a18a966b29d34deeb2c18bfb0eb053b231d06f0351c589dfb36cfe5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.4-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 837b313b93ea90540f588cb029db25e3a620bdd373aeba0149b4f07678c11494
MD5 5b6991737402d6d0bd2c0bfc46b334ae
BLAKE2b-256 138aa143ec20423116858cfeb99ef2b2096fb98a915a5ec41a8e6d9ea56a865a

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: singlestoredb-0.8.4-cp36-abi3-win32.whl
  • Upload date:
  • Size: 189.3 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.4-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 8bd4a0abfffde563bd9ee78e47af398f529aed1d5351f3dbd310f2b1f78e1eaa
MD5 a719d5e0903a5d3bd637c76378b77748
BLAKE2b-256 fc6e1e85fc152a2ee4d85da901ee1627a98d42ca8686a9f6ba33faef8ff9a21d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.4-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c440df7b1e6296922ea5c11dc6e5d759e92bd576c4ba5071c838a81d51bf8a5
MD5 d14e848114b0a3fdd26c9dd67a073f3f
BLAKE2b-256 87dd267adcb08181f6d50a726bd805aa867f527eb4363f656c075da10515b101

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.4-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d23fbb543d69fce4b259f9ab1b4cb419e52ee9583d92319415b8d0b23675e82e
MD5 349423ff84a46f553b1a110203ce0f0c
BLAKE2b-256 0e869b5300c4ca9394254fef34034035fc24cd8e5c6d44e354eab4125c901bc1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.4-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9e9ad053f3c048d5adf39bd26782e06a6e58f685ae547eb526530aa0876e93d7
MD5 a6a375c12b9fe928a9c29cc2760dde10
BLAKE2b-256 ab236f33b23cdc133444bf19dba3829d7f0c01a1942eb32a90d664e83d0ce8a4

See more details on using hashes here.

Provenance

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