Important
New database features are no longer connected to engine versions; features are now enabled independently during scheduled update windows, and “major” and “minor” releases no longer exist in Helios. Please visit the release notes to view the latest features available in your database clusters.
Connect with SQLAlchemy
On this page
You can connect to your SingleStore Helios deployments from SQLAlchemy using the SingleStore SQLAlchemy dialect (singlestoredb://).
Remarks
-
Use the SingleStore dialect (
singlestoredb://) in thecreate_statement.engine() -
Use one of the supported Python libraries.
SingleStore recommends using the SingleStore Python Client.
Example
The following example connects to a SingleStore deployment using SQLAlchemy and returns all the rows in a table named strg.
This example uses the following connection parameters:
-
Dialect:
singlestoredb:// -
SingleStore database username:
s2user -
Password of the SingleStore database user:
passkey -
Hostname of the SingleStore deployment:
svchostRefer to SingleStore Helios Endpoints to determine the endpoint (
host:port) of your deployment. -
Port:
3306 -
Database name:
dbTest
-
Run the following command in the SingleStore command line:
CREATE TABLE strg (ID INT, Name VARCHAR(20));INSERT INTO strg VALUES (1, "sam_duke");INSERT INTO strg VALUES (2, "adam_west");INSERT INTO strg VALUES (3, "anna_moore");SELECT * FROM strg;+----+------------+ | ID | Name | +----+------------+ | 1 | sam_duke | | 2 | adam_west | | 3 | anna_moore | +----+------------+ -
Create a
.file (say pyTest.py py), and add the following code to the file: from sqlalchemy import create_engine, textengine = create_engine('singlestoredb://s2user:passkey@svchost/dbTest')conn = engine.connect()result = conn.execute(text("SELECT * FROM strg"))for row in result:print(row) -
Run the following command:
python3 pyTest.py(3, 'anna_moore') (2, 'adam_west') (1, 'sam_duke')
The following examples perform CRUD operations using the same connection parameters.
Create Operation Example
Add the following code to a . file (say ct.
from sqlalchemy import create_engine, textengine = create_engine('singlestoredb://s2user:passkey@svchost:3306/dbTest')conn = engine.connect()conn.execute(text("CREATE TABLE stock (ID INT, Code VARCHAR(4), Qty INT)"))conn.execute(text("INSERT INTO stock VALUES (1,'xvfg',23)"))conn.execute(text("INSERT INTO stock VALUES (2,'dtsi',12)"))conn.execute(text("INSERT INTO stock VALUES (3,'rtky',8)"))conn.close()
Run the following command:
python3 ct.py
Read Operation Example
Add the following code to a . file (say rt.
from sqlalchemy import create_engine, textengine = create_engine('singlestoredb://s2user:passkey@svchost:3306/dbTest')conn = engine.connect()result = conn.execute(text("SELECT * FROM stock"))for row in result:print(row)conn.close()
Run the following command:
python3 rt.py
(1, 'xvfg', 23)
(2, 'dtsi', 12)
(3, 'rtky', 8)Update Operation Example
Add the following code to a . file (say ut.
from sqlalchemy import create_engine, textengine = create_engine('singlestoredb://s2user:passkey@svchost:3306/dbTest')conn = engine.connect()conn.execute(text("UPDATE stock SET Qty = 10 WHERE Code = 'rtky'"))result = conn.execute(text("SELECT * FROM stock"))for row in result:print(row)conn.close()
Run the following command:
python3 ut.py
(3, 'rtky', 10)
(1, 'xvfg', 23)
(2, 'dtsi', 12)Delete Operation Example
Add the following code to a . file (say dt.
from sqlalchemy import create_engine, textengine = create_engine('singlestoredb://s2user:passkey@svchost:3306/dbTest')conn = engine.connect()conn.execute(text("DELETE FROM stock WHERE code = 'rtky'"))result = conn.execute(text("SELECT * FROM stock"))for row in result:print(row)conn.close()
Run the following command:
python3 dt.py
(1, 'xvfg', 23)
(2, 'dtsi', 12)Refer to SQLAlchemy SQL Expression Language Tutorial for more examples.
Troubleshooting
Error: ModuleNotFoundError: No module named 'MySQLdb'
Solution: Install a supported Python library, for example the SingleStore Python Client.
References
Last modified: