{"id":11444,"date":"2018-07-16T15:51:45","date_gmt":"2018-07-16T13:51:45","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/"},"modified":"2018-07-16T15:51:45","modified_gmt":"2018-07-16T13:51:45","slug":"google-cloud-spanner-no-decimal-numeric-data-types","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/","title":{"rendered":"Google Cloud Spanner &#8211; no decimal numeric data types"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nGoogle Cloud Spanner is a distributed relational database focused on scalability without compromising consistency and integrity. It is available only as a managed service in Google Cloud. Basically, the idea is to keep the scalability advantages of NoSQL database (like Bigtable) but adding transactions, relational tables, SQL, structured data,&#8230; as in the relational databases we love for decades.<br \/>\nThe commercial pitch includes all the NoSQL buzzwords, with the addition of the legacy properties of SQL databases:<br \/>\n<i>Cloud Spanner is a fully managed, mission-critical, relational database service that offers transactional consistency at global scale, schemas, SQL (ANSI 2011 with extensions), and automatic, synchronous replication for high availability.<\/i><br \/>\nHere I&#8217;m testing something that is not mentioned, but is taken for granted with all SQL databases: the ability to add numbers without erroneous arithmetic results.<br \/>\n<!--more--><br \/>\nIt is easy to test on the Google Cloud (which offers 1 year trials) by creating an instance:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpanner001CreateInstance.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpanner001CreateInstance.png\" alt=\"CaptureSpanner001CreateInstance\" width=\"1024\" height=\"905\" class=\"aligncenter size-large wp-image-25337\" \/><\/a><\/p>\n<p>Then create a Spanner database:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpanner002CreateDatabase.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpanner002CreateDatabase.png\" alt=\"CaptureSpanner002CreateDatabase\" width=\"1024\" height=\"479\" class=\"aligncenter size-large wp-image-25336\" \/><\/a><\/p>\n<p>And create a table:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpanner003CreateTable.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpanner003CreateTable.png\" alt=\"CaptureSpanner003CreateTable\" width=\"980\" height=\"542\" class=\"aligncenter size-full wp-image-25335\" \/><\/a><\/p>\n<p>The table creation can also use the SQL create table statement. Here I&#8217;m testing one of the most important features of SQL databases: the numeric datatypes. This is where humans and computers do not speak the same language: Humans have full hands of 10 fingers, where computers deal only with binary digits. Humans numbers are decimal. Computer numbers are binary.<\/p>\n<p>It seems that Google Spanner is binary only. According to the documentation, the only <a href=\"https:\/\/cloud.google.com\/spanner\/docs\/data-types#numeric-types\" target=\"_blank\" rel=\"noopener noreferrer\">numeric types<\/a> are:<\/p>\n<ul>\n<li>INT64 for signed integers up to 9E18<\/li>\n<li>FLOAT64 for floating point IEEE-754<\/li>\n<\/ul>\n<p>So, there are no decimal datatypes and decimal values will be approximated by binary values. This is ok to store computer numbers, but not human numbers such as prices, salaries,&#8230;<\/p>\n<p>In order to show the problem I&#8217;ve created a table with FLOAT64:<\/p>\n<pre><code>\nCREATE TABLE NUMBERS (\n\tID INT64 NOT NULL,\n\tAMOUNT FLOAT64,\n) PRIMARY KEY (ID)\n<\/code><\/pre>\n<p>The SQL Query interface do not allow for DML other than SELECT:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DML-not-supported.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DML-not-supported.png\" alt=\"DML not supported\" width=\"929\" height=\"560\" class=\"aligncenter size-full wp-image-25346\" \/><\/a><\/p>\n<p>So we can use the API or this simple from from the &#8216;data&#8217; tab:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpannerInsert.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSpannerInsert.png\" alt=\"CaptureSpannerInsert\" width=\"983\" height=\"445\" class=\"aligncenter size-full wp-image-25348\" \/><\/a><\/p>\n<p>I&#8217;ve added 10 rows with &#8216;0.1&#8217; which is easy to represent in decimal arithmetic, but not in binary arithmetic. Look at the sum:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureQuery11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureQuery11.png\" alt=\"CaptureQuery1\" width=\"951\" height=\"542\" class=\"aligncenter size-full wp-image-25351\" \/><\/a><\/p>\n<p>This is binary arithmetic applied to decimal numbers: approximation. You can select each rows and see &#8216;0.1&#8217; but when you sum all the 10 rows together, you get less than 1. That&#8217;s probably close enough for some &#8216;BigData&#8217; usage, accountants will not like it.<\/p>\n<p>If you wonder why it takes 100 milliseconds for this 10 rows table, remember that this is a distributed database across 3 continents. Here is the execution plan:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePlan.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePlan.png\" alt=\"CapturePlan\" width=\"1066\" height=\"796\" class=\"aligncenter size-full wp-image-25353\" \/><\/a><\/p>\n<h3>So what?<\/h3>\n<p>Do not forget that all the new trends for databases, in the &#8216;micro-services&#8217; era, are focused at specific use-cases. They do not compete with the &#8216;old&#8217; relational databases which are general purpose and have integrated, version after version, all the different ways to store and process data shared by multiple applications. Those NoSQL and NewSQL can be considered as an alternative only within the scope of what they are designed for. Spanner was desgined for Google internal use in Google AdWords and then provided as a service for similar use. It was developed to solve a specific problem: the lack of transactions in Bigtable.<\/p>\n<p>Note that the Open Source alternative that is close to Google Spanner is <a href=\"https:\/\/www.cockroachlabs.com\" target=\"_blank\" rel=\"noopener noreferrer\">CockroachDB<\/a> which has a <a href=\"https:\/\/www.cockroachlabs.com\/docs\/stable\/decimal.html\" target=\"_blank\" rel=\"noopener noreferrer\">DECIMAL<\/a> datatype to store fixed-point decimal numbers. <\/p>\n<p><em>Updated in 2020: <a href=\"https:\/\/docs.yugabyte.com\/latest\/comparisons\/google-spanner\/\" rel=\"noopener noreferrer\" target=\"_blank\">YugaByteDB <\/a>is also an alternative<\/em>, fully open-source.<\/p>\n<h3>Update 30-SEP-2020<\/h3>\n<p>Finally, a numeric datatype is there in Spanner: <a href=\"https:\/\/cloud.google.com\/spanner\/docs\/data-types#numeric_type\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/cloud.google.com\/spanner\/docs\/data-types#numeric_type<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . Google Cloud Spanner is a distributed relational database focused on scalability without compromising consistency and integrity. It is available only as a managed service in Google Cloud. Basically, the idea is to keep the scalability advantages of NoSQL database (like Bigtable) but adding transactions, relational tables, SQL, structured data,&#8230; as in [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":11452,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[955,229],"tags":[135,1049,1402],"type_dbi":[],"class_list":["post-11444","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-database-administration-monitoring","tag-cloud","tag-google-cloud","tag-spanner"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Google Cloud Spanner - no decimal numeric data types - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google Cloud Spanner - no decimal numeric data types\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . Google Cloud Spanner is a distributed relational database focused on scalability without compromising consistency and integrity. It is available only as a managed service in Google Cloud. Basically, the idea is to keep the scalability advantages of NoSQL database (like Bigtable) but adding transactions, relational tables, SQL, structured data,&#8230; as in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-16T13:51:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSUM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"510\" \/>\n\t<meta property=\"og:image:height\" content=\"475\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Google Cloud Spanner &#8211; no decimal numeric data types\",\"datePublished\":\"2018-07-16T13:51:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/\"},\"wordCount\":575,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/CaptureSUM.png\",\"keywords\":[\"Cloud\",\"Google Cloud\",\"Spanner\"],\"articleSection\":[\"Cloud\",\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/\",\"name\":\"Google Cloud Spanner - no decimal numeric data types - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/CaptureSUM.png\",\"datePublished\":\"2018-07-16T13:51:45+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/CaptureSUM.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/CaptureSUM.png\",\"width\":510,\"height\":475},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/google-cloud-spanner-no-decimal-numeric-data-types\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google Cloud Spanner &#8211; no decimal numeric data types\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/oracle-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Google Cloud Spanner - no decimal numeric data types - dbi Blog","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:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/","og_locale":"en_US","og_type":"article","og_title":"Google Cloud Spanner - no decimal numeric data types","og_description":"By Franck Pachot . Google Cloud Spanner is a distributed relational database focused on scalability without compromising consistency and integrity. It is available only as a managed service in Google Cloud. Basically, the idea is to keep the scalability advantages of NoSQL database (like Bigtable) but adding transactions, relational tables, SQL, structured data,&#8230; as in [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/","og_site_name":"dbi Blog","article_published_time":"2018-07-16T13:51:45+00:00","og_image":[{"width":510,"height":475,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSUM.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Google Cloud Spanner &#8211; no decimal numeric data types","datePublished":"2018-07-16T13:51:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/"},"wordCount":575,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSUM.png","keywords":["Cloud","Google Cloud","Spanner"],"articleSection":["Cloud","Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/","url":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/","name":"Google Cloud Spanner - no decimal numeric data types - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSUM.png","datePublished":"2018-07-16T13:51:45+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSUM.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureSUM.png","width":510,"height":475},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/google-cloud-spanner-no-decimal-numeric-data-types\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Google Cloud Spanner &#8211; no decimal numeric data types"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11444"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11444\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/11452"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11444"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}