diff --git a/notebooks/cloud-functions-template/notebook.ipynb b/notebooks/cloud-functions-template/notebook.ipynb
index 0da65c01..4cbc7123 100644
--- a/notebooks/cloud-functions-template/notebook.ipynb
+++ b/notebooks/cloud-functions-template/notebook.ipynb
@@ -18,7 +18,7 @@
},
{
"cell_type": "markdown",
- "id": "cd7deb95-c7bb-48eb-9cab-ed508b3be5ff",
+ "id": "e0f88a6f-2658-40b4-9356-935a09f5053e",
"metadata": {},
"source": [
"
\n",
@@ -34,6 +34,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "a5564913-7ff8-41bf-b64b-b67971c63fae",
+ "metadata": {},
"source": [
"This Jupyter notebook will help you build your first Cloud Function, showcasing how to leverage the ultra-fast queries of SingleStore to build a responsive API server using FastAPI"
]
@@ -42,6 +43,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "1e394195-29b4-403c-9abf-5d7731349eb6",
+ "metadata": {},
"source": [
"## Create some simple tables\n",
"\n",
@@ -52,6 +54,7 @@
"cell_type": "code",
"execution_count": 1,
"id": "a17bdd3a-16b3-4e19-8a56-6566a169eccb",
+ "metadata": {},
"outputs": [],
"source": [
"%%sql\n",
@@ -69,6 +72,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "af6e2618-de97-4397-b0d2-23e4a4df1d83",
+ "metadata": {},
"source": [
"## Create a Connection Pool\n",
"\n",
@@ -79,6 +83,7 @@
"cell_type": "code",
"execution_count": 2,
"id": "f485e71b-2b05-4696-b22a-cf046fd83090",
+ "metadata": {},
"outputs": [],
"source": [
"from sqlalchemy import create_engine, text\n",
@@ -91,8 +96,9 @@
"with open(ca_cert_path, \"wb\") as f:\n",
" f.write(response.content)\n",
"\n",
+ "sql_connection_string = connection_url.replace(\"singlestoredb\", \"mysql+pymysql\")\n",
"engine = create_engine(\n",
- " f\"{connection_url}?ssl_ca={ca_cert_path}\",\n",
+ " f\"{sql_connection_string}?ssl_ca={ca_cert_path}\",\n",
" pool_size=10, # Maximum number of connections in the pool is 10\n",
" max_overflow=5, # Allow up to 5 additional connections (temporary overflow)\n",
" pool_timeout=30 # Wait up to 30 seconds for a connection from the pool\n",
@@ -118,6 +124,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "ee9058a9-34a5-46fc-8b12-d30cbb8c3340",
+ "metadata": {},
"source": [
"## Setup Environment\n",
"\n",
@@ -128,6 +135,7 @@
"cell_type": "code",
"execution_count": 3,
"id": "66df8f0c-70c6-4f06-9e64-ef06961cca3a",
+ "metadata": {},
"outputs": [],
"source": [
"from fastapi import FastAPI, HTTPException\n",
@@ -153,6 +161,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "96760949-5ab2-474d-80ca-d23b5dcc52f7",
+ "metadata": {},
"source": [
"## Define FastAPI App\n",
"\n",
@@ -163,6 +172,7 @@
"cell_type": "code",
"execution_count": 4,
"id": "3087dbe6-57ce-4410-a42f-5b0fe90add90",
+ "metadata": {},
"outputs": [],
"source": [
"app = FastAPI()\n",
@@ -178,7 +188,6 @@
" try:\n",
" return await run_in_thread(get_items_query)\n",
" except Exception as e:\n",
- "\n",
" raise HTTPException(status_code=500, detail=f\"Error fetching all items: {str(e)}\")\n",
"\n",
"# Insert an item\n",
@@ -227,6 +236,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "c3d9ed07-4b55-4d17-aabb-e11b399109d1",
+ "metadata": {},
"source": [
"## Start the FastAPI server\n",
"\n",
@@ -237,6 +247,7 @@
"cell_type": "code",
"execution_count": 5,
"id": "ff002c7d-9f1c-40e5-b82a-c9176251dc99",
+ "metadata": {},
"outputs": [],
"source": [
"import singlestoredb.apps as apps\n",
@@ -247,6 +258,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "fabe76b7-e6a0-43a0-8d9e-aa79bd7d3021",
+ "metadata": {},
"source": [
"## Publish Cloud Function\n",
"\n",
@@ -255,7 +267,7 @@
},
{
"cell_type": "markdown",
- "id": "386f804b-f3a9-4452-9575-b87c917bbbf8",
+ "id": "55513fb9-f288-4cf1-b371-a71439bb1a31",
"metadata": {},
"source": [
"\n",
@@ -263,6 +275,31 @@
]
}
],
+ "metadata": {
+ "jupyterlab": {
+ "notebooks": {
+ "version_major": 6,
+ "version_minor": 4
+ }
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.6"
+ }
+ },
"nbformat": 4,
"nbformat_minor": 5
}
diff --git a/notebooks/create-dash-app/notebook.ipynb b/notebooks/create-dash-app/notebook.ipynb
index b3c5ccfb..8aed0b8a 100644
--- a/notebooks/create-dash-app/notebook.ipynb
+++ b/notebooks/create-dash-app/notebook.ipynb
@@ -18,7 +18,7 @@
},
{
"cell_type": "markdown",
- "id": "1d98a67c-972c-43fd-8947-e251dc1b5b96",
+ "id": "c5893325-17c9-495f-862f-049072c30806",
"metadata": {},
"source": [
"
\n",
@@ -34,6 +34,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "df860ca4-6db8-4ded-a061-30be438c4add",
+ "metadata": {},
"source": [
"This Jupyter notebook will help you build your first real time Dashboard, showcasing how to leverage the ultra-fast queries of SingleStore to build a great visual experience using Plotly's DashApps."
]
@@ -53,6 +54,7 @@
"cell_type": "code",
"execution_count": 1,
"id": "d218d020-b9dc-4419-961d-2232ca0893f8",
+ "metadata": {},
"outputs": [],
"source": [
"%%sql\n",
@@ -70,6 +72,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "c6e492c6-74c8-488f-a456-fae59af0c69d",
+ "metadata": {},
"source": [
"## Insert some data\n",
"\n",
@@ -80,6 +83,7 @@
"cell_type": "code",
"execution_count": 2,
"id": "98e60d97-42ce-4600-8e35-556c70f9d4c2",
+ "metadata": {},
"outputs": [],
"source": [
"%%sql\n",
@@ -111,6 +115,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "beb57814-ad38-4065-a730-59576f6a72e3",
+ "metadata": {},
"source": [
"## Create a Connection Pool\n",
"\n",
@@ -121,6 +126,7 @@
"cell_type": "code",
"execution_count": 3,
"id": "f030ce86-4940-4014-8227-6b8c9cb56246",
+ "metadata": {},
"outputs": [],
"source": [
"from sqlalchemy import create_engine, text\n",
@@ -133,8 +139,9 @@
"with open(ca_cert_path, \"wb\") as f:\n",
" f.write(response.content)\n",
"\n",
+ "sql_connection_string = connection_url.replace(\"singlestoredb\", \"mysql+pymysql\")\n",
"engine = create_engine(\n",
- " f\"{connection_url}?ssl_ca={ca_cert_path}\",\n",
+ " f\"{sql_connection_string}?ssl_ca={ca_cert_path}\",\n",
" pool_size=10, # Maximum number of connections in the pool is 10\n",
" max_overflow=5, # Allow up to 5 additional connections (temporary overflow)\n",
" pool_timeout=30 # Wait up to 30 seconds for a connection from the pool\n",
@@ -149,6 +156,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "dd87d196-3d52-4f3a-8dd4-d5f3540b051f",
+ "metadata": {},
"source": [
"## Create a line chart\n",
"\n",
@@ -161,6 +169,7 @@
"cell_type": "code",
"execution_count": 4,
"id": "712cd20d-6f2d-4c5a-9094-11b611ce622d",
+ "metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
@@ -192,6 +201,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "cc363aa0-a8d5-4f7e-bdae-5a22d56e0bcf",
+ "metadata": {},
"source": [
"## Create a pie chart\n",
"\n",
@@ -202,6 +212,7 @@
"cell_type": "code",
"execution_count": 5,
"id": "79aa80ef-4a49-4238-87fb-f90a16ba4e42",
+ "metadata": {},
"outputs": [],
"source": [
"def generate_pie_chart(date):\n",
@@ -222,6 +233,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "94586a2e-76b2-48f8-8dbd-ff7038443ae1",
+ "metadata": {},
"source": [
"## Define the Dash App Layout and Callbacks\n",
"\n",
@@ -233,6 +245,7 @@
"cell_type": "code",
"execution_count": 6,
"id": "de733262-834b-48b6-b885-78dfc5ebb452",
+ "metadata": {},
"outputs": [],
"source": [
"from singlestoredb import apps\n",
@@ -308,6 +321,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "f287e202-704b-4eb5-8290-fb08ba9a493c",
+ "metadata": {},
"source": [
"## Start the Dash App server\n",
"\n",
@@ -318,6 +332,7 @@
"cell_type": "code",
"execution_count": 7,
"id": "69632c1b-f981-4338-9f91-ca8ae746cd73",
+ "metadata": {},
"outputs": [],
"source": [
"connectionInfo = await apps.run_dashboard_app(app)"
@@ -327,6 +342,7 @@
"attachments": {},
"cell_type": "markdown",
"id": "4fe4abd0-d52f-475a-89a4-d518f2b37d0d",
+ "metadata": {},
"source": [
"## Publish Dashboard\n",
"\n",
@@ -335,7 +351,7 @@
},
{
"cell_type": "markdown",
- "id": "5da7ba27-6006-48c2-92a5-ea2bd2e609a3",
+ "id": "8eb7fab3-c714-4b3b-93a7-ce8a9836ded2",
"metadata": {},
"source": [
"\n",
@@ -343,6 +359,31 @@
]
}
],
+ "metadata": {
+ "jupyterlab": {
+ "notebooks": {
+ "version_major": 6,
+ "version_minor": 4
+ }
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.6"
+ }
+ },
"nbformat": 4,
"nbformat_minor": 5
}