Feed: SingleStore Blog.
Author: .
Ilove notebooks as I can easily emulate my code, visualize its output and collaborate with my colleagues.
Today, I want to show you a quick Python Jupyter notebook tutorial on how to connect to SingleStoreDB from your local notebook. I also give you some code snippets on how to write into and read from SingleStoreDB. I will finish with a quick visualization code snippet using Plotly.
Intro
Here are a few things to know before starting:
-
I am using a csv file from the gapminder data that you can download here.
-
I would recommend using Visual Studio Code or Anaconda.
-
I uploaded the notebook that can be downloaded here.
Get the Right Libraries
import pymysql
import pandas as pd
from pandas.io import sql
from sqlalchemy import Column, VARCHAR
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
import sqlalchemy
import pandas as pd
import plotly.express as px
Connect to a SingleStoreDB Database
My second cell is to set the variables for my connection:
# I set the username, password and database name as variables
UserName='Your user name'
Password='Your Password'
DatabaseName='Your database'
URL='Your URL'
Where Can You Find the URL?
The URL you need to enter will look like the following:
svc-df0gt59a-af3a-4ty5-9ff2-13b8h81c155-dml.aws-oregon-2.svc.singlestore.com
If you have a workspace, you can access the connection string by clicking on your workspace, and then the Connect button:

The next step is to find the connection string URL:

The third cell in my notebook is to set the connection to the database:
# Creating the database connection
db_connection_str = "mysql+pymysql://"+UserName+ ":" +Password
+"@"+URL+"/"+ DatabaseName
db_connection = create_engine(db_connection_str)
Insert a Dataframe Into a Newly Created Table
First, you need to load the csv file into a dataframe (fourth cell):
df_data = pd.read_csv("gapminder_tidy.csv")
df_data
Second, you can load that dataframe into an existing or new table (it will create the table in SingleStoreDB):
# Insert whole DataFrame into MySQL
df_data.to_sql('gapmindertidy', con = db_connection, if_exists = 'append',
index = False, chunksize = 1000, dtype ={
'country': sqlalchemy.types.NVARCHAR(length=255),
'continent': sqlalchemy.types.NVARCHAR(length=255),
'year': sqlalchemy.types.INTEGER(),
'metric': sqlalchemy.types.NVARCHAR(length=255),
'value': sqlalchemy.types.Float(precision=3, asdecimal=True)})
If you switch to SingleStoreDB portal, you should see the following result for a “Select * from gapmindertidy” command:

Read a Table from SingleStoreDB
Now, you can read the table you just created with the following command:
DataFromDB = pd.read_sql('SELECT * FROM gapmindertidy', con=db_connection)
DataFromDB
You should see the following result:

Visualize Data Using Plotly
Here is a code snippet to do some visualization on this table:
df_gdp_oceania = DataFromDB.query("continent=='Oceania' &
metric=='gdpPercap'").sort_values(['country','year'],ascending = [True,
True])
fig = px.line(df_gdp_oceania, x = "year", y = "value", color = "country")
fig.show()
That code snippet should show the following graph once executed:

Voila, you are all set to do more serious things with SingleStoreDB using Python and notebooks!