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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.6+ Windows x86-64

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

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.9.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.9.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.9.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.9.0.tar.gz.

File metadata

  • Download URL: singlestoredb-0.9.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.9.0.tar.gz
Algorithm Hash digest
SHA256 94707e392050e64de37c9a795ca25012a0d35dc07ad2a027fbd0ab9aca7b1dc2
MD5 fdc10c7b00fef357d5c9a29b9b762e75
BLAKE2b-256 890be328c787ca4a8ea0f37432fa7fae9c0f4a125c7d46b3e7bb67709d0536bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.0-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 93683b70038d30eec4b1f26892cda593c985b096d7b85c717c2f7893487b01a2
MD5 16d170943294783f9379cd38984e78cd
BLAKE2b-256 407b25d9915c8b319db43baff9b98efbb6c87297d8dd792ac0ad51f5cde9e08d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.9.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.9.0-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 3f63a277e17554ea7e13a059a6faf640d3cf5969c10e3d8e009256b4c72c3db9
MD5 4f7f87bd1b86234625eecbb15bfcb852
BLAKE2b-256 8827536b2576f018a73bdc4c9621a044e7339bac2ed1be04fad18a06bf0b288f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f60198c4c6a3bc24de403a10b72b859a6a8669c9d32d9a46ed18f8bd448c935
MD5 ff4527db1915bb5e5d7687cbbe67d191
BLAKE2b-256 559aeb92850cb361fc91db6822df7878a28c9fa3d6ee34a463ffd4b24567442b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8dee447a432342df2fb49693f0aa2f1c24121d719b567fd9fe9e1cf3e639e16
MD5 5c14440a1cc704c6dceb47fa1aa54dd0
BLAKE2b-256 a93035fe75fb281a5b0605605af27e7735275467831a2579dff8228a76bb7e3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.0-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 25c795c64f2b359a68fcb3cf5b3d028f8d49c2fab5ad2d88a95312c372e11156
MD5 8c5f30eb63e9cec1de8ac7d14b618dfd
BLAKE2b-256 da4cc30674af94b83b3014a221716919e314cc6b18a2d922f41777fa980c2896

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