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

Uploaded Source

Built Distributions

singlestoredb-0.10.2-cp38-abi3-win_amd64.whl (252.7 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-0.10.2-cp38-abi3-win32.whl (252.5 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-0.10.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (303.7 kB view details)

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

singlestoredb-0.10.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (303.8 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.10.2-cp38-abi3-macosx_10_9_universal2.whl (269.2 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.10.2.tar.gz
  • Upload date:
  • Size: 214.3 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.2.tar.gz
Algorithm Hash digest
SHA256 8cfd3a0c1d5df4c3b4f5ca60212d9330d61c63615099feb30ee2fe34eb89b7d3
MD5 0f902809ae1151eed100f405deea4c0f
BLAKE2b-256 930e4b4497236c5f57cf76d92caa3aca3c7968f6334cd6e03edd0ef2fbe4a1f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f6a44c7df670922685ea930ddda9280572bde3c26e48d20e863e9c3e5df753ec
MD5 a5b8d82b336a7019df153fe53d5d2c72
BLAKE2b-256 88eaf36e6071d4b504d24d482bde47df8dce75c60aa145dc4ffc2e7d56e0bd77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 466ef1541f07e5677440dbcc9b15dc282c804b7215543e153da61fd196d476d7
MD5 cc341c2bc52bc452410b8f8823f5ef5c
BLAKE2b-256 041622cfa68efed3058e6866da512054b16d917a09c8e0133616f62ca9aacf22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea41c5739b334d0eb9de561a5d505898a95af1fd7eef1d323ff76835cd288ad0
MD5 30d8032aa234bc01abf57e6f41817877
BLAKE2b-256 83f9d9f44449cf666b6b1a0e5aa9a17902a44d424fab628e893515c3efc145d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ac2a1433ff57f18c5bf82b7c2b7de18b4206f9f8ba764741ba3c20e0db3cb155
MD5 f1c31ccb8de53aafe0b086b846cc343e
BLAKE2b-256 ea5fb5cf0ef0578e665eb88fd6e23421c68869af7169ef5eab530daaac6fc59a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.2-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 04b055b83ab36b127e9f5b58e4e077c839106f6de364349f129d28ec68342091
MD5 83a9342a63d8636e451a73c0413cf2f0
BLAKE2b-256 638dd4a4253c715e74e76ba3d1ca28cfd9efe0fa11d696887f9a30c06d635ef7

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