{"id":46553,"date":"2017-07-25T00:00:00","date_gmt":"2017-07-25T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/aggregation-with-griddb\/"},"modified":"2025-11-13T12:54:25","modified_gmt":"2025-11-13T20:54:25","slug":"aggregation-with-griddb","status":"publish","type":"post","link":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/","title":{"rendered":"Aggregation Functions in GridDB"},"content":{"rendered":"<h4>Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such as minimum value, average value or the sum of all values. We usually use these results for making conclusions or inferences about data and they are also great for observing patterns or trends in your data over time. Other aggregation results such as standard deviation and variance give a means for estimating the reliability of a data sample. An example would be how a high standard deviation or variance could mean that there is a high spread of the measurements in a data set. This can make these measurements less certain or reliable. GridDB provides several ways and functions for developers to aggregate data through their API.<\/h4>\n<h4>Aggregation in GridDB GridDB provides various built-in API functions that can be used to collect aggregation data. In the Java API for GridDB, aggregation methods return objects of type<\/h4>\n<p><code>AggregationResult<\/code>. These objects are usually in the form of a single result instead of a set of rows from a container. Aggregation results that GridDB can collect include minimum, maximum, average values, standard deviation, number of rows, sum of all rows, and variance. You can fetch these results using the <code>.aggregate<\/code> method for TimeSeries containers or through TQL queries for Collections.<\/p>\n<h4>Performing Aggregation with TQL Queries TQL is an abbreviation for Terminology Query Language. It is GridDB&#8217;s simplified version of SQL that is used to make standard queries and data operations into containers. TQL also provides the ability to obtain the execution plans or analysis on query statements. Use standard strings to express TQL and issue them with<\/h4>\n<p><code>.query<\/code> or <code>gsQuery<\/code> functions from the GridDB API. TQL can be used perform aggregation queries on both collections and TimeSeries containers. Use either the <code>.fetch()<\/code> <code>gsFetch<\/code> functions to obtain the aggregation results and use the methods mentioned earlier to obtain the number. Let&#8217;s say we have a Collection in Java with a Row schema in the form of a Java class called <em>ClimateReading<\/em>. The variable name <code>climateContainer<\/code> is cast to this collection. We wish to obtain both the standard deviation and the average of the &#8220;temperature&#8221; column in this container. We start by forming TQL queries as strings and use the query and fetch functions from the GridDB API to obtain the aggregation results.<\/p>\n<pre><span style=\"font-size: 10pt;\">Container&lt;String,ClimateReading&gt; climateContainer = store.getCollection(\"climate\",ClimateReading.class); \nString averageTql = \"SELECT AVG(temperature) FROM climate\";\nString standardDeviationTql&gt;= \"SELECT STDDEV(temperature) FROM climate\";\nQuery&lt;AggregationResult&gt; averageQuery = climateContainer.query(averageTql,AggregationResult.class);\nQuery&lt;AggregationResult&gt; standardDeviationQuery = climateContainer.query(standardDeviationTql, AggregationResult.class);\nRowSet&lt;AggregationResult&gt; rowSet = aggregationQuery.fetch();\/\/Set of one row which has the result\nRowSet&lt;AggregationResult&gt; stdDeviationSet = deviationQuery.fetch();\nAggregationResult average = rowSet.next();\nAggregationResult stdDev = stdDeviationSet.next();\nSystem.out.println(\"The average temperature is \" + average.getDouble());\nSystem.out.println(\"The standard deviation of the temperature is \" + stdDev.getDouble());\n<\/span><\/pre>\n<p>Output<\/p>\n<pre>The average temperature is 73.56\nThe standard deviation of the temperature is 4.62\n<\/pre>\n<h4>Aggregation on TimeSeries Containers To retrieve an aggregation result for a TimeSeries container in Java simply use the<\/h4>\n<p><code>.aggregate<\/code> method. Select the column you want to query and the type of aggregation you wish to calculates and two dates you want to set as your starting and ending dates. These four parameters make up your aggregation query. Once this query is <em>fetched<\/em>, an <em>AggregationResult<\/em> is returned. Use either <code>.getDouble()<\/code> or <code>.getLong()<\/code> calls to retrieve the numbers from AggregationResult objects. In the example below there is a TimeSeries container set to the variable <code>timeSeries<\/code>. It has a numeric column called &#8220;light&#8221; that we wish to obtain the average for. We also want to limit the rows we include in our calculation to be between a set starting date and ending date. If you do not want to have a starting date or ending date on the query, simply set the first or second parameter of your query to <code>null<\/code>. These dates are cast as <em>Date<\/em> objects in the variables <code>start<\/code> and <code>end<\/code> respectively.<\/p>\n<pre><span style=\"font-size: 10pt;\">\/\/ Get average from earliest record to latest record in the container on the light column\nAggregationResult averageResult = timeSeries.aggregate(start,end,light,Aggregation.AVERAGE);\nSystem.out.println(\"The average light value is \" + averageResult.getDouble());<\/span> \n<\/pre>\n<p>Output:<\/p>\n<pre>The average light value is 29.82\n<\/pre>\n<h4>Time Weighted Averages Sometimes when obtaining the average of a column from a database, the normal average that we think of (sum of all values divided by the number of values) is not enough. An aggregation result that is better suited for time-related data is a time average. A time weighted average not only factors all the values of a measurement, but also the amount of time that is between them. One example could be a sensor that records measurements at different or sporadic time spans. This sensor might have periods where there were 3 seconds between its recordings. After a few hours however, this time span between readings could have increased to 6 seconds or more. One way to account for these discrepancies is to weigh the average itself by the time values of all the entries in the table along with the time spans between their adjacent rows. GridDB provides the ability to obtain time-weighted averages for TimeSeries containers.<\/h4>\n<h4>Calculating a Time Weighted Average Time averages are aggregation values that are unique to<\/h4>\n<p><code>TimeSeries<\/code> containers. You obtain these results with the <code>TIME_AVG<\/code> TQL query or the <code>WEIGHTED_AVERAGE<\/code> aggregation. Weighted averages in GridDB are calculated by giving every value in a row a weighted value that is half the time span in seconds between the two rows adjacent to it (the rows before and after). Let&#8217;s say we want to collect the weighted average of a column called <em>light<\/em> in a TimeSeries container. In one row, we can call * row 10*, it has a timestamp of June 22nd 8:23:43 and a light value of 23. The row preceding it was inserted 4 seconds before it. The following row was inserted 10 seconds after row 10. The weighted value of row 10 is:<\/p>\n<pre>(10 + 4 ) \/ 2 = 7 \n<\/pre>\n<p>In a container with 5 rows that were inserted at the below times:<\/p>\n<pre>Row     Time     Value                    Weighted-Value\n0          0        20                                10\n1         10        30             (10 + 15 ) \/ 2 = 12.5\n2         25        50                 (15 + 5) \/ 2 = 10\n3         30        70               (5 + 30) \/ 2 = 17.5\n4         60        60                                30\n<\/pre>\n<p>The weighted average is the sum of all values divided by the sum of all weighted values.<\/p>\n<pre><span style=\"font-size: 10pt;\">Sum of Values:      20 + 30 + 50 + 70  + 60 = 230   \nSum of Weights:     10 + 12.5 + 17.5 + 10   =  50   \nSum of Values \/ Sum of Weights:         230\/50  = 4.6\n<\/span><\/pre>\n<p>We are have a weighted average of 4.6. More information about the aggregation operations in GridDB can be found<\/p>\n<p><a href=\"https:\/\/griddb.net\/en\/docs\/GridDB_API_Reference.html#sec-3.3.2\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>. Learn more about GridDB APIs at the <a href=\"https:\/\/griddb.net\/en\/docs\/GridDB_API_Reference.html\" target=\"_blank\" rel=\"noopener noreferrer\">GridDB API reference<\/a> page.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such as minimum value, average value or the sum of all values. We usually use these results for making conclusions or inferences about data and they are also great for observing patterns or trends [&hellip;]<\/p>\n","protected":false},"author":123,"featured_media":22043,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46553","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>Aggregation Functions in GridDB | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such\" \/>\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\/aggregation-with-griddb\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Aggregation Functions in GridDB | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/\" \/>\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=\"2017-07-25T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-13T20:54:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/griddb.net\/wp-content\/uploads\/2017\/07\/blog_title_14.png\" \/>\n\t<meta property=\"og:image:width\" content=\"870\" \/>\n\t<meta property=\"og:image:height\" content=\"490\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joshua Pascascio\" \/>\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=\"Joshua Pascascio\" \/>\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.net\/en\/blog\/aggregation-with-griddb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/\"},\"author\":{\"name\":\"Joshua Pascascio\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/ca72185e9a3778df765a76313f789fd8\"},\"headline\":\"Aggregation Functions in GridDB\",\"datePublished\":\"2017-07-25T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:54:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/\"},\"wordCount\":898,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2017\/07\/blog_title_14.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/\",\"name\":\"Aggregation Functions in GridDB | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2017\/07\/blog_title_14.png\",\"datePublished\":\"2017-07-25T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:54:25+00:00\",\"description\":\"Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2017\/07\/blog_title_14.png\",\"contentUrl\":\"\/wp-content\/uploads\/2017\/07\/blog_title_14.png\",\"width\":870,\"height\":490},{\"@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\/ca72185e9a3778df765a76313f789fd8\",\"name\":\"Joshua Pascascio\",\"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\/872ef8be79cb5117c256feb4c279ac41b954bfba599d647db925185c449aff1c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/872ef8be79cb5117c256feb4c279ac41b954bfba599d647db925185c449aff1c?s=96&d=mm&r=g\",\"caption\":\"Joshua Pascascio\"},\"url\":\"https:\/\/griddb.net\/en\/author\/joshua\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Aggregation Functions in GridDB | GridDB: Open Source Time Series Database for IoT","description":"Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such","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\/aggregation-with-griddb\/","og_locale":"en_US","og_type":"article","og_title":"Aggregation Functions in GridDB | GridDB: Open Source Time Series Database for IoT","og_description":"Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such","og_url":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2017-07-25T07:00:00+00:00","article_modified_time":"2025-11-13T20:54:25+00:00","og_image":[{"width":870,"height":490,"url":"https:\/\/griddb.net\/wp-content\/uploads\/2017\/07\/blog_title_14.png","type":"image\/png"}],"author":"Joshua Pascascio","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Joshua Pascascio","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/"},"author":{"name":"Joshua Pascascio","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/ca72185e9a3778df765a76313f789fd8"},"headline":"Aggregation Functions in GridDB","datePublished":"2017-07-25T07:00:00+00:00","dateModified":"2025-11-13T20:54:25+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/"},"wordCount":898,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2017\/07\/blog_title_14.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/","url":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/","name":"Aggregation Functions in GridDB | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2017\/07\/blog_title_14.png","datePublished":"2017-07-25T07:00:00+00:00","dateModified":"2025-11-13T20:54:25+00:00","description":"Aggregation Values and Why They are Important Aggregation is a way of summarizing data based on certain criteria.Familiar examples include statistics such","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/aggregation-with-griddb\/#primaryimage","url":"\/wp-content\/uploads\/2017\/07\/blog_title_14.png","contentUrl":"\/wp-content\/uploads\/2017\/07\/blog_title_14.png","width":870,"height":490},{"@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\/ca72185e9a3778df765a76313f789fd8","name":"Joshua Pascascio","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\/872ef8be79cb5117c256feb4c279ac41b954bfba599d647db925185c449aff1c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/872ef8be79cb5117c256feb4c279ac41b954bfba599d647db925185c449aff1c?s=96&d=mm&r=g","caption":"Joshua Pascascio"},"url":"https:\/\/griddb.net\/en\/author\/joshua\/"}]}},"_links":{"self":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46553","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\/123"}],"replies":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/comments?post=46553"}],"version-history":[{"count":1,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46553\/revisions"}],"predecessor-version":[{"id":51246,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46553\/revisions\/51246"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media\/22043"}],"wp:attachment":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media?parent=46553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/categories?post=46553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/tags?post=46553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}