{"id":52137,"date":"2025-05-29T00:00:00","date_gmt":"2025-05-29T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/griddb-cloud-cli\/"},"modified":"2025-05-29T00:00:00","modified_gmt":"2025-05-29T07:00:00","slug":"griddb-cloud-cli","status":"publish","type":"post","link":"https:\/\/www.griddb.net\/en\/blog\/griddb-cloud-cli\/","title":{"rendered":"Introducing the GridDB Cloud CLI Tool"},"content":{"rendered":"<p>We have already written a <a href=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-quick-start-guide\/\">Quick Start Guide<\/a> on how to use <a href=\"https:\/\/form.ict-toshiba.jp\/download_form_griddb_cloud_freeplan_e?utm_source=griddbnet&amp;utm_medium=griddb-cli-tool-blog\">GridDB Cloud<\/a>. And though we believe it&#8217;s simple enough to get started using GridDB Cloud&#8217;s WebAPI, we wanted to make some of the simple commands usable from the CLI without having to make CURL requests which include your authentication headers in every command. Enter the GridDB Cloud CLI tool: <a href=\"https:\/\/github.com\/Imisrael\/griddb-cloud-cli\">GitHub<\/a><\/p>\n<p>The GridDB Cloud CLI Tool aims to make managing your GridDB Cloud database a little more manageable from the comfort of your own terminal! Tasks like querying, pushing data, creating containers, etc can all be accomplished now in your CLI with the help of this tool. In this article, we will walk through how to install and use this tool and show some examples of what you can accomplish with it.<\/p>\n<h2>Getting Started (Download &amp; Configuration)<\/h2>\n<p>The CLI Tool is distributed via <a href=\"https:\/\/github.com\/Imisrael\/griddb-cloud-cli\/releases\/tag\/v0.1.2\">github as a single binary file<\/a>. In the release section, you can download the appropriate version for your machine. Once downloaded, you can insert it in a directory in your PATH for your CLI and use from anywhere in the CLI, or alternatively, you can simply use the binary file from within the location it&#8217;s located (ie. <code>.\/griddb-cloud-cli help<\/code>).<\/p>\n<p>The tool is written in Go, so you could also clone the repo and build your own binary:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ go get\n$ go build<\/code><\/pre>\n<\/div>\n<h3>Configuration<\/h3>\n<p>This tool expects a <code>.yaml<\/code> file to exist in <code>$HOME\/.griddb.yaml<\/code> with the following fields:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">cloud_url: \"url\"\ncloud_username: \"example\"\ncloud_pass: \"pass\"<\/code><\/pre>\n<\/div>\n<p>Alternatively, you save the file elsewhere and include the <code>--config<\/code> flag when running your tool (ie. <code>griddb-cloud-cli --config \/opt\/configs\/griddb.yaml checkConnection<\/code>).<\/p>\n<p>You will also still need to whitelist your IP Address in the GridDB Cloud Portal. Unfortunately this is not something that is achievable through the CLI Tool at this time.<\/p>\n<h2>Features &amp; Commands<\/h2>\n<p>This tool was written with the help of the ever-popular <a href=\"https:\/\/github.com\/spf13\/cobra\">Cobra<\/a> Library. Because of this, we are able to use the <code>--help<\/code> flag for all the commands in case you forget the functionality of some of the commands and their flags.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli help\n\nA series of commands to help you manage your cloud-based DB.\nStandouts include creating a container and graphing one using 'read graph' and 'create' respectfully\n\nUsage:\n  griddb-cloud-cli [command]\n\nAvailable Commands:\n  checkConnection Test your Connection with GridDB Cloud\n  completion      Generate the autocompletion script for the specified shell\n  create          Interactive walkthrough to create a container\n  delete          Test your Connection with GridDB Cloud\n  help            Help about any command\n  ingest          Ingest a `csv` file to a new or existing container\n  list            Get a list of all of the containers\n  put             Interactive walkthrough to push a row\n  read            Query container with TQL\n  show            get container info \n  sql             Run a sql command\n\nFlags:\n      --config string   config file (default is $HOME\/.griddb.yaml)\n  -h, --help            help for griddb-cloud-cli<\/code><\/pre>\n<\/div>\n<p>So with that out of the way, let&#8217;s begin with the commands.<\/p>\n<h3>All GridDB CLI Tool Commands<\/h3>\n<p>On your first time around, you should run the <code>checkConnection<\/code> command as a sanity check to ensure that you can connect to your instance. The tool will tell you if you have improper auth or if you&#8217;re blocked by the firewall:<\/p>\n<h4>Check Connection<\/h4>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli checkConnection\n\n[10005:TXN_AUTH_FAILED] (address=172.25.23.68:10001, partitionId=0)\n2025\/04\/30 08:32:33 Authentication Error. Please check your username and password in your config file <\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli checkConnection\n\n2025\/04\/30 08:33:48 (403) IP Connection Error. Is this IP Address Whitelisted? Please consider whitelisting Ip Address: X.X.X.116<\/code><\/pre>\n<\/div>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli checkConnection\n2025\/04\/30 08:35:20 Please set a config file with the --config flag or set one in the default location $HOME\/.griddb.yaml<\/code><\/pre>\n<\/div>\n<p>And if everything is settled correctly:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli checkConnection\n200 OK<\/code><\/pre>\n<\/div>\n<h4>List Containers<\/h4>\n<p>You can list all containers inside of your Cloud DB Instance:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli list\n\n0: actual_reading_1\n1: actual_reading_10\n2: boiler_control_10\n3: device1\n4: device2\n5: device3\n6: device4\n7: device6<\/code><\/pre>\n<\/div>\n<h4>Show Container<\/h4>\n<p>You can display the schema and other info about an individual container:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli show device2  \n\n{\n    \"container_name\": \"device2\",\n    \"container_type\": \"TIME_SERIES\",\n    \"rowkey\": true,\n    \"columns\": [\n        {\n            \"name\": \"ts\",\n            \"type\": \"TIMESTAMP\",\n            \"timePrecision\": \"MILLISECOND\",\n            \"index\": []\n        },\n        {\n            \"name\": \"device\",\n            \"type\": \"STRING\",\n            \"index\": []\n        },\n        {\n            \"name\": \"co\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"humidity\",\n            \"type\": \"FLOAT\",\n            \"index\": []\n        },\n        {\n            \"name\": \"light\",\n            \"type\": \"BOOL\",\n            \"index\": []\n        },\n        {\n            \"name\": \"lpg\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"motion\",\n            \"type\": \"BOOL\",\n            \"index\": []\n        },\n        {\n            \"name\": \"smoke\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        },\n        {\n            \"name\": \"temperature\",\n            \"type\": \"DOUBLE\",\n            \"index\": []\n        }\n    ]\n}<\/code><\/pre>\n<\/div>\n<h4>Querying\/Reading a Container<\/h4>\n<p>You can run TQL or SQL queries on your containers. TQL is the simpler option:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli read device2 --limit 1 --pretty\n\n    [ { \"name\": \"device2\", \"stmt\": \"select * limit 1\", \"columns\": null, \"hasPartialExecution\": true }]\n[\n  [\n    {\n      \"Name\": \"ts\",\n      \"Type\": \"TIMESTAMP\",\n      \"Value\": \"2006-01-02T07:04:05.700Z\"\n    },\n    {\n      \"Name\": \"device\",\n      \"Type\": \"STRING\",\n      \"Value\": \"b8:27:eb:bf:9d:51\"\n    },\n    {\n      \"Name\": \"co\",\n      \"Type\": \"DOUBLE\",\n      \"Value\": 0.004955938648391245\n    },\n    {\n      \"Name\": \"humidity\",\n      \"Type\": \"FLOAT\",\n      \"Value\": 51\n    },\n    {\n      \"Name\": \"light\",\n      \"Type\": \"BOOL\",\n      \"Value\": false\n    },\n    {\n      \"Name\": \"lpg\",\n      \"Type\": \"DOUBLE\",\n      \"Value\": 0.00765082227055719\n    },\n    {\n      \"Name\": \"motion\",\n      \"Type\": \"BOOL\",\n      \"Value\": false\n    },\n    {\n      \"Name\": \"smoke\",\n      \"Type\": \"DOUBLE\",\n      \"Value\": 0.02041127012241292\n    },\n    {\n      \"Name\": \"temperature\",\n      \"Type\": \"DOUBLE\",\n      \"Value\": 22.7\n    }\n  ]\n]<\/code><\/pre>\n<\/div>\n<p>The <code>read<\/code> command will run a simple TQL query of your container which you can then specify the following: an offset (&#8211;offset), a limit (-l, &#8211;limit), pretty print(-p, &#8211;pretty), just rows (&#8211;rows), which columns you want to see (&#8211;columns) or just the straight obj delivered from GridDB Cloud (&#8211;raw).<\/p>\n<p>Normally when you query a container with GridDB Cloud, it will send your results as two arrays, one with your column object, and another with more arrays of just row data. You can query this with &#8211;raw, but the default is to make a JSON and send that unstructured. If you use Pretty like above, it will indent and space it out for you. Just printing rows is better if you querying lots of rows:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli read device1 --limit 25 --rows\n\n[ { \"name\": \"device1\", \"stmt\": \"select * limit 25\", \"columns\": null, \"hasPartialExecution\": true }]\n\nts,co,humidity,light,lpg,motion,smoke,temp,\n[2020-07-12T01:00:25.984Z 0.0041795988 77.5999984741 true 0.006763671 false 0.0178934842 26.8999996185]\n[2020-07-12T01:00:53.485Z 0.0048128545 53.5 false 0.0074903843 false 0.0199543908 21.7]\n[2020-07-12T01:01:35.020Z 0.0030488793 74.9000015259 true 0.0053836916 false 0.014022829 19.5]\n[2020-07-12T01:01:52.751Z 0.0049817187 51.3 false 0.0076795919 false 0.020493267 22.4]\n[2020-07-12T01:01:59.191Z 0.003937408 72.9000015259 true 0.006477819 false 0.0170868731 24.7999992371]\n[2020-07-12T01:02:01.157Z 0.0050077601 51.1 false 0.0077086115 false 0.0205759974 22.4]\n[2020-07-12T01:02:01.445Z 0.0030841269 74.8000030518 true 0.0054286446 false 0.0141479363 19.6000003815]\n[2020-07-12T01:02:04.938Z 0.0048169262 53.5 false 0.0074949679 false 0.0199674343 21.7]\n[2020-07-12T01:02:05.182Z 0.0025840714 75.5999984741 false 0.0047765452 false 0.0123403139 19.6000003815]\n[2020-07-12T01:02:12.428Z 0.0030488793 74.9000015259 true 0.0053836916 false 0.014022829 19.6000003815]\n[2020-07-12T01:02:16.506Z 0.0048277855 53.5 false 0.0075071874 false 0.0200022097 21.7]\n[2020-07-12T01:02:19.376Z 0.0030401715 74.9000015259 true 0.005372564 false 0.0139918711 19.6000003815]\n[2020-07-12T01:02:21.754Z 0.0041428371 77.5999984741 true 0.0067205832 false 0.0177717486 26.8999996185]\n[2020-07-12T01:02:29.017Z 0.0048400659 53.5 false 0.0075209965 false 0.0200415141 21.7]\n[2020-07-12T01:02:33.443Z 0.0042300404 77.5999984741 true 0.0068226226 false 0.0180601254 26.7999992371]\n[2020-07-12T01:02:35.686Z 0.00255591 75.5999984741 false 0.0047388314 false 0.0122362642 19.6000003815]\n[2020-07-12T01:02:41.697Z 0.0030488793 75 true 0.0053836916 false 0.014022829 19.6000003815]\n[2020-07-12T01:03:03.206Z 0.0042019019 77.5999984741 true 0.006789761 false 0.0179672218 26.7999992371]\n[2020-07-12T01:03:04.701Z 0.0049946711 51.3 false 0.0076940309 false 0.0205344276 22.5]\n[2020-07-12T01:03:04.768Z 0.0040601528 72.6999969482 true 0.0066232815 false 0.0174970393 24.7999992371]\n[2020-07-12T01:03:05.999Z 0.0040886168 77.5 true 0.0066568388 false 0.0175917499 26.7999992371]\n[2020-07-12T01:03:08.403Z 0.0048101357 53.7 false 0.0074873232 false 0.0199456799 21.8]\n[2020-07-12T01:03:08.942Z 0.0049860142 51.1 false 0.0076843815 false 0.02050692 22.4]\n[2020-07-12T01:03:10.023Z 0.0048141805 53.5 false 0.0074918772 false 0.0199586389 21.7]\n[2020-07-12T01:03:12.863Z 0.0050019251 51.1 false 0.0077021129 false 0.020557469 22.3]<\/code><\/pre>\n<\/div>\n<h4>Querying Number Data into an ASCII Line Chart<\/h4>\n<p>Using a subcommand of <code>read<\/code>, you can also run a TQL query and read the results into a graph. For example:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli read graph device1 -l 10 --columns temp,humidity\n\n[ { \"name\": \"device1\", \"stmt\": \"select * limit 10\", \"columns\": [\"temp\",\"humidity\"], \"hasPartialExecution\": true }]\n 77.60 \u253c\u256e\n 75.66 \u2524\u2570\u256e                   \u256d\u256e                                          \u256d\u256e                    \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 73.73 \u2524 \u2570\u256e                 \u256d\u256f\u2570\u256e                   \u256d\u256e                   \u256d\u256f\u2570\u256e                  \u256d\u256f\n 71.79 \u2524  \u2570\u256e               \u256d\u256f  \u2502                  \u256d\u256f\u2570\u256e                  \u2502  \u2570\u256e                \u256d\u256f\n 69.85 \u2524   \u2570\u256e             \u256d\u256f   \u2570\u256e                \u256d\u256f  \u2570\u256e                \u256d\u256f   \u2570\u256e              \u256d\u256f\n 67.92 \u2524    \u2502            \u256d\u256f     \u2570\u256e              \u256d\u256f    \u2570\u256e              \u256d\u256f     \u2570\u256e            \u256d\u256f\n 65.98 \u2524    \u2570\u256e          \u256d\u256f       \u2570\u256e            \u256d\u256f      \u2570\u256e            \u256d\u256f       \u2570\u256e          \u256d\u256f\n 64.04 \u2524     \u2570\u256e        \u256d\u256f         \u2570\u256e          \u256d\u256f        \u2570\u256e          \u256d\u256f         \u2570\u256e        \u256d\u256f\n 62.11 \u2524      \u2570\u256e      \u256d\u256f           \u2570\u256e        \u256d\u256f          \u2570\u256e        \u256d\u256f           \u2570\u256e      \u256d\u256f\n 60.17 \u2524       \u2570\u256e    \u256d\u256f             \u2570\u256e      \u256d\u256f            \u2502       \u256d\u256f             \u2570\u256e    \u256d\u256f\n 58.23 \u2524        \u2570\u256e  \u256d\u256f               \u2570\u256e    \u256d\u256f             \u2570\u256e     \u256d\u256f               \u2570\u256e  \u256d\u256f\n 56.30 \u2524         \u2570\u256e\u256d\u256f                 \u2570\u256e  \u256d\u256f               \u2570\u256e   \u256d\u256f                 \u2570\u256e\u256d\u256f\n 54.36 \u2524          \u2570\u256f                   \u2570\u256e\u256d\u256f                 \u2570\u256e  \u2502                   \u2570\u256f\n 52.42 \u2524                                \u2502\u2502                   \u2570\u256e\u256d\u256f\n 50.49 \u2524                                \u2570\u256f                    \u2570\u256f\n 48.55 \u2524\n 46.61 \u2524\n 44.68 \u2524\n 42.74 \u2524\n 40.80 \u2524\n 38.87 \u2524\n 36.93 \u2524\n 34.99 \u2524\n 33.06 \u2524\n 31.12 \u2524\n 29.18 \u2524\n 27.25 \u253c\u2500\u256e\n 25.31 \u2524 \u2570\u2500\u2500\u2500\u256e                                   \u256d\u2500\u2500\u2500\u2500\u256e\n 23.37 \u2524     \u2570\u2500\u2500\u2500\u256e                      \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f    \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n 21.44 \u2524         \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e       \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u256f                      \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e     \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n 19.50 \u2524                 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f                                     \u2570\u2500\u2500\u2500\u2500\u2500\u256f              \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n                                          Col names from container device1\n\n                                                \u25a0 temp   \u25a0 humidity<\/code><\/pre>\n<\/div>\n<p>The results are color-coded so that you can accurately see which cols are mapped to which values. It also automatically omits non-number types if you just want to read the entire container a line chart:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli read graph device1 -l 5\n\nColumn ts (of type TIMESTAMP ) is not a `number` type. Omitting\nColumn light (of type BOOL ) is not a `number` type. Omitting\nColumn motion (of type BOOL ) is not a `number` type. Omitting\n 77.60 \u253c\u2500\u256e\n 75.01 \u2524 \u2570\u2500\u256e                                            \u256d\u2500\u256e\n 72.43 \u2524   \u2570\u2500\u2500\u256e                                      \u256d\u2500\u2500\u256f \u2570\u2500\u2500\u256e                                          \u256d\u2500\u2500\n 69.84 \u2524      \u2570\u2500\u2500\u256e                                \u256d\u2500\u2500\u256f       \u2570\u2500\u2500\u256e                                     \u256d\u2500\u256f\n 67.25 \u2524         \u2570\u2500\u256e                           \u256d\u2500\u2500\u256f             \u2570\u2500\u256e                                \u256d\u2500\u2500\u256f\n 64.67 \u2524           \u2570\u2500\u2500\u256e                     \u256d\u2500\u2500\u256f                  \u2570\u2500\u2500\u256e                          \u256d\u2500\u2500\u256f\n 62.08 \u2524              \u2570\u2500\u2500\u256e               \u256d\u2500\u2500\u256f                        \u2570\u2500\u2500\u256e                    \u256d\u2500\u2500\u256f\n 59.49 \u2524                 \u2570\u2500\u256e          \u256d\u2500\u2500\u256f                              \u2570\u2500\u2500\u256e              \u256d\u2500\u2500\u256f\n 56.91 \u2524                   \u2570\u2500\u2500\u256e    \u256d\u2500\u2500\u256f                                    \u2570\u2500\u256e         \u256d\u2500\u2500\u256f\n 54.32 \u2524                      \u2570\u2500\u2500\u2500\u2500\u256f                                         \u2570\u2500\u2500\u256e   \u256d\u2500\u2500\u256f\n 51.73 \u2524                                                                        \u2570\u2500\u2500\u2500\u256f\n 49.15 \u2524\n 46.56 \u2524\n 43.97 \u2524\n 41.39 \u2524\n 38.80 \u2524\n 36.21 \u2524\n 33.63 \u2524\n 31.04 \u2524\n 28.46 \u2524\n 25.87 \u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e                                                                                    \u256d\u2500\u2500\n 23.28 \u2524           \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e                                              \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n 20.70 \u2524                       \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n 18.11 \u2524\n 15.52 \u2524\n 12.94 \u2524\n 10.35 \u2524\n  7.76 \u2524\n  5.18 \u2524\n  2.59 \u2524\n  0.00 \u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n                                          Col names from container device1\n\n                                    \u25a0 co   \u25a0 humidity   \u25a0 lpg   \u25a0 smoke   \u25a0 temp<\/code><\/pre>\n<\/div>\n<h4>Creating Containers<\/h4>\n<p>You can create containers using an interactive question prompt in the CLI. It will ask for container name, container type, rowkey, and col names and types.<\/p>\n<p>For example, let&#8217;s create a new time series container with two columns:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli create\n\n\n\u2714 Container Name: \u2026 sample1\n\u2714 Choose: \u2026 TIME_SERIES\n\u2714 How Many Columns for this Container? \u2026 2\n\u2714 Col name For col #1 \u2026 ts\n\u2714 Col #1(TIMESTAMP CONTAINERS ARE LOCKED TO TIMESTAMP FOR THEIR ROWKEY) \u2026 TIMESTAMP\n\u2714 Col name For col #2 \u2026 temp\n\u2714 Column Type for col #2 \u2026 DOUBLE\n\u2714 Make Container? \n{\n    \"container_name\": \"sample1\",\n    \"container_type\": \"TIME_SERIES\",\n    \"rowkey\": true,\n    \"columns\": [\n        {\n            \"name\": \"ts\",\n            \"type\": \"TIMESTAMP\",\n            \"index\": null\n        },\n        {\n            \"name\": \"temp\",\n            \"type\": \"DOUBLE\",\n            \"index\": null\n        }\n    ]\n} \u2026 YES\n{\"container_name\":\"sample1\",\"container_type\":\"TIME_SERIES\",\"rowkey\":true,\"columns\":[{\"name\":\"ts\",\"type\":\"TIMESTAMP\",\"index\":null},{\"name\":\"temp\",\"type\":\"DOUBLE\",\"index\":null}]}\n201 Created<\/code><\/pre>\n<\/div>\n<p>If you can&#8217;t easily follow along with the prompt here, please just download the tool and try it for yourself!<\/p>\n<p>And note, as explained in the prompts, if you select to create a TIME_SERIES Container, the rowkey is auto set to true and the first col must have a type of TIMESTAMP. Collection containers have different rules.<\/p>\n<h4>Putting Rows to Containers<\/h4>\n<p>Similarly, you can follow along with the prompt to push data into your container, 1 by 1. Here we will push to our new container <code>sample1<\/code> and use <code>NOW()<\/code> as our current timestamp:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\"> \n$ griddb-cloud-cli put sample1\n\nContainer Name: sample1\n\u2714 Column 1 of 2\n Column Name: ts\n Column Type: TIMESTAMP \u2026 NOW()\n\u2714 Column 2 of 2\n Column Name: temp\n Column Type: DOUBLE \u2026 20.2\n[[\"2025-04-30T07:43:03.700Z\",  20.2]]\n\u2714 Add the Following to container sample1? \u2026 YES\n200 OK<\/code><\/pre>\n<\/div>\n<h4>Ingesting CSV Data<\/h4>\n<p>You can also ingest full CSV files with this tool. It too uses an interactive prompt as there is information that needs to be set for each col, such as index position in CSV and data type. Once you set those, it will ingest the data in chunks of 1000.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\"> \n\n$ griddb-cloud-cli ingest iot_telemetry_data.csv\n\n\u2714 Does this container already exist? \u2026 NO\nUse CSV Header names as your GridDB Container Col names? \nts,device,co,humidity,light,lpg,motion,smoke,temp\n\u2714 Y\/n \u2026 YES\n\u2714 Container Name: \u2026 device6\n\u2714 Choose: \u2026 TIME_SERIES\n\u2714 Col ts(TIMESTAMP CONTAINERS ARE LOCKED TO TIMESTAMP FOR THEIR ROWKEY) \u2026 TIMESTAMP\n\u2714 (device) Column Type \u2026 STRING\n\u2714 (co) Column Type \u2026 DOUBLE\n\u2714 (humidity) Column Type \u2026 DOUBLE\n\u2714 (light) Column Type \u2026 BOOL\n\u2714 (lpg) Column Type \u2026 DOUBLE\n\u2714 (motion) Column Type \u2026 BOOL\n\u2714 (smoke) Column Type \u2026 DOUBLE\n\u2714 (temp) Column Type \u2026 DOUBLE\n        },\n        {\n            \"name\": \"device\",\n            \"type\": \"STRING\",\n            \"index\": null\n        },\n        {\n            \"name\": \"co\",\n            \"type\": \"DOUBLE\",\n            \"index\": null\n        },\n        {\n            \"name\": \"humidity\",\n            \"type\": \"DOUBLE\",\n            \"index\": null\n        },\n        {\n            \"name\": \"light\",\n            \"type\": \"BOOL\",\n            \"index\": null\n        },\n        {\n            \"name\": \"lpg\",\n            \"type\": \"DOUBLE\",\n            \"index\": null\n        },\n        {\n            \"name\": \"motion\",\n            \"type\": \"BOOL\",\n            \"index\": null\n        },\n        {\n            \"name\": \"smoke\",\n            \"type\": \"DOUBLE\",\n            \"index\": null\n        },\n        {\n            \"name\": \"temp\",\n            \"type\": \"DOUBLE\",\n            \"index\": null\n        }\n    ]\n} \u2026 YES\n{\"container_name\":\"device6\",\"container_type\":\"TIME_SERIES\",\"rowkey\":true,\"columns\":[{\"name\":\"ts\",\"type\":\"TIMESTAMP\",\"index\":null},{\"name\":\"device\",\"type\":\"STRING\",\"index\":null},{\"name\":\"co\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"humidity\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"light\",\"type\":\"BOOL\",\"index\":null},{\"name\":\"lpg\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"motion\",\"type\":\"BOOL\",\"index\":null},{\"name\":\"smoke\",\"type\":\"DOUBLE\",\"index\":null},{\"name\":\"temp\",\"type\":\"DOUBLE\",\"index\":null}]}\n201 Created\n\nContainer Created. Starting Ingest\n\n0 ts ts\n1 device device\n2 co co\n3 humidity humidity\n4 light light\n5 lpg lpg\n6 motion motion\n7 smoke smoke\n8 temp temp\n\u2714 Is the above mapping correct? \u2026 YES\nIngesting. Please wait...\nInserting 1000 rows\n200 OK\nInserting 1000 rows\n200 OK\nInserting 1000 rows<\/code><\/pre>\n<\/div>\n<p>Notice here, in this example, it asks if the container exists in your DB yet. If you select NO, it will create the container for you as shown above. But if you select YES, it will allow you to pick the container from your list and then map the proper indices, and then ingest that way &#8212; handy!<\/p>\n<h4>SQL Commands<\/h4>\n<p>Sometimes you will need to use SQL because its flexibility and for its ability to use and manipulate partitioned tables. There are three subcommands you can use which follow the <code>sql<\/code> command: create, update, query. Let&#8217;s walk through each one (and yes, they are <em>exactly<\/em> what they sound like).<\/p>\n<p>As a note, you will need to include the <code>-s<\/code> string with every command (it stands for string, it just represents the raw sql string).<\/p>\n<p>First, let&#8217;s create a new partitioned table:<\/p>\n<p><code>griddb-cloud-cli sql query -s<\/code><\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli sql create -s \"CREATE TABLE IF NOT EXISTS pyIntPart1 (date TIMESTAMP NOT NULL PRIMARY KEY, value STRING) WITH (expiration_type='PARTITION',expiration_time=10,expiration_time_unit='DAY') PARTITION BY RANGE (date) EVERY (5, DAY);\"\n\n[{\"stmt\": \"CREATE TABLE IF NOT EXISTS pyIntPart1 (date TIMESTAMP NOT NULL PRIMARY KEY, value STRING) WITH (expiration_type='PARTITION',expiration_time=10,expiration_time_unit='DAY') PARTITION BY RANGE (date) EVERY (5, DAY);\" }]<\/code><\/pre>\n<\/div>\n<p>Now we have our table. Now let&#8217;s push some data into it:<\/p>\n<p><code>griddb-cloud-cli sql update -s<\/code><\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\"> \n$ griddb-cloud-cli sql update -s \"INSERT INTO pyIntPart2(date, value) VALUES (NOW(), 'fourth')\"\n\n[{\"stmt\": \"INSERT INTO pyIntPart2(date, value) VALUES (NOW(), 'fourth')\" }]\n[{\"updatedRows\":1,\"status\":1,\"message\":null,\"stmt\":\"INSERT INTO pyIntPart2(date, value) VALUES (NOW(), 'fourth')\"}]<\/code><\/pre>\n<\/div>\n<p>And then read from it:<\/p>\n<p><code>griddb-cloud-cli sql query -s<\/code><\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli sql query -s \"select * from pyIntPart2 limit 1\" --pretty\n\n[{\"stmt\": \"select * from pyIntPart2 limit 1\" }]\n\n[\n    [\n        {\n            \"Name\": \"date\",\n            \"Type\": \"TIMESTAMP\",\n            \"Value\": \"2025-04-30T14:58:00.255Z\"\n        },\n        {\n            \"Name\": \"value\",\n            \"Type\": \"STRING\",\n            \"Value\": \"fourth\"\n        }\n    ]\n]<\/code><\/pre>\n<\/div>\n<p>And as explained above, the <code>read<\/code> command uses TQL under the hood, which does not have access to partitioned tables, so your use of read will fail on this particular table:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ griddb-cloud-cli read pyIntPart2\n\n2025\/04\/30 09:09:41 400 Error: [151001:TQ_SYNTAX_ERROR_EXECUTION] Partial\/Distribute TQL does not support order by and selection expression except for '*' (address=172.25.23.69:10001, partitionId=27) (containerName=pyIntPart2)<\/code><\/pre>\n<\/div>\n<h2>Conclusion<\/h2>\n<p>We hope that the GridDB Cloud CLI tool will be helpful and we hope this article showcased its strengths adequately!<\/p>\n<p>And of course, because this tool is completely open source, we encourage users to tinker and expand the current suite of available features. Some of the stuff that may be coming from us: JSON-based table creation, pushing rows without interactive mode, &amp; many more!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it&#8217;s simple enough to get started using GridDB Cloud&#8217;s WebAPI, we wanted to make some of the simple commands usable from the CLI without having to make CURL requests which include your authentication headers in every command. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":52138,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-52137","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>Introducing the GridDB Cloud CLI Tool | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it&#039;s simple enough to get started using GridDB Cloud&#039;s\" \/>\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.net\/en\/blog\/griddb-cloud-cli\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing the GridDB Cloud CLI Tool | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it&#039;s simple enough to get started using GridDB Cloud&#039;s\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\" \/>\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=\"2025-05-29T07:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.griddb.net\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd-1024x1024.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\"},\"author\":{\"name\":\"Israel\",\"@id\":\"https:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\"},\"headline\":\"Introducing the GridDB Cloud CLI Tool\",\"datePublished\":\"2025-05-29T07:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\"},\"wordCount\":1068,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.griddb.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\",\"name\":\"Introducing the GridDB Cloud CLI Tool | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/www.griddb.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png\",\"datePublished\":\"2025-05-29T07:00:00+00:00\",\"description\":\"We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it's simple enough to get started using GridDB Cloud's\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png\",\"contentUrl\":\"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png\",\"width\":2048,\"height\":2048},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.griddb.net\/en\/#website\",\"url\":\"https:\/\/www.griddb.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:\/\/www.griddb.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.griddb.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.griddb.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/www.griddb.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.griddb.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:\/\/www.griddb.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:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\",\"name\":\"Israel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.griddb.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:\/\/www.griddb.net\/en\/author\/israel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducing the GridDB Cloud CLI Tool | GridDB: Open Source Time Series Database for IoT","description":"We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it's simple enough to get started using GridDB Cloud's","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.net\/en\/blog\/griddb-cloud-cli\/","og_locale":"en_US","og_type":"article","og_title":"Introducing the GridDB Cloud CLI Tool | GridDB: Open Source Time Series Database for IoT","og_description":"We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it's simple enough to get started using GridDB Cloud's","og_url":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2025-05-29T07:00:00+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd-1024x1024.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":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/"},"author":{"name":"Israel","@id":"https:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740"},"headline":"Introducing the GridDB Cloud CLI Tool","datePublished":"2025-05-29T07:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/"},"wordCount":1068,"commentCount":0,"publisher":{"@id":"https:\/\/www.griddb.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/","url":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/","name":"Introducing the GridDB Cloud CLI Tool | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/www.griddb.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png","datePublished":"2025-05-29T07:00:00+00:00","description":"We have already written a Quick Start Guide on how to use GridDB Cloud. And though we believe it's simple enough to get started using GridDB Cloud's","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/griddb-cloud-cli\/#primaryimage","url":"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png","contentUrl":"\/wp-content\/uploads\/2025\/12\/Gemini_Generated_Image_buvdwcbuvdwcbuvd.png","width":2048,"height":2048},{"@type":"WebSite","@id":"https:\/\/www.griddb.net\/en\/#website","url":"https:\/\/www.griddb.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:\/\/www.griddb.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.griddb.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.griddb.net\/en\/#organization","name":"Fixstars","url":"https:\/\/www.griddb.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.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:\/\/www.griddb.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:\/\/www.griddb.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740","name":"Israel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.griddb.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:\/\/www.griddb.net\/en\/author\/israel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/52137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/comments?post=52137"}],"version-history":[{"count":0,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/52137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media\/52138"}],"wp:attachment":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media?parent=52137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/categories?post=52137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/tags?post=52137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}