{"id":46614,"date":"2020-09-10T00:00:00","date_gmt":"2020-09-10T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/"},"modified":"2025-11-13T12:55:00","modified_gmt":"2025-11-13T20:55:00","slug":"using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi","status":"publish","type":"post","link":"https:\/\/griddb.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/","title":{"rendered":"Using Python to interface with GridDB via JDBC with JayDeBeApi"},"content":{"rendered":"<style>\n.notice {\n    background-color: aliceblue;\n    white-space: normal;\n    transition: box-shadow .28s cubic-bezier(.4,0,.2,1);\n    will-change: box-shadow;\n    margin: 10px;\n    padding: 10px;\n    box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);\n}\n<\/style>\n<h2> Introduction <\/h2>\n<p>In this blog, we will showcase GridDB&#8217;s Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python module. The module in this instance, JayDeBeApi, allows for the developer to connect their Python codebase to JDBC; this means that the developer will no longer be tied down to using only Java when interfacing with their favorite database API. To get the obvious stuff out of the way, please make sure you have <a href=\"https:\/\/docs.griddb.net\/gettingstarted\/introduction\/\">GridDB <\/a> installed, along with the <a href=\"https:\/\/docs.griddb.net\/gettingstarted\/python\/\">Python<\/a> client.<\/p>\n<p><a href=\"#docker\" style=\"font-size: 18px\"> Skip to the bottom for Docker installation instructions <\/a><\/p>\n<h2> Prerequisites <\/h2>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ pip3 install griddb-python --user\n<\/code><\/pre>\n<\/div>\n<p>After making sure your GridDB cluster is up and running, next up is downloading the GridDB JDBC driver itself. Instructions can be found here: <a href=\"https:\/\/griddb.net\/en\/blog\/connecting-to-griddb-via-jdbc-with-sqlworkbench-j\/\"> blog <\/a><\/p>\n<p>Here is a quick summary: <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ wget https:\/\/repo1.maven.org\/maven2\/com\/github\/griddb\/gridstore-jdbc\/4.5.0\/gridstore-jdbc-4.5.0.jar\n<\/code><\/pre>\n<\/div>\n<h2> Installing JayDeBeApi <\/h2>\n<p>And now onto the main attraction. To install JayDeBeApi, we need to install the package itself, along with JPype1. <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ pip3 install JayDeBeApi --user\n<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ pip3 install JPype1==0.6.3 --user\n<\/code><\/pre>\n<\/div>\n<p>If you followed the JDBC instructions from our previous blog, your CLASSPATH should already be pointing to the JDBC driver. <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ export CLASSPATH=${CLASSPATH}:\/user\/share\/java\/gridstore-jdbc-4.5.0.jar\n<\/code><\/pre>\n<\/div>\n<p>Next up is running a sample to ensure that it&#8217;s properly connecting. So let&#8217;s run the sample included in the <a href=\"https:\/\/github.com\/griddb\/jdbc\">GridDB JDBC repository<\/a> <\/p>\n<p>As a note, please look at the code below. It is has a path to the gridstore-jdbc.jar file. You will need to change the path to point to your \/usr\/share\/java directory.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">\nimport jaydebeapi\nimport sys\n\nargv = sys.argv\n\nmulticast_address = argv[1] # default : 239.0.0.1\nport_no = argv[2] # default : 41999\ncluster_name = argv[3]\nusername = argv[4]\npassword = argv[5]\n\nurl = \"jdbc:gs:\/\/\" + multicast_address + \":\" + port_no + \"\/\" + cluster_name\nconn = jaydebeapi.connect(\"com.toshiba.mwcloud.gs.sql.Driver\",\n    url, [username, password], \".\/gridstore-jdbc.jar\")\n\ncurs = conn.cursor()\n\ncurs.execute(\"DROP TABLE IF EXISTS Sample\")\ncurs.execute(\"CREATE TABLE IF NOT EXISTS Sample ( id integer PRIMARY KEY, value string )\")\nprint('SQL Create Table name=Sample')\ncurs.execute(\"INSERT INTO Sample values (0, 'test0'),(1, 'test1'),(2, 'test2'),(3, 'test3'),(4, 'test4')\")\nprint('SQL Insert')\ncurs.execute(\"SELECT * from Sample where ID > 2\")\nprint(curs.fetchall())\n\ncurs.close()\nconn.close()\nprint('success!')\n<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ cp jdbc\/sample\/en\/python-db-api\/DBAPISelect.py .\n<\/code><\/pre>\n<\/div>\n<p>The sample code&#8217;s goal is simply to verify that you can run your Python code along with JDBC. Here, the Python code creates a container called Sample and inserts some data &#8212; again, just to verify everything is in working order.<\/p>\n<p>Now actually run the sample <code>python DBAPISelect.py <multicast_address> <port_no> <cluster_name> <username> <password><\/code><\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ python3 DBAPISelect.py 239.0.0.1 41999 defaultCluster admin admin\n<\/code><\/pre>\n<\/div>\n<pre>SQL Create Table name=Sample\nSQL Insert\n[(3, 'test3'), (4, 'test4')]\nsuccess!<\/pre>\n<p>Congratulations, you can now interface with JDBC\/GridDB with Python.<\/p>\n<h2> Use with Jupyter Notebook <\/h2>\n<p>Once you have jdbc up and running, you can easily install Jupyter Notebook to really make the whole experience a lot nicer.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ pip3 install jupyterlab --user\n<\/code><\/pre>\n<\/div>\n<p>Now simply open jupyter <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ jupyter notebook\n<\/code><\/pre>\n<\/div>\n<p>And that&#8217;s it!<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2020\/09\/Screenshot_1.png\" alt=\"\" width=\"793\" height=\"596\" class=\"aligncenter size-full wp-image-26834\" srcset=\"\/wp-content\/uploads\/2020\/09\/Screenshot_1.png 793w, \/wp-content\/uploads\/2020\/09\/Screenshot_1-300x225.png 300w, \/wp-content\/uploads\/2020\/09\/Screenshot_1-768x577.png 768w, \/wp-content\/uploads\/2020\/09\/Screenshot_1-600x451.png 600w\" sizes=\"(max-width: 793px) 100vw, 793px\" \/><\/p>\n<h2 id=\"docker\"> Docker <\/h2>\n<p class=\"notice\">\n<span style=\"font-size: 1.3em\">Update: <\/span> We have received contribution from Mr. R\u00c3\u00b6nsch that utilizes Docker Compose that allows for an even easier set up process. We encourage you to check out the quick start repo that he so kindly created to help the process: <a href=\"https:\/\/github.com\/roenschg\/griddb-jupyter-quikstart\">https:\/\/github.com\/roenschg\/griddb-jupyter-quikstart<\/a>. This will allow you get up and running while also using GridDB v4.5.\n<\/p>\n<p>Alternatively, you can use <a href=\"https:\/\/docs.docker.com\/engine\/install\/centos\/\"> Docker <\/a> to run JDBC and JayDeBeApi. The <a href=\"https:\/\/griddb.net\/en\/blog\/improve-your-devops-with-griddb-server-and-client-docker-containers\/\"> blog <\/a>includes a container for both the GridDB server and the Python client (source files are at the bottom of the blog). If you decided to follow along with our previous blog, please make sure you update the <code>Dockerfile<\/code> to download the latest <a href=\"https:\/\/github.com\/griddb\/griddb\/releases\">GridDB Server<\/a>.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">RUN rpm -Uvh https:\/\/github.com\/griddb\/griddb\/releases\/download\/v4.5.0\/griddb-4.5.0-1.linux.x86_64.rpm\n RUN yum -y install iproute\n<\/code><\/pre>\n<\/div>\n<p> You will also need to change the start_griddb.sh script to update the notification address of the system (from 10080 &#8211;> 10040).<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">cat << EOF > \/var\/lib\/gridstore\/conf\/gs_cluster.json\n {\n        \"dataStore\":{\n                \"partitionNum\":128,\n                \"storeBlockSize\":\"64KB\"\n        },\n        \"cluster\":{\n                \"clusterName\":\"defaultCluster\",\n                \"replicationNum\":2,\n                \"notificationInterval\":\"5s\",\n                \"heartbeatInterval\":\"5s\",\n                \"loadbalanceCheckInterval\":\"180s\",\n                \"notificationMember\": [\n                        {\n                                \"cluster\": {\"address\":\"$IP\", \"port\":10010},\n                                \"sync\": {\"address\":\"$IP\", \"port\":10020},\n                                \"system\": {\"address\":\"$IP\", \"port\":10040}, #change here\n                                \"transaction\": {\"address\":\"$IP\", \"port\":10001},\n                                \"sql\": {\"address\":\"$IP\", \"port\":20001}\n                       }\n                ]\n        },\n        \"sync\":{\n                \"timeoutInterval\":\"30s\"\n        }\n }\n EOF\n<\/code><\/pre>\n<\/div>\n<p>Once your GridDB server Docker container is running, you can grab its IP address with the following command: <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ docker inspect griddb-server | grep \"IPAddress\"\n<\/code><\/pre>\n<\/div>\n<p>OR<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ CONT=`docker ps | grep griddb-server | awk '{ print $1 }'`; docker exec $CONT cat \/etc\/hosts | grep $CONT | awk '{ print $1 }'\n<\/code><\/pre>\n<\/div>\n<h2> Jupyter (Docker)<\/h2>\n<p>Here is how you can also install Jupyter via docker containers:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ docker run --name jupyternotebook --network griddb-net -p 8888:8888 jupyter\/scipy-notebook\n<\/code><\/pre>\n<\/div>\n<p>Then, copy the url (http:\/\/127.0.0.1:8888\/?token=xxxx) and paste it in your browser to start jupyter notebook.<\/p>\n<p>Log in to your newly formed docker container:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ docker exec -u 0 -it jupyternotebook \/bin\/bash \n<\/code><\/pre>\n<\/div>\n<p>and run the following commands to install new dependencies: <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ apt update\n<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ apt install default-jre\n<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ wget https:\/\/repo1.maven.org\/maven2\/com\/github\/griddb\/gridstore-jdbc\/4.5.0\/gridstore-jdbc-4.5.0.jar\n<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ cp gridstore-jdbc-4.5.0.jar \/usr\/share\/java\/\n<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ pip install jaydebeapi\n<\/code><\/pre>\n<\/div>\n<p>And now you can finish up the rest of the instructions via Jupyter in your browser. First, import necessary libraries:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">import pandas as pd\n import jaydebeapi\n<\/code><\/pre>\n<\/div>\n<p>Make connection to the GridDB container: <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">conn = jaydebeapi.connect(\"com.toshiba.mwcloud.gs.sql.Driver\",\n                           \"jdbc:gs:\/\/\/defaultCluster\/public?notificationMember:127.0.0.1:20001\",\n                           [\"admin\", \"admin\"],\n                          \"\/usr\/share\/java\/gridstore-jdbc.jar\",)\n<\/code><\/pre>\n<\/div>\n<p>Create time series table\/container and query via JDBC<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">curs = conn.cursor()\n curs.execute('CREATE TABLE Sensor1(datetime TIMESTAMP PRIMARY KEY, payload FLOAT)\n curs.execute(\"INSERT into Sensor1 values (now(), 45.6)\")\n curs.execute(\"SELECT * FROM Sensor1\")\n curs.fetchall()\n curs.close()\n conn.close()\n<\/code><\/pre>\n<\/div>\n<p>You can also use the pandas library:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">sql = (\"SELECT * FROM Sensor1\";)\n sql_query = pd_read_sql_query(sql, conn)\n sql_query\n<\/code><\/pre>\n<\/div>\n<h2> Conclusion <\/h2>\n<p>We have provided for you two different methods of installing and using Jupyter and JayDeBeApi along with your GridDB server for more methods of interfacing with the time series database.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In this blog, we will showcase GridDB&#8217;s Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python module. The module in this instance, JayDeBeApi, allows for the developer to connect their Python codebase to JDBC; this means that the developer will no longer be tied down to using only Java [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":26149,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46614","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Using Python to interface with GridDB via JDBC with JayDeBeApi | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"Introduction In this blog, we will showcase GridDB&#039;s Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Python to interface with GridDB via JDBC with JayDeBeApi | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"Introduction In this blog, we will showcase GridDB&#039;s Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-10T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-13T20:55:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/08\/python-blog.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1160\" \/>\n\t<meta property=\"og:image:height\" content=\"653\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Israel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Israel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\"},\"author\":{\"name\":\"Israel\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\"},\"headline\":\"Using Python to interface with GridDB via JDBC with JayDeBeApi\",\"datePublished\":\"2020-09-10T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:55:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\"},\"wordCount\":599,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2019\/08\/python-blog.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\",\"name\":\"Using Python to interface with GridDB via JDBC with JayDeBeApi | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2019\/08\/python-blog.png\",\"datePublished\":\"2020-09-10T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:55:00+00:00\",\"description\":\"Introduction In this blog, we will showcase GridDB's Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2019\/08\/python-blog.png\",\"contentUrl\":\"\/wp-content\/uploads\/2019\/08\/python-blog.png\",\"width\":1160,\"height\":653},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\",\"name\":\"Israel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"caption\":\"Israel\"},\"url\":\"https:\/\/griddb.net\/en\/author\/israel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using Python to interface with GridDB via JDBC with JayDeBeApi | GridDB: Open Source Time Series Database for IoT","description":"Introduction In this blog, we will showcase GridDB's Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/","og_locale":"en_US","og_type":"article","og_title":"Using Python to interface with GridDB via JDBC with JayDeBeApi | GridDB: Open Source Time Series Database for IoT","og_description":"Introduction In this blog, we will showcase GridDB's Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python","og_url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2020-09-10T07:00:00+00:00","article_modified_time":"2025-11-13T20:55:00+00:00","og_image":[{"width":1160,"height":653,"url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/08\/python-blog.png","type":"image\/png"}],"author":"Israel","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Israel","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#article","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/"},"author":{"name":"Israel","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740"},"headline":"Using Python to interface with GridDB via JDBC with JayDeBeApi","datePublished":"2020-09-10T07:00:00+00:00","dateModified":"2025-11-13T20:55:00+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/"},"wordCount":599,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2019\/08\/python-blog.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/","name":"Using Python to interface with GridDB via JDBC with JayDeBeApi | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2019\/08\/python-blog.png","datePublished":"2020-09-10T07:00:00+00:00","dateModified":"2025-11-13T20:55:00+00:00","description":"Introduction In this blog, we will showcase GridDB's Java Database Connectivity (JDBC) connection abilities by pairing it with the popular JDBC Python","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/blog\/using-python-to-interface-with-griddb-via-jdbc-with-jaydebeapi\/#primaryimage","url":"\/wp-content\/uploads\/2019\/08\/python-blog.png","contentUrl":"\/wp-content\/uploads\/2019\/08\/python-blog.png","width":1160,"height":653},{"@type":"WebSite","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740","name":"Israel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","caption":"Israel"},"url":"https:\/\/griddb.net\/en\/author\/israel\/"}]}},"_links":{"self":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/comments?post=46614"}],"version-history":[{"count":1,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46614\/revisions"}],"predecessor-version":[{"id":51293,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46614\/revisions\/51293"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media\/26149"}],"wp:attachment":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media?parent=46614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/categories?post=46614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/tags?post=46614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}