
{"id":5915,"date":"2022-07-05T08:44:08","date_gmt":"2022-07-05T07:44:08","guid":{"rendered":"https:\/\/dasini.net\/blog\/?p=5915"},"modified":"2025-07-11T09:13:12","modified_gmt":"2025-07-11T08:13:12","slug":"interactively-explore-visualize-your-mysql-heatwave-data-with-apache-zeppelin","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2022\/07\/05\/interactively-explore-visualize-your-mysql-heatwave-data-with-apache-zeppelin\/","title":{"rendered":"Interactively explore &#038; visualize your MySQL HeatWave data with Apache Zeppelin"},"content":{"rendered":"\n<p><strong>MySQL<\/strong> &#8211; <em>The world&rsquo;s most popular open source database<\/em> &#8211; is a <strong>very good and safe choice as a transactional database<\/strong>, <strong>on-premise<\/strong> and in the <strong>cloud<\/strong>.<\/p>\n\n\n\n<p>In the article &#8211; <a href=\"https:\/\/dasini.net\/blog\/2022\/06\/09\/explore-visualize-your-mysql-heatwave-data-with-superset\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Explore &amp; visualize your MySQL HeatWave data with Superset\"><\/a><a href=\"https:\/\/dasini.net\/blog\/2022\/06\/09\/explore-visualize-your-mysql-heatwave-data-with-superset\/\"><strong>Explore &amp; visualize your MySQL HeatWave data with Superset<\/strong><\/a> &#8211; I introduced <a href=\"https:\/\/www.oracle.com\/mysql\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL HeatWave\"><strong>MySQL HeatWave<\/strong><\/a> &#8211; a fully <strong>managed database service<\/strong>, that combines <strong>transactions<\/strong>, <strong>analytics<\/strong>, and <strong>machine learning<\/strong> services into one MySQL Database, delivering real-time, secure analytics without the complexity, latency, and cost of ETL duplication.<br>MySQL HeatWave is a native MySQL solution thus <strong>current MySQL applications work without changes<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"341\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML-800x341.png?resize=800%2C341\" alt=\"\" class=\"wp-image-5803\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?resize=800%2C341&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?resize=300%2C128&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?resize=768%2C327&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?w=1012&amp;ssl=1 1012w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Enabling a HeatWave Cluster also provides access to <span style=\"text-decoration: underline;\">HeatWave Machine Learning<\/span><\/strong> (<strong>ML<\/strong>), which is a fully managed, highly scalable, cost-efficient, machine learning solution for data stored in MySQL. <br>HeatWave ML provides a simple SQL interface for training and using predictive machine learning models, which can be used by novice and experienced ML practitioners alike. <br>Machine learning expertise, specialized tools, and algorithms are not required. <br>With HeatWave ML, you can train a model with a single call to an SQL routine.&nbsp;<\/p>\n\n\n\n<p>Below some numbers comparing <strong><a href=\"https:\/\/dev.mysql.com\/doc\/heatwave\/en\/heatwave-machine-learning.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL HeatWave ML\">MySQL HeatWave ML<\/a> vs AWS Redshift ML<\/strong>:<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"416\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-25x-faster-than-Redshift-ML.png?resize=800%2C416&#038;ssl=1\" alt=\"MySQL HeatWave  ML is 25x faster than Redshift ML\n25x faster on average without compromising accuracy\" class=\"wp-image-5919\" style=\"width:600px;height:312px\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-25x-faster-than-Redshift-ML.png?resize=800%2C416&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-25x-faster-than-Redshift-ML.png?resize=300%2C156&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-25x-faster-than-Redshift-ML.png?resize=768%2C400&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-25x-faster-than-Redshift-ML.png?w=1093&amp;ssl=1 1093w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\"><span style=\"text-decoration: underline;\"><strong>MySQL HeatWave ML is 25x faster than Redshift ML<\/strong><\/span><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"463\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-1-of-cost-of-Redshift-ML.png?resize=800%2C463&#038;ssl=1\" alt=\"MySQL HeatWave  ML is 1% of cost of Redshift ML\n1% of cost and no additional cost for MySQL HeatWave customers\" class=\"wp-image-5920\" style=\"width:600px;height:347px\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-1-of-cost-of-Redshift-ML.png?resize=800%2C463&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-1-of-cost-of-Redshift-ML.png?resize=300%2C174&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-1-of-cost-of-Redshift-ML.png?resize=768%2C445&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/MySQL-HeatWave-ML-is-1-of-cost-of-Redshift-ML.png?w=989&amp;ssl=1 989w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\"><span style=\"text-decoration: underline;\"><strong>MySQL HeatWave ML is 1% of cost of Redshift ML<\/strong><\/span><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.oracle.com\/a\/ocom\/img\/rc24-performance-fig1.png?ssl=1\" alt=\"Better performance with HeatWave ML with larger cluster size\" style=\"width:1008px;height:368px\"\/><figcaption class=\"wp-element-caption\"><span style=\"text-decoration: underline;\"><strong>Better performance with HeatWave ML with larger cluster size<\/strong><\/span><\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For more details &amp; raw numbers read:&nbsp;<a href=\"https:\/\/www.oracle.com\/mysql\/heatwave\/performance\/\" target=\"_blank\" rel=\"noreferrer noopener\">Performance comparison of HeatWave ML with Redshift ML<\/a>.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>MySQL HeatWave is currently available on <a href=\"https:\/\/www.oracle.com\/mysql\/heatwave\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL HeatWave on OCI\">Oracle Cloud Infrastructure<\/a> (OCI). Availability on Amazon Web Services (AWS) and Microsoft Azure is coming (<a href=\"https:\/\/thestack.technology\/oracle-heatwave-is-going-multicloud-how-hot-will-things-get\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle\u2019s \u201cHeatWave\u201d is going multicloud: How hot will things get for MySQL?\">Oracle\u2019s \u201cHeatWave\u201d is going multicloud: How hot will things get for MySQL?<\/a>).<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>MySQL HeatWave ML can also takes models tuned in MySQL and use them to answer queries from popular machine learning notebook services for code and data, such as <a href=\"https:\/\/jupyter.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Jupyter - Free software, open standards, and web services for interactive computing across all programming languages\">Jupyter<\/a> and <a href=\"https:\/\/zeppelin.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Apache Zeppelin -  Apache Zeppelin Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala, Python, R and more.\">Apache Zeppelin<\/a>.<\/p>\n\n\n\n<p><strong>Apache Zeppelin<\/strong> is an open source web-based notebook that allows data ingestion, data discovery, data analytics, data visualization and data collaboration.<br>Apache Zeppelin supports many interpreters such as <a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL - The world's most popular open source database\">MySQL<\/a>, Python, JDBC, Shell, Spark, \u2026<br>More: <a href=\"https:\/\/zeppelin.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Apache Zeppelin\">https:\/\/zeppelin.apache.org\/<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"455\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_notebook.png?resize=800%2C455&#038;ssl=1\" alt=\"\" class=\"wp-image-5933\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_notebook.png?resize=800%2C455&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_notebook.png?resize=300%2C171&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_notebook.png?resize=768%2C437&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_notebook.png?w=1384&amp;ssl=1 1384w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"203\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_MHW_Iris_notebook.png?resize=567%2C203&#038;ssl=1\" alt=\"\" class=\"wp-image-5934\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_MHW_Iris_notebook.png?w=567&amp;ssl=1 567w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin_MHW_Iris_notebook.png?resize=300%2C107&amp;ssl=1 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>In this article I will show you how to properly configure <strong>Apache Zeppelin<\/strong> in order to take advantage of the <strong>Analytics and Machine Learning capabilities<\/strong> of <a href=\"https:\/\/www.oracle.com\/mysql\/heatwave\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>MySQL HeatWave<\/strong><\/a> the MySQL in-memory query accelerator.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">MySQL HeatWave<\/h1>\n\n\n\n<p>I&rsquo;m using <a href=\"https:\/\/www.oracle.com\/cloud\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle Cloud Infrastructure (OCI) - The next-generation cloud designed to run any application, faster and more securely, for less.\">OCI<\/a> and I will not go into all the installation details (<a href=\"https:\/\/dev.mysql.com\/doc\/heatwave\/en\/heatwave-before-you-begin.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Before you begin using MySQL HeatWave, the following is assumed\">RTFM<\/a>). Below the main steps.<\/p>\n\n\n\n<p>Using your favorite Internet browser, open your OCI console, select a compartment and go to <em>Databases \/ MySQL \/ DB System<\/em>s.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/07\/OCI_Create_MDS_edited.png\" alt=\"\"\/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Create a DB Systems and select <strong>HeatWave<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/04\/MySQL-Database-Service-Choice.png\" alt=\"\"\/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The rest is pretty straightforward!<\/p>\n\n\n\n<p>Please note the <em><strong>Show Advanced Options<\/strong><\/em> link at the bottom of the page. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/07\/OCI_create_MDS_form6_Show_advanced_options.png\" alt=\"\"\/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>It&rsquo;s <em><strong>Data Import<\/strong><\/em> tab is useful if you want to create an instance with data. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/07\/OCI_create_MDS_form10_FINAL_edited.png\" alt=\"\"\/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>More information in this article: <a href=\"http:\/\/dasini.net\/blog\/2021\/08\/31\/discovering-mysql-database-service-episode-5-create-a-mysql-db-system-from-a-mysql-shell-dump\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Discovering MySQL Database Service \u2013 Episode 5 \u2013 Create a MySQL DB system from a MySQL Shell dump\"><strong><em>Discovering MySQL Database Service \u2013 Episode 5 \u2013 Create a MySQL DB system from a MySQL Shell dump<\/em><\/strong><\/a><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Now we must add the HeatWave cluster.<\/p>\n\n\n\n<p>On the left, under <strong><em>Resources<\/em><\/strong> click <strong><em>HeatWave<\/em><\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"107\" height=\"237\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-MDS-Resources-HeatWave.png?resize=107%2C237\" alt=\"\" class=\"wp-image-5785\"\/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Add the HeatWave Cluster&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"151\" height=\"30\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeaWave-Add-HeatWave-Cluster-button.png?resize=151%2C30\" alt=\"\" class=\"wp-image-5787\"\/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Set the Node Count <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"252\" data-id=\"5789\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster-800x252.png?resize=800%2C252\" alt=\"\" class=\"wp-image-5789\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=800%2C252&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=300%2C95&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=768%2C242&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?w=1199&amp;ssl=1 1199w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>I would recommend to estimate the node count, click <strong><em>Estimate Node Count<\/em><\/strong> then <strong><em>Generate Estimate<\/em><\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"635\" height=\"212\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeatWave-Estimate-Node-Count.png?resize=635%2C212\" alt=\"\" class=\"wp-image-5793\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeatWave-Estimate-Node-Count.png?w=635&amp;ssl=1 635w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeatWave-Estimate-Node-Count.png?resize=300%2C100&amp;ssl=1 300w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Copy the <strong><em>Load Command<\/em><\/strong>. <br>It will be used to load the chosen data into the HeatWave cluster.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Apply the node count estimate:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"632\" height=\"623\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeatWave-Apply-Node-Count-Estimate.png?resize=632%2C623\" alt=\"\" class=\"wp-image-5795\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeatWave-Apply-Node-Count-Estimate.png?w=632&amp;ssl=1 632w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeatWave-Apply-Node-Count-Estimate.png?resize=300%2C296&amp;ssl=1 300w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Finally create the cluster by pushing the button: <strong><em>Add HeatWave Cluster<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"152\" height=\"32\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeaWave-Add-HeatWave-Cluster-blue-button.png?resize=152%2C32\" alt=\"\" class=\"wp-image-5790\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeaWave-Add-HeatWave-Cluster-blue-button.png?w=152&amp;ssl=1 152w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HeaWave-Add-HeatWave-Cluster-blue-button.png?resize=150%2C32&amp;ssl=1 150w\" sizes=\"auto, (max-width: 152px) 100vw, 152px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>When the cluster is running, the very last step is to offload the data to the cluster by running the stored procedure (i.e. the \u00ab\u00a0Load Command\u00a0\u00bb) copied previously using your favorite MySQL client. <\/p>\n\n\n\n<p>e.g. Offload to the HeatWave cluster all the tables inside the airportdb schema:<br><strong>CALL sys.heatwave_load(JSON_ARRAY(&lsquo;airportdb&rsquo;), NULL);<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"142\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HW-Load-Command-800x142.png?resize=800%2C142\" alt=\"\" class=\"wp-image-5824\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HW-Load-Command.png?resize=800%2C142&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HW-Load-Command.png?resize=300%2C53&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HW-Load-Command.png?resize=768%2C137&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-HW-Load-Command.png?w=1007&amp;ssl=1 1007w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Now you have a MySQL HeatWave cluster up and running with some data loaded into  the cluster;<br>Cheers!<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Apache Zeppelin<\/h1>\n\n\n\n<p>I assume that you already know what is Apache Zeppelin. If not&nbsp;<a href=\"https:\/\/zeppelin.apache.org\/docs\/0.10.1\/quickstart\/install.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Apache Zeppelin Documentation\">RTFM<\/a>.<\/p>\n\n\n\n<p>Please note this is a test installation,&nbsp;<em>probably<\/em> not suitable for a production environment.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<p>Apache Zeppelin officially supports and is tested, among other, on Ubuntu 20.04, so I\u2019ve installed Zeppelin on a&nbsp;<a href=\"https:\/\/www.oracle.com\/cloud\/compute\/virtual-machines\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"OCI VMs\">VM<\/a>&nbsp;Ubuntu 20.04 from&nbsp;<a href=\"https:\/\/www.oracle.com\/cloud\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle Cloud Infrastructure\">Oracle Cloud Infrastructure<\/a>&nbsp;(OCI).<\/p>\n\n\n\n<p>In addition to the OS, you also need the good version of OpenJDK or Oracle JDK.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">$ lsb_release -a\nNo LSB modules are available.\nDistributor ID:\tUbuntu\nDescription:\tUbuntu 20.04.4 LTS\nRelease:\t20.04\nCodename:\tfocal<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">$ java -version\nopenjdk version \"17.0.3\" 2022-04-19\nOpenJDK Runtime Environment (build 17.0.3+7-Ubuntu-0ubuntu0.20.04.1)\nOpenJDK 64-Bit Server VM (build 17.0.3+7-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<p>I&rsquo;m good to go!<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Binary<\/h2>\n\n\n\n<p>I downloaded the <strong>binary package with all interpreters<\/strong>. Available <a href=\"https:\/\/zeppelin.apache.org\/download.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Download Apache Zeppelin\">here<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">wget https:\/\/dlcdn.apache.org\/zeppelin\/zeppelin-0.10.1\/zeppelin-0.10.1-bin-all.tgz<\/code><\/pre>\n\n\n\n<p>Unpack it in a directory of your choice and you&rsquo;re ready to go!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">tar xvf zeppelin-0.10.1-bin-all.tgz\nmv zeppelin-0.10.1-bin-all\/ zeppelin\ncd zeppelin<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Firewalls<\/h2>\n\n\n\n<p>Depending on your architecture, you may have to deal with some firewalls.<\/p>\n\n\n\n<p>In <a href=\"https:\/\/www.oracle.com\/cloud\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle Cloud Infrastructure\">OCI<\/a> I must update my <em>Ingress Rules<\/em> for the <em><a href=\"https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/Network\/Concepts\/securitylists.htm\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"OCI Security List\">Default Security List<\/a><\/em> (OCI virtual firewall) for the protocol TCP and the port you are going to use, 8080 in this article:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"233\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-Networking-VCN-Security-List-Ingress-Rules-Apache-Zeppelin-1310x382-1.png?resize=800%2C233&#038;ssl=1\" alt=\"\" class=\"wp-image-5962\" style=\"width:600px;height:175px\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-Networking-VCN-Security-List-Ingress-Rules-Apache-Zeppelin-1310x382-1.png?resize=800%2C233&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-Networking-VCN-Security-List-Ingress-Rules-Apache-Zeppelin-1310x382-1.png?resize=300%2C87&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-Networking-VCN-Security-List-Ingress-Rules-Apache-Zeppelin-1310x382-1.png?resize=768%2C224&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/OCI-Networking-VCN-Security-List-Ingress-Rules-Apache-Zeppelin-1310x382-1.png?w=1310&amp;ssl=1 1310w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>On the Ubuntu side I also had to update <strong><a href=\"https:\/\/linux.die.net\/man\/8\/iptables\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"IPtable\">IPtable<\/a><\/strong>.<\/p>\n<\/blockquote>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Starting Apache Zeppelin<\/h2>\n\n\n\n<p>By default Zeppelin is listening at <strong>127.0.0.1:8080<\/strong>, so you can&rsquo;t access it when it is deployed on another remote machine.<br>To access a remote Zeppelin, you need to change <em>zeppelin.server.addr<\/em> to 0.0.0.0 in <em>conf\/zeppelin-site.xml<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">~\/zeppelin$ cp conf\/zeppelin-site.xml.template conf\/zeppelin-site.xml\n\n~\/zeppelin$ vim conf\/zeppelin-site.xml\n...<\/code><\/pre>\n\n\n\n<p>When the update is done:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">~\/zeppelin$ grep -m2  -a4  \"&lt;property&gt;\" conf\/zeppelin-site.xml\n--&gt;\n\n&lt;configuration&gt;\n\n&lt;property&gt;\n  &lt;name&gt;zeppelin.server.addr&lt;\/name&gt;\n  &lt;value&gt;0.0.0.0&lt;\/value&gt;\n  &lt;description&gt;Server binding address&lt;\/description&gt;\n&lt;\/property&gt;\n\n&lt;property&gt;\n  &lt;name&gt;zeppelin.server.port&lt;\/name&gt;\n  &lt;value&gt;8080&lt;\/value&gt;\n  &lt;description&gt;Server port.&lt;\/description&gt;\n&lt;\/property&gt;<\/code><\/pre>\n\n\n\n<p>Address is 0.0.0.0 and Port is 8080.<\/p>\n\n\n\n<p>Now I can start Zeppelin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">~\/zeppelin$ bin\/zeppelin-daemon.sh start<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">~\/zeppelin$ bin\/zeppelin-daemon.sh status\nZeppelin is running                                        [  OK  ]<\/code><\/pre>\n\n\n\n<p>Yippee!<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL Connector J<\/h2>\n\n\n\n<p>The Zeppelin SQL interpreter needs the <a href=\"https:\/\/dev.mysql.com\/downloads\/connector\/j\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"JDBC MySQL Connector\">JDBC MySQL Connector<\/a>, available at <a href=\"https:\/\/dev.mysql.com\/downloads\/connector\/j\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"https:\/\/dev.mysql.com\/downloads\/connector\/j\/\">https:\/\/dev.mysql.com\/downloads\/connector\/j\/<\/a><\/p>\n\n\n\n<p>Obviously, MySQL customers can use the commercial version available on <a href=\"https:\/\/support.oracle.com\/portal\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"My Oracle Support\">MOS<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">$ wget https:\/\/dev.mysql.com\/get\/Downloads\/Connector-J\/mysql-connector-java_8.0.29-1ubuntu20.04_all.deb\n\n$ sudo dpkg -i mysql-connector-java_8.0.29-1ubuntu20.04_all.deb<\/code><\/pre>\n\n\n\n<p> The JDBC MySQL Connector is now installed!<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Setup the Zeppelin interpreter<\/h2>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Integrating Apache Zeppelin with HeatWave MySQL\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/eWNFaSY28B4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Create a new interpreter:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"164\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-01.png?resize=800%2C164&#038;ssl=1\" alt=\"\" class=\"wp-image-5976\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-01.png?resize=800%2C164&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-01.png?resize=300%2C61&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-01.png?resize=768%2C157&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-01.png?w=971&amp;ssl=1 971w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"101\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-02.png?resize=800%2C101&#038;ssl=1\" alt=\"\" class=\"wp-image-5977\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-02.png?resize=800%2C101&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-02.png?resize=300%2C38&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-02.png?resize=768%2C97&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-02.png?w=971&amp;ssl=1 971w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Enter a name for the <em>Interpreter Name<\/em> box and select jdbc as <em>Interpreter group<\/em>:<\/p>\n\n\n\n<ul id=\"block-b07a6b31-a786-4b1e-9a9e-1acbb3361c21\" class=\"wp-block-list\">\n<li>Interpreter Name: <strong>MySQL HeatWave<\/strong><\/li>\n\n\n\n<li>Interpreter group: <strong>jdbc<\/strong><\/li>\n<\/ul>\n\n\n\n<p>JDBC interpreter lets you create a JDBC connection to any data sources seamlessly. Inserts, Updates, and Upserts are applied immediately after running each statement.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><span style=\"text-decoration: underline;\">Properties<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>default.url : <strong>jdbc:mysql:\/\/&lt;<em>MySQL HeatWave IP Address<\/em>&gt;:3306\/<\/strong><\/li>\n\n\n\n<li>default.user : <strong>&lt;<em>MySQL User<\/em>&gt;<\/strong><\/li>\n\n\n\n<li>default.password: <strong>&lt;<em>MySQL Password<\/em>&gt;<\/strong> <\/li>\n\n\n\n<li>default.driver : <strong>com.mysql.jdbc.Driver<\/strong><\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"524\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-03.png?resize=443%2C524&#038;ssl=1\" alt=\"\" class=\"wp-image-5978\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-03.png?w=443&amp;ssl=1 443w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-03.png?resize=254%2C300&amp;ssl=1 254w\" sizes=\"auto, (max-width: 443px) 100vw, 443px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><span style=\"text-decoration: underline;\">Dependencies<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dependencies artifact : <strong>mysql:mysql-connector-java:8.0.29<\/strong><\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"175\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-04.png?resize=291%2C175&#038;ssl=1\" alt=\"\" class=\"wp-image-5980\"\/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Don&rsquo;t forget to save the configuration \ud83d\ude42<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>To sum up, the interpreter configuration looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"504\" height=\"800\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-05.png?resize=504%2C800&#038;ssl=1\" alt=\"\" class=\"wp-image-5983\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-05.png?resize=504%2C800&amp;ssl=1 504w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-05.png?resize=189%2C300&amp;ssl=1 189w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-01-interpreter-05.png?w=750&amp;ssl=1 750w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">MySQL HeatWave usage<\/h1>\n\n\n\n<p>I can now create a notebook &#8211; <em>Check MySQL HeatWave<\/em>   (<a href=\"https:\/\/github.com\/freshdaz\/Zeppelin_HeatWave_Notebooks\/archive\/refs\/heads\/main.zip\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Notebook - Airportdb Analytics Queries\">download the notebooks<\/a>) &#8211; in order to check if HeatWave is enable:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"358\" height=\"150\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-03-Create-new-note-01.png?resize=358%2C150&#038;ssl=1\" alt=\"\" class=\"wp-image-5988\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-03-Create-new-note-01.png?w=358&amp;ssl=1 358w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-03-Create-new-note-01.png?resize=300%2C126&amp;ssl=1 300w\" sizes=\"auto, (max-width: 358px) 100vw, 358px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The <em><strong>Default Interpreter<\/strong><\/em> must be <strong>MySQL_HeatWave<\/strong>: <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"339\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-03-Create-new-note-02.png?resize=574%2C339&#038;ssl=1\" alt=\"\" class=\"wp-image-5989\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-03-Create-new-note-02.png?w=574&amp;ssl=1 574w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-03-Create-new-note-02.png?resize=300%2C177&amp;ssl=1 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>For the check, let&rsquo;s run these 2 queries:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">SHOW VARIABLES LIKE 'rapid_bootstrap';\n\nSHOW STATUS WHERE Variable_name IN ('rapid_cluster_status', 'rapid_ml_status', 'rapid_cluster_ready_number', 'rapid_load_progress');<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"634\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-02-Check-HeatWave-Engine-02.png?resize=800%2C634&#038;ssl=1\" alt=\"\" class=\"wp-image-5987\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-02-Check-HeatWave-Engine-02.png?resize=800%2C634&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-02-Check-HeatWave-Engine-02.png?resize=300%2C238&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-02-Check-HeatWave-Engine-02.png?resize=768%2C608&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-02-Check-HeatWave-Engine-02.png?w=937&amp;ssl=1 937w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The HeatWave cluster is up and ML is enable.<br>All good!<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Analytics<\/h1>\n\n\n\n<p>Out of curiosity, let&rsquo;s try some analytic queries. <\/p>\n\n\n\n<p>I already loaded the <em>airportdb<\/em> sample database (<a href=\"https:\/\/dev.mysql.com\/doc\/heatwave\/en\/airportdb-quickstart.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL HeatWave - AirportDB Analytics Quickstart\">see here<\/a>) into the MySQL DB system. <\/p>\n\n\n\n<p>Let&rsquo;s create a new note &#8211; <em>Airportdb Analytics Queries<\/em>  (<a href=\"https:\/\/github.com\/freshdaz\/Zeppelin_HeatWave_Notebooks\/archive\/refs\/heads\/main.zip\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Notebook - Airportdb Analytics Queries\">download the notebooks<\/a>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"582\" height=\"347\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-01-Create-new-note.png?resize=582%2C347&#038;ssl=1\" alt=\"\" class=\"wp-image-5995\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-01-Create-new-note.png?w=582&amp;ssl=1 582w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-01-Create-new-note.png?resize=300%2C179&amp;ssl=1 300w\" sizes=\"auto, (max-width: 582px) 100vw, 582px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><em>airportdb<\/em> must now be loaded into the HeatWave cluster in order to take advantage of the tremendous performance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">CALL sys.heatwave_load(JSON_ARRAY('airportdb'), NULL) <\/code><\/pre>\n\n\n\n<p>And here are the queries:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"SQL\" class=\"language-SQL\">-- Number of Tickets &gt; $500.00, Grouped By Price\nSELECT booking.price, count(*) \nFROM airportdb.booking \nWHERE booking.price &gt; 500 \nGROUP BY booking.price \nORDER BY booking.price \nLIMIT 10;\n\n\n-- Average Age of Passengers By Country, Per Airline\nSELECT airline.airlinename, AVG(datediff(departure,birthdate)\/365.25) as avg_age, count(*) as nb_people\nFROM airportdb.booking, airportdb.flight, airportdb.airline, airportdb.passengerdetails\nWHERE booking.flight_id=flight.flight_id AND\n    airline.airline_id=flight.airline_id AND\n    booking.passenger_id=passengerdetails.passenger_id AND\n    country IN (\"SWITZERLAND\", \"FRANCE\", \"ITALY\")\nGROUP BY airline.airlinename\nORDER BY airline.airlinename, avg_age\nLIMIT 10;<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"543\" height=\"704\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-02-AirportDB-Q1-2.png?resize=543%2C704&#038;ssl=1\" alt=\"\" class=\"wp-image-6000\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-02-AirportDB-Q1-2.png?w=543&amp;ssl=1 543w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-02-AirportDB-Q1-2.png?resize=231%2C300&amp;ssl=1 231w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"679\" height=\"525\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-03-AirportDB-Q2-1.png?resize=679%2C525&#038;ssl=1\" alt=\"\" class=\"wp-image-6001\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-03-AirportDB-Q2-1.png?w=679&amp;ssl=1 679w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-03-AirportDB-Q2-1.png?resize=300%2C232&amp;ssl=1 300w\" sizes=\"auto, (max-width: 679px) 100vw, 679px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Great results, respectively less than 0 second and 1 second. <\/p>\n\n\n\n<p>Without HeatWave the query execution times would be respectively 10 and 17 seconds:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"451\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-04-AirportDB-Q1-Q2-NoHeatWave-1.png?resize=800%2C451&#038;ssl=1\" alt=\"\" class=\"wp-image-6010\" srcset=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-04-AirportDB-Q1-Q2-NoHeatWave-1.png?resize=800%2C451&amp;ssl=1 800w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-04-AirportDB-Q1-Q2-NoHeatWave-1.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-04-AirportDB-Q1-Q2-NoHeatWave-1.png?resize=768%2C433&amp;ssl=1 768w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-04-AirportDB-Q1-Q2-NoHeatWave-1.png?resize=1536%2C866&amp;ssl=1 1536w, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/zeppelin-05-04-AirportDB-Q1-Q2-NoHeatWave-1.png?w=1588&amp;ssl=1 1588w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Machine Learning<\/h1>\n\n\n\n<p>What about the Machine Learning possibilities of MySQL HeatWave ML?<\/p>\n\n\n\n<p>Well this article is already long enough, so it will be the topic of the next article \ud83d\ude42<\/p>\n\n\n\n<p>Stay tune!<\/p>\n\n\n\n<div style=\"height:150px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Resources<\/h1>\n\n\n\n<ul class=\"wp-block-list has-luminous-vivid-orange-color has-text-color\">\n<li><a href=\"http:\/\/dasini.net\/blog\/2021\/08\/03\/discovering-mysql-database-service-episode-1-introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Introduction to the series&nbsp;Discovering MySQL Database Service\">Introduction to the series&nbsp;<strong><em>Discovering MySQL HeatWave Database Service<\/em><\/strong><\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.oracle.com\/mysql\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL Database Service (MDS)\">MySQL Database Service (MDS)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/heatwave\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL HeatWave User Guide\">MySQL HeatWave User Guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/heatwave\/en\/heatwave-machine-learning.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL HeatWave ML\">HeatWave ML<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en-us\/iaas\/mysql-database\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Documentation of MySQL Database Service \">Documentation of MySQL Database Service <\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.oracle.com\/cloud\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle Cloud Infrastructure (OCI)\">Oracle Cloud Infrastructure (OCI)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/libraries\/glossary\/glossary-intro.htm\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle Cloud Infrastructure Glossary\">Oracle Cloud Infrastructure Glossary<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.oracle.com\/cloud\/free\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle Cloud Free Tier\">Oracle Cloud Free Tier<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">MySQL &#8212; The world&rsquo;s most popular open source database<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/mysql-shell\/8.0\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"MySQL Shell\">MySQL Shell<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.oracle.com\/mysql\/heatwave\/performance\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Performance comparison of MySQL HeatWave with Snowflake, Amazon Redshift, Amazon Aurora, and Amazon RDS for MySQL\">Performance comparison of MySQL HeatWave with Snowflake, Amazon Redshift, Amazon Aurora, and Amazon RDS for MySQL<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blogs.oracle.com\/cloud-infrastructure\/post\/oracles-latest-mysql-heatwave-cloud-database-simplifies-use-of-machine-learning\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Oracle\u2019s latest MySQL HeatWave cloud database simplifies use of machine learning\">Oracle\u2019s latest MySQL HeatWave cloud database simplifies use of machine learning<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/freshdaz\/Zeppelin_HeatWave_Notebooks\/archive\/refs\/heads\/main.zip\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Zeppelin HeatWave's Notebooks from this article\">Download the notebooks<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/zeppelin.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Apache Zeppelin\">Apache Zeppelin<\/a><\/li>\n<\/ul>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><a href=\"https:\/\/www.linkedin.com\/groups\/12524512\/\" target=\"_blank\" rel=\"noopener\" title=\"Olivier DASINI on Linkedin\">Follow me on Linkedin<\/a><\/p>\n\n\n\n<p>Watch my videos on my <a href=\"https:\/\/www.youtube.com\/channel\/UC12TulyJsJZHoCmby3Nm3WQ\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Olivier's MySQL Channel\">YouTube channel<\/a> and <a href=\"https:\/\/www.youtube.com\/channel\/UC12TulyJsJZHoCmby3Nm3WQ\/?sub_confirmation=1\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Subscribe\">subscribe<\/a>.<\/p>\n\n\n\n<p>My <a href=\"https:\/\/www.slideshare.net\/freshdaz\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Olivier DASINI on Slideshare\">Slideshare account<\/a>.<\/p>\n\n\n\n<p>My <a href=\"https:\/\/speakerdeck.com\/freshdaz\/\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Olivier DASINI on Speaker Deck\">Speaker Deck account<\/a>.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-vivid-red-color has-text-color\"><strong>Thanks for using HeatWave &amp; MySQL!<\/strong><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this article I will show you how to properly configure Apache Zeppelin in order to take advantage of the Analytics and Machine Learning capabilities of MySQL HeatWave the MySQL in-memory query accelerator.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[1683,203,339],"tags":[306,349],"class_list":["post-5915","post","type-post","status-publish","format-standard","hentry","category-machine-learning-en","category-mysql-en","category-tuto-en","tag-cloud","tag-tuto-en"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9LfWW-1xp","jetpack-related-posts":[{"id":6061,"url":"https:\/\/dasini.net\/blog\/2022\/07\/18\/iris-data-set-with-mysql-heatwave-machine-learning-zeppelin\/","url_meta":{"origin":5915,"position":0},"title":"Iris Data Set with MySQL HeatWave Machine Learning  &#038; Zeppelin","author":"Olivier DASINI","date":"18 juillet 2022","format":false,"excerpt":"During the last 20 years MySQL has democratized the usage of transactional databases. Now with MySQL HeatWave we are in the process of democratizing Analytics and Machine Learning. With MySQL HeatWave, valorizing your data has never been so easy! In this article I will show you how easy it is\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql-en\/"},"img":{"alt_text":"MySQL HeatWave a MySQL in-Memory Query Accelerator","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?fit=1012%2C431&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?fit=1012%2C431&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?fit=1012%2C431&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/HW_ML.png?fit=1012%2C431&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":5762,"url":"https:\/\/dasini.net\/blog\/2022\/06\/09\/explore-visualize-your-mysql-heatwave-data-with-superset\/","url_meta":{"origin":5915,"position":1},"title":"Explore &#038; visualize your MySQL HeatWave data with Superset","author":"Olivier DASINI","date":"9 juin 2022","format":false,"excerpt":"In this article I will show you how to properly configure Apache Superset in order to take advantage of a high performance, in-memory query accelerator: MySQL HeatWave.","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql-en\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=700%2C400 2x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/06\/Configure-Heatwave-Cluster.png?resize=1050%2C600 3x"},"classes":[]},{"id":4462,"url":"https:\/\/dasini.net\/blog\/2021\/04\/13\/heatwave-a-mysql-cloud-feature-to-speed-up-your-queries\/","url_meta":{"origin":5915,"position":2},"title":"HeatWave &#8211; A MySQL cloud feature to speed up your queries","author":"Olivier DASINI","date":"13 avril 2021","format":false,"excerpt":"If you have (too) long running select queries it is probably because of lack of relevant indexes, problematic schema that lead to poor queries or inadequate hardware. That said, sometime even if you doing it right, the query execution time could be too long regarding of what the application or\u2026","rel":"","context":"Dans &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/dasini.net\/blog\/category\/cloud\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/04\/MySQL-Database-Service-HeatWave-Replication.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/04\/MySQL-Database-Service-HeatWave-Replication.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/04\/MySQL-Database-Service-HeatWave-Replication.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/04\/MySQL-Database-Service-HeatWave-Replication.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4662,"url":"https:\/\/dasini.net\/blog\/2021\/08\/03\/discovering-mysql-database-service-episode-1-introduction\/","url_meta":{"origin":5915,"position":3},"title":"Discovering MySQL Database Service &#8211; Episode 1 &#8211; Introduction","author":"Olivier DASINI","date":"3 ao\u00fbt 2021","format":false,"excerpt":"This is the first episode of \u201cDiscovering MySQL Database Service\u201c, a series of tutorials where I will show you, step by step, how to use MySQL Database Service and some other Oracle Cloud Infrastructure services. Like any series, in this episode I\u2019m going to give you some context and set\u2026","rel":"","context":"Dans &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/dasini.net\/blog\/category\/cloud\/"},"img":{"alt_text":"MySQL Database Service","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4872,"url":"https:\/\/dasini.net\/blog\/2021\/08\/31\/discovering-mysql-database-service-episode-5-create-a-mysql-db-system-from-a-mysql-shell-dump\/","url_meta":{"origin":5915,"position":4},"title":"Discovering MySQL Database Service &#8211; Episode 5 &#8211; Create a MySQL DB system from a MySQL Shell dump","author":"Olivier DASINI","date":"31 ao\u00fbt 2021","format":false,"excerpt":"MySQL, the world\u2019s most popular open source database, is available as a managed cloud service in Oracle Cloud Infrastructure (OCI) under the name of MySQL Database Service (MDS). This is the fifth episode of \u201cDiscovering MySQL Database Service\u201c, a series of tutorials where I will show you, step by step,\u2026","rel":"","context":"Dans &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/dasini.net\/blog\/category\/cloud\/"},"img":{"alt_text":"MySQL Database Service","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2021\/06\/MDS_car_801x600.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":7252,"url":"https:\/\/dasini.net\/blog\/2025\/02\/11\/building-an-interactive-llm-chatbot-with-heatwave-using-python\/","url_meta":{"origin":5915,"position":5},"title":"Building an Interactive LLM Chatbot with  HeatWave Using Python","author":"Olivier DASINI","date":"11 f\u00e9vrier 2025","format":false,"excerpt":"AI-powered applications require robust and scalable database solutions to manage and process large amounts of data efficiently. HeatWave is an excellent choice for such applications, providing high-performance OLTP, analytics, machine learning and generative artificial intelligence capabilities. In this article, we will explore a Python 3 script that connects to an\u2026","rel":"","context":"Dans &quot;HeatWave&quot;","block_context":{"text":"HeatWave","link":"https:\/\/dasini.net\/blog\/category\/heatwave-en\/"},"img":{"alt_text":"simple but robust chatbot system leveraging HeatWave GenAI and its in-database Mistral LLM","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2025\/02\/HW-Chat-mistral-7b.gif?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2025\/02\/HW-Chat-mistral-7b.gif?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2025\/02\/HW-Chat-mistral-7b.gif?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2025\/02\/HW-Chat-mistral-7b.gif?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2025\/02\/HW-Chat-mistral-7b.gif?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/5915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/comments?post=5915"}],"version-history":[{"count":122,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/5915\/revisions"}],"predecessor-version":[{"id":8080,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/5915\/revisions\/8080"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=5915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=5915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=5915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}