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

Uploaded Source

Built Distributions

singlestoredb-0.5.4-cp36-abi3-win_amd64.whl (183.5 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.5.4-cp36-abi3-win32.whl (183.0 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.5.4-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (214.2 kB view details)

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

singlestoredb-0.5.4-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (214.8 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.5.4-cp36-abi3-macosx_10_9_universal2.whl (193.5 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.5.4.tar.gz
Algorithm Hash digest
SHA256 afe7f099a43f6fe088b98f4c8b1fd3841b81cde0c566ebd6785139ec08cc17d5
MD5 e004212a3ea554176cf2af0273e2c6d7
BLAKE2b-256 a23453475bca35bfbfd96e78165b45fcea4ed67edabdab0f762217184e7d9fb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.5.4-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 40a38ad1289b9dcc09c262a3f96e3da632beca519808d441fb8c71f09d7f8aaa
MD5 1ed0543d74d0029b7d216f5673584a01
BLAKE2b-256 60e8ae273add9d43b5a03f903af282f6fe0397c3898b356b71d7239d0eeef28a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.5.4-cp36-abi3-win32.whl
  • Upload date:
  • Size: 183.0 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.5.4-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 51961b879a58eaf87521100507b007240beae4da8ac4e3d21f2fa44078e48878
MD5 884b62449def1409787219bcc47ff2d6
BLAKE2b-256 fa0da2efe0195d2ec99057cc82420000b9934b919b91d0dd3c4b29918dffdeb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.5.4-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a42ad0df6d8960c832314b0fdb5fa1d00f7e5e8cbbe5b8a5c9048b6acab11038
MD5 8ee3ef739b621a49ed2fa16dbe698ec2
BLAKE2b-256 bc3c12424b10a6d00759237f111bc8e80bbb0b0b1d0bc04909ba2cb0d4d57349

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.5.4-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f6c9edecf1b022b036357282f169cc02d5b88878c411d1fa920d0969609cec8d
MD5 9a86c114f9eb8bd5922c5431c064d2a4
BLAKE2b-256 f52832132d0bb845352570b181df880bd25f30e60a06455620f2069c436e6cbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.5.4-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9581ecbd6d676c4e4d513c9baf5980d6c85729169ceb172acf8c6ec4119c46a0
MD5 be88d1d614e41192e4c0fb8ca619aab6
BLAKE2b-256 d9a4a94e79f45abd22a0c633bf23686b515ae706c560b1ffaa3de6eff0d68008

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