{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/think-different-think-nosql/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/think-different-think-nosql/"},"excerpt":"I just came across  this post  from the high scalability blog. I just want to say what the nosql movement gave me back. We just finished…","timeToRead":1,"frontmatter":{"title":"think different, think nosql","description":"","categories":[],"date":"October 29, 2010","canonical_link":"https://javame.netlify.app//think-different-think-nosql-1f4ad2b1e9ec"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"think different, think nosql\",\n  \"description\": \"\",\n  \"date\": \"2010-10-29T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//think-different-think-nosql-1f4ad2b1e9ec\",\n  \"redirect_from\": [\"/think-different-think-nosql-1f4ad2b1e9ec\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I just came across \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://highscalability.com/blog/2010/10/28/nosql-took-away-the-relational-model-and-gave-nothing-back.html\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"this post\"), \" from the high scalability blog.\"), mdx(\"p\", null, \"I just want to say what the nosql movement gave me back.\"), mdx(\"p\", null, \"We just finished writing a new application which visualizes pseudo realtime analytics information, it\\u2019s a web application, most of our analytics data is stored in hadoop, for this web app we decided to use mysql.\"), mdx(\"p\", null, mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://wiki.apache.org/hadoop/Hive\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Hive\"), \" wouldn\\u2019t be appropriate given its response time to execute a query (and lots of map reduce indeed), so we do get the data from hdfs on an hourly basis and store it in mysql.\"), mdx(\"p\", null, \"After a quick spike on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://hbase.apache.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"hbase\"), \" we picked up mysql because we needed group by semantics, but at the same time we started using mysql in a different way, we don\\u2019t have any relations, we don\\u2019t do joins, we store our data as in a big table.\\xA0\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"So basically we use the best of both words: no relations but sql.\"), mdx(\"p\", null, \"This db grows pretty fast, the application has been running fully operational live for less than a day now and the total db size (two tables) it\\u2019s 48GB.\"), mdx(\"p\", null, \"Then, for once, I came out with a good idea, we split the big table in a dozen of other smaller tables, basically the analytics source regions, what before was a column and a where clause in our queries became just a suffix of the original table.\"), mdx(\"p\", null, \"I\\u2019ve been strongly inspired by the way hadoop manages partitions.\"), mdx(\"p\", null, \"In conclusion that\\u2019s what the noSQL movement gave me back: he made me think differently to common data problems.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"6ceb5864-b894-527d-8afb-7204dda7d757","previous":{"id":"0ffba840-7b2b-5190-8f80-9454464d156c","fields":{"slug":"/wanna-go-fast-reduce-your-feedback-loops/","published":true},"frontmatter":{"redirect_from":["/wanna-go-fast-reduce-your-feedback-loops-ced8be8b8edf"],"redirect_to":null,"title":"wanna go fast? reduce your feedback loops"}},"next":{"id":"b8867697-e25c-50c8-a84c-9aeeb7ff6f5d","fields":{"slug":"/context-is-king/","published":true},"frontmatter":{"redirect_from":["/context-is-king-822a928df708"],"redirect_to":null,"title":"context is king"}},"permalink":"https://javame.netlify.app/think-different-think-nosql/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}