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

Uploaded Source

Built Distributions

singlestoredb-0.10.1-cp38-abi3-win_amd64.whl (252.4 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-0.10.1-cp38-abi3-win32.whl (252.2 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-0.10.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (303.5 kB view details)

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

singlestoredb-0.10.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (303.6 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.10.1-cp38-abi3-macosx_10_9_universal2.whl (268.9 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.10.1.tar.gz
Algorithm Hash digest
SHA256 5595358e1a60d93a4a87c57a6ab37d45d979948a0ab0ab7f93f0d8f57a4a654b
MD5 27921ff17f9eb4a50b52c9d9a12da9b6
BLAKE2b-256 1302d8cdd77edc0e05e04fd5421e432c567aca704bd3d41a5e103069ebe05322

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-0.10.1-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9aa2bc68c0fbf7d322d340b06b47cf049ff1e32ffc3fff91d5600938f5f7d6ec
MD5 0f1b4c104dfdca279359dbea8bdb4340
BLAKE2b-256 3545e8d7ed2b3d1cd89acd43429682581aa7ef9ba15e8f546e6c1dd71aebd376

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-0.10.1-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 eaf5a34ef0e1617c06a08a1ab0147960944da96289d83b0a59692189333d31db
MD5 989e79df3b338a41d27ba712380f8161
BLAKE2b-256 4a93a1a1c21719fa3fd6ea3ae18b0813fd36e3eac5d0aa69fbfdd200ace67695

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-0.10.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df5fe9cf4aae195972c94c4bc70a8954c6c8e377b0db97bcabdc8a8a187be6f6
MD5 fd73a9e9022209d03682ee640d6d93c1
BLAKE2b-256 1915b09e944ee0ca3495fff011f947ab5f800a905123a4487354e32a430428bc

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-0.10.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c5649358507cb078d1d5587bf41610c264ddd5f89330d94f5580e02eb2cd889b
MD5 efd84031c1923ceeb2ee3f88deb39ef9
BLAKE2b-256 cdacad454de332560066eeb999e8e96b4912c615a238561a398e32cf5dbfac76

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-0.10.1-cp38-abi3-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for singlestoredb-0.10.1-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a0ba34a936ea94d0ca456a9e16587e6d634b99fbf40cc0432cae7cab18e99f13
MD5 90767dd558c73b63c0bb0d38e109f8a5
BLAKE2b-256 6183f6e588de04691fde36d53d044f24d3104cda3c8dd299af4ebec24686aed3

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