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
Built Distributions
File details
Details for the file singlestoredb-0.6.0.tar.gz
.
File metadata
- Download URL: singlestoredb-0.6.0.tar.gz
- Upload date:
- Size: 154.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4230571c967c66bbb234ed87faa3d699f2adefe88d4a994be9e0bbe530429d7a |
|
MD5 | 6a5b8633d5dccc2aaa79a9609bb79b38 |
|
BLAKE2b-256 | 3f7cf70f7a360e6ebb631a061c90a9833d6d019ca4756a85de5420fb9e0e7543 |
Provenance
File details
Details for the file singlestoredb-0.6.0-cp36-abi3-win_amd64.whl
.
File metadata
- Download URL: singlestoredb-0.6.0-cp36-abi3-win_amd64.whl
- Upload date:
- Size: 183.8 kB
- Tags: CPython 3.6+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d94615fa19c6f635564c93e259d1bd34e0b258b4a124791eda2c273b8a9c3f1c |
|
MD5 | 8286cb8b4af5b8dc5921c3245fefb9a8 |
|
BLAKE2b-256 | 911bb49ff014488091cba77b34b025411e0764940458a5884352539153738afc |
Provenance
File details
Details for the file singlestoredb-0.6.0-cp36-abi3-win32.whl
.
File metadata
- Download URL: singlestoredb-0.6.0-cp36-abi3-win32.whl
- Upload date:
- Size: 183.3 kB
- Tags: CPython 3.6+, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d38ec67de7a7fb191880fbeb6789f9eb187d0a49d65afb9997d2806ba893905 |
|
MD5 | 5b98eaeb1b9e81e3d95c6a43403bb4bb |
|
BLAKE2b-256 | d13927476fb998e7b982a312a31bdd57f7fdafd54576eb8ffeaa0ab3273f2f8a |
Provenance
File details
Details for the file singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 214.4 kB
- Tags: CPython 3.6+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15688b21ff7276fcf0dde63d2ec5b1a93d387e45154de792bb9698307f3fcf14 |
|
MD5 | 886e5880d59d69e54bd4a2393cbaaa68 |
|
BLAKE2b-256 | a6d9baa43c42ec6a85fdc14929405803bd2d2cc71553297fdce4b8cdd1303d9e |
Provenance
File details
Details for the file singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: singlestoredb-0.6.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 215.1 kB
- Tags: CPython 3.6+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37c2c01d283efdc1622fffb57b4c572e429429a8d7f706660e11a4a7ee51222a |
|
MD5 | 2a2600f4de03ae85be0abf000c0123d3 |
|
BLAKE2b-256 | 734d3819151ed358e8149cb98dd52c3c291374cc4ce5715c1c846350161eab57 |
Provenance
File details
Details for the file singlestoredb-0.6.0-cp36-abi3-macosx_10_9_universal2.whl
.
File metadata
- Download URL: singlestoredb-0.6.0-cp36-abi3-macosx_10_9_universal2.whl
- Upload date:
- Size: 193.7 kB
- Tags: CPython 3.6+, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | faffc2de576856591dd418ebd81429d7b61851cb7582c9c1a8871328f34f9ede |
|
MD5 | fd05ddc5691d8a10fcb0bc815432d92c |
|
BLAKE2b-256 | 208f6c8f5cf26303c5fd6f4770931dadd1835591f46ca59a69484f3e9035bbb8 |