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


Release history Release notifications | RSS feed

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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

singlestoredb-0.10.6-cp38-abi3-win_amd64.whl (257.8 kB view details)

Uploaded CPython 3.8+Windows x86-64

singlestoredb-0.10.6-cp38-abi3-win32.whl (257.6 kB view details)

Uploaded CPython 3.8+Windows x86

singlestoredb-0.10.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (308.8 kB view details)

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

singlestoredb-0.10.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (308.9 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

singlestoredb-0.10.6-cp38-abi3-macosx_10_9_universal2.whl (274.3 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.10.6.tar.gz
  • Upload date:
  • Size: 218.6 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.6.tar.gz
Algorithm Hash digest
SHA256 2f8893bd1782fcd30e5cdebbc788415d4cde27b85f2430fbdd3597d1896a9db5
MD5 d51a84c6aba38b5fcb04379b4ec13ea8
BLAKE2b-256 48d39f461c49ef32b446df4efb54b99e5806c4fe4c05db98042cda37de3b9be1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.6-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 584d51bef7b6f936d23fe21b54bda55a011e7aecf3d82c7fd852b3bf462ff21b
MD5 7cbdc7af654a5b366610c2236152c993
BLAKE2b-256 206cc1b632293f77731cf8420feed892e1cc883cc451499e081785d3de5fa152

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.10.6-cp38-abi3-win32.whl
  • Upload date:
  • Size: 257.6 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for singlestoredb-0.10.6-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 581f580c2d65f791a9fc1fc225b84d800484aa5ac11123448339ea55d11c3104
MD5 cbc6002df1a6ebb3b2920a200c2ba596
BLAKE2b-256 fb558d0292093d0a01f05467d0851408812c76c467378cb6927e0af9f77bee1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff82989ec7d1226493ecab35ccd9449bb21a1f0bc8913364c219de28f263d740
MD5 ca7edda564e80e953303c5a08decf476
BLAKE2b-256 349f720ab9b47c048e45cc35c22156e97078e50093e2e62d15d05155a58986c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c21a6fc0a1a82cc6efd936461081654f272ea272fd59bb995158193deae6fbd7
MD5 0e8295a13817632d23bf7da82630117b
BLAKE2b-256 32a26dca2649d50824b7b7e177aade93a521f05993c058ce1b2779db7a6549a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.10.6-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3e15d17833b4e0d850ef8f403c8232dc68f0daeb6e8285abf2ce244039a648e5
MD5 ae898aa31fb84bf576b9541ec5b72432
BLAKE2b-256 634a78fe63fd6c8d7f1d1b92381071c3491362503771a27b89ca722f2e2f776b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page