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

Uploaded Source

Built Distributions

singlestoredb-0.6.0-cp36-abi3-win_amd64.whl (183.8 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.6.0-cp36-abi3-win32.whl (183.3 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (214.4 kB view details)

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

singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (215.1 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.6.0-cp36-abi3-macosx_10_9_universal2.whl (193.7 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4230571c967c66bbb234ed87faa3d699f2adefe88d4a994be9e0bbe530429d7a
MD5 6a5b8633d5dccc2aaa79a9609bb79b38
BLAKE2b-256 3f7cf70f7a360e6ebb631a061c90a9833d6d019ca4756a85de5420fb9e0e7543

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.6.0-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d94615fa19c6f635564c93e259d1bd34e0b258b4a124791eda2c273b8a9c3f1c
MD5 8286cb8b4af5b8dc5921c3245fefb9a8
BLAKE2b-256 911bb49ff014488091cba77b34b025411e0764940458a5884352539153738afc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.6.0-cp36-abi3-win32.whl
  • Upload date:
  • Size: 183.3 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.6.0-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 2d38ec67de7a7fb191880fbeb6789f9eb187d0a49d65afb9997d2806ba893905
MD5 5b98eaeb1b9e81e3d95c6a43403bb4bb
BLAKE2b-256 d13927476fb998e7b982a312a31bdd57f7fdafd54576eb8ffeaa0ab3273f2f8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15688b21ff7276fcf0dde63d2ec5b1a93d387e45154de792bb9698307f3fcf14
MD5 886e5880d59d69e54bd4a2393cbaaa68
BLAKE2b-256 a6d9baa43c42ec6a85fdc14929405803bd2d2cc71553297fdce4b8cdd1303d9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37c2c01d283efdc1622fffb57b4c572e429429a8d7f706660e11a4a7ee51222a
MD5 2a2600f4de03ae85be0abf000c0123d3
BLAKE2b-256 734d3819151ed358e8149cb98dd52c3c291374cc4ce5715c1c846350161eab57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.6.0-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 faffc2de576856591dd418ebd81429d7b61851cb7582c9c1a8871328f34f9ede
MD5 fd05ddc5691d8a10fcb0bc815432d92c
BLAKE2b-256 208f6c8f5cf26303c5fd6f4770931dadd1835591f46ca59a69484f3e9035bbb8

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