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

Uploaded Source

Built Distributions

singlestoredb-0.8.9-cp36-abi3-win_amd64.whl (193.0 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.8.9-cp36-abi3-win32.whl (192.7 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.8.9-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (233.7 kB view details)

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

singlestoredb-0.8.9-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (233.8 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.8.9-cp36-abi3-macosx_10_9_universal2.whl (206.4 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.8.9.tar.gz
  • Upload date:
  • Size: 163.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.8.9.tar.gz
Algorithm Hash digest
SHA256 49e02230a3267100fe551bc0e4058bb433aa500a22eed0567620a624cc45179b
MD5 5e2ce875476005aad529117af7c4ba55
BLAKE2b-256 191862bef668d6d2ed3c262679b27d2f6a5bd1e0f50fef27b2d1830d3643295d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.9-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9e5917332fb6a2897443e719ee37293770e23341ddc179e374a40cc25de2bef3
MD5 c553acd50987357e57810d91208d3f35
BLAKE2b-256 8bfc891672d19d1ae149a6c03b615a72a1d57dcf4d794ae223d74d19cbd3a593

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: singlestoredb-0.8.9-cp36-abi3-win32.whl
  • Upload date:
  • Size: 192.7 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.9-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 216553299ffb5fa9ff38b23fb28669addd2b25ed565e33a176a37cb4bfe0ea4b
MD5 31ffc46c8ef120a963a7942487923d96
BLAKE2b-256 f4d3e243887614c34d4852ec17b53057b8fb0b8b814e5fe051302988d68d106c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.9-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25cb234ba67e8dfff15c097117115e595c654cd2ced4f34bf461d88dea301e58
MD5 92bfad3f5658446b4a12ea371b538dfa
BLAKE2b-256 be017454e5129dab0355192faaeec0b19a380988485d4077a0d6323b3d147ba1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.9-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 95a86ba9ded82ad244bbcb0c5046c86cf893d81164b0019d3761bfab702121a3
MD5 92d3f05cdb9b23ce42146acf23ec6fb5
BLAKE2b-256 37fe9308c485658891be3c15bc6fdb0d72f679d02d5e9b7af2d199f04a52fde8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.9-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6279e3acd8ef88431d03dea553906515e719c99275c61af88bed34328c87bd51
MD5 811f6cbce07c39fc9188bb192c5e7fa9
BLAKE2b-256 ed0779b1882295fdcf883eef5e5cdf864e8a5c128b7845c711d6f2a3bf7751d1

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