Connect with Python¶
MatrixOne Intelligence supports Python connections and supports two drivers: pymysql and sqlalchemy.
This document will guide you through how to connect to MatrixOne Intelligence through these two python drivers.
Prepare before starting¶
Create instance has been completed.
Python 3.8(or plus) version installed.
#Check Python version number and confirm whether to install it
python3 -V
The MySQL client is installed.
Use pymysql tool to connect to MatrixOne Intelligence service¶
PyMySQL is a Python MySQL client library.
Download and install pymysql and cryptography tools:
pip3 install pymysql pip3 install cryptography #If you are in China mainland and have a low downloading speed, you can speed up the download by following commands. pip3 install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install cryptography -i https://pypi.tuna.tsinghua.edu.cn/simple
Connect to MatrixOne Intelligence Cloud using the MySQL client. Create a new database with name test:
mysql> create database test;
Create a plain text file pymysql_connect_matrixonecloud.py Write the code to the file and modify the relevant database parameters according to your MatrixOne Intelligence database connection string:
#!/usr/bin/python3 import pymysql # Open database connection db = pymysql.connect( host='freetier-01.cn-hangzhou.cluster.matrixonecloud.cn', port=6001, user='585b49fc_852b_4bd1_b6d1_d64bc1d8xxxx:admin:accountadmin', password = "your_password", db='test', ) # prepare a cursor object using cursor() method cursor = db.cursor() # execute SQL query using execute() method. cursor.execute("SELECT VERSION()") # Fetch a single row using fetchone() method. data = cursor.fetchone() print ("Database version : %s " %data) #disconnect from server db.close()
Open a terminal and execute the following commands in the terminal:
> python3 pymysql_connect_matrixonecloud.py Database version: 8.0.30-MatrixOne-v2.0.3
Connect MatrixOne Intelligence using sqlalchemy¶
SQLAlchemy is a Python SQL toolkit and object relational mapper (ORM), which provides application developers with the full functionality of SQL.
Download and install the sqlalchemy tool. The download code example is as follows:
pip3 install sqlalchemy pip3 install pymysql #If you are in China mainland and have a low downloading speed, you can speed up the download by following commands. pip3 install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
Connect to MatrixOne Intelligence using the MySQL client. Create a new database with a name of test, and create a new table with a name of student, and then insert two pieces of data:
mysql> create database test; mysql> use test; mysql> create table student (id int primary key,name varchar(20), age int); mysql> insert into student values (1,"tom", 11), (2,"alice", "10");
Create a plain text file sqlalchemy_connect_matrixonecloud.py Write the code to the file and modify the relevant database parameters according to your MatrixOne Intelligence database connection string:
from sqlalchemy import create_engine from sqlalchemy.orm import declarative_base as _declarative_base from sqlalchemy import Column, Integer, String from sqlalchemy.orm import sessionmaker # Create a connection string to MatrixOne using SQLAlchemy and create an engine (Engine) username="585b49fc_852b_4bd1_b6d1_d64bc1d8xxxx%3Aadmin%3Aaccountadmin" password="xxx" host="freetier-01.cn-hangzhou.cluster.matrixonecloud.cn" port="6001" dbname="test" connection_string = "mysql+pymysql://" +username+":"+password+"@"+host+":"+port+"/"+dbname engine = create_engine(connection_string) Base = _declarative_base() #Define a Python class to map student tables. class Student(Base): __tablename__ = 'student' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) # Create a session to execute a query using sessionmaker Session = sessionmaker(bind=engine) session = Session() #Use SQLAlchemy's query interface to query data in the student table. users = session.query(Student).all() for user in users: print(f'ID: {user.id}, Name: {user.name}, Age: {user.age}')
Open a terminal and execute the following commands in the terminal:
python3 sqlalchemy_connect_matrixonecloud.py ID: 1, Name: tom, Age: 11 ID: 2, Name: alice, Age: 10