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

Uploaded Source

Built Distributions

singlestoredb-0.7.2-cp36-abi3-win_amd64.whl (186.3 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.7.2-cp36-abi3-win32.whl (185.8 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.7.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (216.9 kB view details)

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

singlestoredb-0.7.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (217.6 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.7.2-cp36-abi3-macosx_10_9_universal2.whl (196.3 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.7.2.tar.gz
Algorithm Hash digest
SHA256 99a0328814217a8517223f47374f6c359798df7f9e025d53bf071811f8fcf56b
MD5 23474d0efd59c3c968b2999bbe6615f3
BLAKE2b-256 09a3d274ae38009e17bfd7665d9ab2215fc66365e7d6d20bc7a0463ff18b4ab2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.7.2-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0d961aa12e8dfca837d4006c580c5ba2f33eff4ef447dee1e1bbb7af64b6b1c4
MD5 4cd3c7a8f4ec9e54243e97eac88dc658
BLAKE2b-256 518d867f7267098188cf69e5b118dd1d20dd0f003a5af83cc7d18ca638deb78d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.7.2-cp36-abi3-win32.whl
  • Upload date:
  • Size: 185.8 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.7.2-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 dcfc61a7720044ee444c97485471f22abae500e10dfe99290fa7219347b4bdb5
MD5 5e737cc11f1c37004f0221317c03689c
BLAKE2b-256 3f6816370d631a5bbe110c12306dd0a0c0f3b786c6fbca37cb252bb3b50f9ae9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.7.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9d946a7436fdf7ba4c365cc7791be7566b7c5456e3acade75f6d9428f9de4bcb
MD5 be232085e1c434854fa237ae86496c30
BLAKE2b-256 ea7ceae48bebc0d23c95bbc53ce7c1986fa181c976a36e33d879529e1d7d79bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.7.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 baefc644f255d87a433198a1a5f20f0197f37fb693b0d0a04045c216d10357e8
MD5 1a0ae8e8bd70e98bb8d5804a1edea81b
BLAKE2b-256 e1f84f6abb1884d76da738adba91e0d6b93c7bc3b134cd3bddc5c0063242abaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.7.2-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 73f03aa356d5d566444572e385825ac726ca2c811c5c5754c4077cbf28a204c7
MD5 97015bd821b43e909ce903ceadb74cf2
BLAKE2b-256 4c27a076d26af6b708a4719a4e849fc1df16b6c5d646e76f330a66629fe1b01b

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