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


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.8.6.tar.gz (160.1 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.8.6-cp36-abi3-win_amd64.whl (189.9 kB view details)

Uploaded CPython 3.6+Windows x86-64

singlestoredb-0.8.6-cp36-abi3-win32.whl (189.3 kB view details)

Uploaded CPython 3.6+Windows x86

singlestoredb-0.8.6-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (221.9 kB view details)

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

singlestoredb-0.8.6-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (222.4 kB view details)

Uploaded CPython 3.6+manylinux: glibc 2.17+ ARM64

singlestoredb-0.8.6-cp36-abi3-macosx_10_9_universal2.whl (200.0 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-0.8.6.tar.gz
Algorithm Hash digest
SHA256 181a417cf44abfa695f0988b85361ac72a65834680e49eb21969fa515fdfd4db
MD5 805ee9462ec79a05c4a77852abc25f7d
BLAKE2b-256 6325e5ae50d2323ec8c4a65ea21d6f4a1c4a594217833691810a3fd53d6e7de3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.8.6-cp36-abi3-win_amd64.whl
  • Upload date:
  • Size: 189.9 kB
  • Tags: CPython 3.6+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for singlestoredb-0.8.6-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 095cdb9ec302ddd60ced373bba7ef1b85fd24f8b65f829552c826b72d72fd92c
MD5 199ecf5f1fb7cd259cc8f536dc81201a
BLAKE2b-256 fdbe1ffcf6504966e2930b56ea5887f74632085212c65eb9536f5d460a99d98d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.8.6-cp36-abi3-win32.whl
  • Upload date:
  • Size: 189.3 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.8.6-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 57141a6103a89dce4657b52098403e2f8ce7b2c677199d949c4af3aa977c83ec
MD5 d6759506f0f31518d3c24d5ac0ed0aef
BLAKE2b-256 5ba095bc993c90c13ca9015323c0a06527cf15a35cb00a16eda8062dd3215c96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.6-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca1403396ed2ce7afdcf89cd0b1adc34b736b9b6f166a63a5d766f8e21e219ec
MD5 dfe97048c9b3e0d7bfd4c2301c208e88
BLAKE2b-256 0b821e3614b133eab0566d80b2bd72ffb3d506b83e7a5610db6ec886f4cdf800

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.6-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35259e5679ebf02c2858baf66203162fe52b405c6fbea5fbe77103e8e2f71c2d
MD5 538835f37c8cc4620f6a4717c87984f6
BLAKE2b-256 9f07cc5672b5b95bcdb08476a8cb452ea3414712590c5b72110e6038970521df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.6-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f358652f452eaf43462ad0ec4f434f532d5f710075040edb7dba9da7ba840c8c
MD5 bbbfa22a83d2a7d96c6c01d7f5567b2a
BLAKE2b-256 604ec687564998f02d5c264bc7fcbb08764fff2526e2a2ab2bc19e34653a81bf

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