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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.6+ Windows x86-64

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

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.8.5-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (221.9 kB view details)

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

singlestoredb-0.8.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: singlestoredb-0.8.5.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.5.tar.gz
Algorithm Hash digest
SHA256 eebe4c42d170809044ffc4d33e47d63867c1225b8ffd2ae0b3050fcf9b0945dc
MD5 a4e1f2fada98334be405d366d5f3b89f
BLAKE2b-256 3a3bc5e2cfc14e19145d75eec1bdc8aae2171ea19fa29e1c6bfe9e5eb6916e4f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.5-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 11defcd30237c14b5c867ec1b83d7267784b4ed7371ec77674892afd8b7127bb
MD5 8b314c70d2e2d39e7ca04c8eb2a7236a
BLAKE2b-256 3804139f8166fe2675ae29da10108f743f50856932d3edbd8583442e00b9daef

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: singlestoredb-0.8.5-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.5-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 88028ca8dac9f6dd7b2a9be98df1fdf6cb8072beb5c9bd8206469d51cc73cec4
MD5 c8e0b5f9222e39cb41f57c2201b2bd00
BLAKE2b-256 098e8aa1f7fb81dc2eb154b1211649d08824c224276a43e0d7fbfb8b6d0d2f33

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.5-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6747433f2ce51bff76afff6cce43dd8c6b88c6e5b02add99f6307c8c4308c63f
MD5 c83a90681f23a637a82fde4dc825b13c
BLAKE2b-256 b7b3daf5b67ac900d2e1c24e3db8aba13d31e3fd22750538e925bcf0c17d6a41

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.5-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5d5e8936e0a03a696b446c55f1e7fc9e128ea39582a5cb8b03f57f9676cda697
MD5 4e6cf9206dc6196a32324092cd1d8587
BLAKE2b-256 5ecd3b60436a80d8de63c73a099f8352fa48d1a63014161f58d3f36dc20c842d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.5-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b47423f590292b574230226b3fed1957398b35911b4b5f27fdc61b23cf2dcc37
MD5 b5614219647f43cba196830d330f6aca
BLAKE2b-256 e60a8ae0bbd3851b2a22739c4e534f87a75250c4f76cd97d149a6c2421fa7b8e

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