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

Uploaded Source

Built Distributions

singlestoredb-0.8.8-cp36-abi3-win_amd64.whl (192.8 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.8.8-cp36-abi3-win32.whl (192.5 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.8.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (233.6 kB view details)

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

singlestoredb-0.8.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (233.7 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.8.8-cp36-abi3-macosx_10_9_universal2.whl (206.3 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.8.8.tar.gz
  • Upload date:
  • Size: 163.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.8.8.tar.gz
Algorithm Hash digest
SHA256 d0434cd6ba862fbae82df15247dbeccdd301f9c5f751737e578e4b40b599b215
MD5 caa882099cc9684497041cf87e7811d5
BLAKE2b-256 87846004e6c2ec2d12f13a178845e70d10d1d1886259af79285690151c7b4df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.8-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b64ef3b8862d26e54084213b5d9f2bb21cd8674d1a287021f5972fa88f126659
MD5 b304159f7e39ea1d80d8bbf64cf947ef
BLAKE2b-256 89142c274383d725009bbca0d4f59a72bee863de2eaebb4a7483c43bed285d2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.8.8-cp36-abi3-win32.whl
  • Upload date:
  • Size: 192.5 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.8-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 e0ecc399eeb0065bfe8fae24031cc8358de195b0a5162a79ab56af67c2575237
MD5 be98a71b7d91bd7cdfc1a611cfbd748b
BLAKE2b-256 4b456e94ce52d688bba9f500cc3c65a4253dee433ca33e8207a0cc30615230f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc3ff12bd34888daf22b780348031855bfb3bde618bbfc0b925751bd9b30a787
MD5 bc8bad4b1b088429b6b8e4cf930b7ef8
BLAKE2b-256 e92c8331de9a79112c73d1ce0755184331f88b856adab428e28083dfae9f7111

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2621673e8910680231a447ff3a508b5cc898aae9b8a67fd2860408a3bcb0d88a
MD5 49b401db1a6e990c76b270e202f7baad
BLAKE2b-256 df109e881ae83e190b09232c75ac3893ac355e0ab8493725e14fca7d3568c073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.8.8-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 93b8c98ef553e9b324c9b78c6e6fcd78aa8fbfe681010829c374294509b3c329
MD5 ed4f09b8adaffa34435961cb2d480b0f
BLAKE2b-256 a90299508a503b713269af1b93cea05af97a0aa4fa94b2bd1c771e429728eeb4

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