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

Uploaded Source

Built Distributions

singlestoredb-0.0.0-cp36-abi3-win_amd64.whl (222.4 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.0.0-cp36-abi3-win32.whl (222.1 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.0.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (262.9 kB view details)

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

singlestoredb-0.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (263.3 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.0.0-cp36-abi3-macosx_10_9_universal2.whl (235.2 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.0.0.tar.gz
  • Upload date:
  • Size: 189.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.0.0.tar.gz
Algorithm Hash digest
SHA256 05843c1354ffc2b6eb10a1d8b93a20891d46eec732de61cd3cbb2ecd4d6c0643
MD5 128427d379e2f6fa5bab5afed75a8fb2
BLAKE2b-256 da90c8fc6a98e36d60306a3af9e994d2466aa70a2d9381814ab72c2a65b8cc6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.0.0-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5afebaf4c539a38c99711ba4cb43c814f4d22a308530261f7f857f31f8769e5e
MD5 616ccb3d1b185b0fdf616a3fa64824a6
BLAKE2b-256 f2a792851bb0a05b61bcbf907de069af2d587da4cc3a21b3a8895ab106e6094f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.0.0-cp36-abi3-win32.whl
  • Upload date:
  • Size: 222.1 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.0.0-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 8cafcab386f282d7a13f1c878aab00616afd642cb332c8bc0f7eeecde5ce4304
MD5 45550f8373c1419201b302850bf59b5e
BLAKE2b-256 677a585a5be57fcf19af9f0e2ff12d0ad8b924562ad10f54d95bcbab4e915b53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.0.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61fc94d37907b322bd3b4b1efb983925bba3c225f3a37b034179e472d9fe566f
MD5 c05c784ab87f8c966f066c95947d8358
BLAKE2b-256 1e9d5b4dd352cb0a83dbdf9bc942b682979060bef81cccb615a1fb83d0e5a24a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9e9491a5be8ea182981d7a89fc6729843768b27afd1739b900427874664bcb57
MD5 9077b4bb93c416ed1b4bdb346561335f
BLAKE2b-256 7408c61eea17b99a2fee48707ea55ba3f4726c6493ae8b0c5432e4fb45adc9e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.0.0-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2f93bda2ceea8b9fd52456e392c05d3da20ae0246ea1805a1d9eb80a7fe4c160
MD5 1b76651990932e400d1f40f1201e7fd8
BLAKE2b-256 8d94fafa38c5c8921981de7e11c6b1e56b59fd52a025d127ec5e385c15eab6db

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