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

Uploaded Source

Built Distributions

singlestoredb-0.8.1-cp36-abi3-win_amd64.whl (187.9 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.8.1-cp36-abi3-win32.whl (187.4 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.8.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (218.6 kB view details)

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

singlestoredb-0.8.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (219.2 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.8.1-cp36-abi3-macosx_10_9_universal2.whl (197.8 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.8.1.tar.gz
Algorithm Hash digest
SHA256 7080351ecf85f3f3c66101855d7025b9b704219bd7c17af14e01b6f30ff8a7d1
MD5 6f71a6334f933daf514acce42c04dd3a
BLAKE2b-256 0bca79ebddefb27a2c496db4e99b495793410175546a0fe238e7ff41443d826f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.1-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b1365f95390b2eda89c05de7a4560539659e749a870e1f4db4f9c33236a04960
MD5 11b07f4c766952b262c5fa4a538c2546
BLAKE2b-256 a6ad34953ecdb2f566e733008bf4599ce905fedb100eb84aee613c94e8fe4f12

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.8.1-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 d54521a817532610185a409fadf40b0f13d45ab6e00393b3f44c9c529390c13b
MD5 331e89f9cec671fb68bc5c2ba1687f97
BLAKE2b-256 7e2ae81daaa33a4ab1faf313fbcb79ffc437cfda367f68a4d178d553c59a0481

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 867b4e717871465adc8ac733cd32ef259a8bbb1e6d70f95e2c250e3e9ba3b9a7
MD5 f56d93bbfc5119fd0be56a80f15ff7d8
BLAKE2b-256 12074f343ef48f1971e40555f407dc262840ec6428850f9750a97c3de112f646

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f96d6622c7cd37bfc9ea22bba8ac150de13c5ba3805a2261c1a37437f7a8479
MD5 5843a4a55a3a71b661741b34f31c5220
BLAKE2b-256 e7e953a9b7d5bbf23b86bb04410803f08dc3bb78c94d90e9edeea811692adec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.1-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c1924b6599429d61f7a8f9990777d43e0ca07a488401341f8c8f4a3bc818a7e8
MD5 645bf3ab289fbed214d5c0dfb48e923d
BLAKE2b-256 e627e4ad961fd4ff7ffc0682adfbc714a680db63a8c0726ffccdd8f2c646c622

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