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

Uploaded Source

Built Distributions

singlestoredb-0.9.2-cp36-abi3-win_amd64.whl (235.6 kB view details)

Uploaded CPython 3.6+ Windows x86-64

singlestoredb-0.9.2-cp36-abi3-win32.whl (235.3 kB view details)

Uploaded CPython 3.6+ Windows x86

singlestoredb-0.9.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.3 kB view details)

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

singlestoredb-0.9.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (276.6 kB view details)

Uploaded CPython 3.6+ manylinux: glibc 2.17+ ARM64

singlestoredb-0.9.2-cp36-abi3-macosx_10_9_universal2.whl (248.3 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-0.9.2.tar.gz
  • Upload date:
  • Size: 200.4 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.2.tar.gz
Algorithm Hash digest
SHA256 f6ae35989a05bfd91e10c14bc75cb950281f34e65fb09d8f16f9546fd2af3c6a
MD5 7d5bb5e30d0785c4e6bc6d51445e7052
BLAKE2b-256 91810e78185c1321f7095652b06c85489e4e1e0b377936817d703594e7066f6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.2-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b11bc7d67d71d41c541b73f14cce184254b370352f95649d3189507dc45b7213
MD5 93b46184433f5de4e89c4c401526a91c
BLAKE2b-256 7e24d96ba57c1b0d72d8e1125a22eddbc5ec7781781cc33adca4064a33ebbd8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-0.9.2-cp36-abi3-win32.whl
  • Upload date:
  • Size: 235.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.9.2-cp36-abi3-win32.whl
Algorithm Hash digest
SHA256 0fa493ad999daa99e22baa835f927127f82f5b3c7e5b46ff0488dba9f27480f4
MD5 31074307d3b9698cb586955d43f463a7
BLAKE2b-256 e31ce03c92e6aac5e2a29bb02f1348957af97576dba66193bc8176ee89806c7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a25bdfedf1913bc5d950213f84e9552c9f266ce63fcc75971ee0968703c0a743
MD5 e31253b08cae3897da7e81479900ef4a
BLAKE2b-256 74f8dd6e3f94d6ece01060756f167493f025de6a53ea109eba61320cef9501a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9bc4a5e38ae55d3a602c533bfd3824f75555b6c6d1f0c5ed66a593e9f9770c65
MD5 79ffeea663bc27e6b566e47c4772f025
BLAKE2b-256 ec9c883578af808c0fa81704cdb392e774aebacda2e399783ea968058db232bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-0.9.2-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 eff2da1a319d315062cb1678604410351135158e5114470b17cdd5286079418d
MD5 6452f4a1e28d4e2eb3e5ed9b094c9428
BLAKE2b-256 03a14648269e0a1ff949a9dae070192033d41229ead4999ec33d6135629eaad8

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