{"id":4514,"date":"2018-01-26T13:28:50","date_gmt":"2018-01-26T21:28:50","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4514"},"modified":"2023-05-19T04:21:24","modified_gmt":"2023-05-19T11:21:24","slug":"json-modeling-rdbms-users-video","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/","title":{"rendered":"JSON Modeling for RDBMS Users (video)"},"content":{"rendered":"<div class=\"paragraph\">\n<p>JSON modeling was covered in a <a href=\"https:\/\/www.couchbase.com\/blog\/json-data-modeling-rdbms-users\/\">previous blog post<\/a> which was, in turn, based on a <a href=\"https:\/\/www.couchbase.com\/blog\/csv-migrating-couchbase-relational\/\">CSV import blog post<\/a> that came before that. While writing the post on JSON modeling, it occurred to me that it might be useful to see all the data in motion: from relational, to CSV, to a staging bucket, and finally assembled with the new model.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_json_modeling_video\">JSON modeling video<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\n[youtube https:\/\/www.youtube.com\/watch?v=vVOumslyH4c&amp;w=560&amp;h=315]\n<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A tool that I neglected to mention in any of these earlier posts is <a href=\"https:\/\/csvkit.readthedocs.io\/en\/1.0.2\/\">csvkit<\/a> and specifically <a href=\"https:\/\/csvkit.readthedocs.io\/en\/1.0.2\/scripts\/csvsql.html?highlight=csvsql\">csvsql<\/a>. This tool can pull CSV data from SQL Server, MySQL, Oracle, PostgreSQL, SQLite, Sybase, and Firebird directly into CSV.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_thanks_for_watching\">Thanks for watching!<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>As always, find me on Twitter <a href=\"https:\/\/twitter.com\/mgroves\">@mgroves<\/a>, leave a comment, or post your questions into the <a href=\"https:\/\/www.couchbase.com\/forums\/\">Couchbase forums<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>JSON modeling was covered in a previous blog post which was, in turn, based on a CSV import blog post that came before that. While writing the post on JSON modeling, it occurred to me that it might be useful [&hellip;]<\/p>\n","protected":false},"author":71,"featured_media":3251,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1819],"tags":[1261,1593,1592,1857,1556],"ppma_author":[8937],"class_list":["post-4514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-data-modeling","tag-json","tag-modeling","tag-oracle","tag-relational","tag-sql-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JSON Modeling for RDBMS Users (video) - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"JSON modeling is a vital part of using a document database like Couchbase. There are two key approaches to modeling relationships.\" \/>\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.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JSON Modeling for RDBMS Users (video)\" \/>\n<meta property=\"og:description\" content=\"JSON modeling is a vital part of using a document database like Couchbase. There are two key approaches to modeling relationships.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-26T21:28:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-19T11:21:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/04\/064-hero-model.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"JSON Modeling for RDBMS Users (video)\",\"datePublished\":\"2018-01-26T21:28:50+00:00\",\"dateModified\":\"2023-05-19T11:21:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\"},\"wordCount\":142,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png\",\"keywords\":[\"JSON\",\"modeling\",\"oracle\",\"relational\",\"SQL Server\"],\"articleSection\":[\"Couchbase Server\",\"Data Modeling\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\",\"name\":\"JSON Modeling for RDBMS Users (video) - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png\",\"datePublished\":\"2018-01-26T21:28:50+00:00\",\"dateModified\":\"2023-05-19T11:21:24+00:00\",\"description\":\"JSON modeling is a vital part of using a document database like Couchbase. There are two key approaches to modeling relationships.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png\",\"width\":2048,\"height\":1024,\"caption\":\"Glass ochem by Purpy Pupple, licensed through Creative Commons https:\/\/commons.wikimedia.org\/wiki\/File:Glass_ochem.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JSON Modeling for RDBMS Users (video)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JSON Modeling for RDBMS Users (video) - The Couchbase Blog","description":"JSON modeling is a vital part of using a document database like Couchbase. There are two key approaches to modeling relationships.","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.couchbase.com\/blog\/json-modeling-rdbms-users-video\/","og_locale":"en_US","og_type":"article","og_title":"JSON Modeling for RDBMS Users (video)","og_description":"JSON modeling is a vital part of using a document database like Couchbase. There are two key approaches to modeling relationships.","og_url":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-01-26T21:28:50+00:00","article_modified_time":"2023-05-19T11:21:24+00:00","og_image":[{"width":2048,"height":1024,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/04\/064-hero-model.png","type":"image\/png"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"JSON Modeling for RDBMS Users (video)","datePublished":"2018-01-26T21:28:50+00:00","dateModified":"2023-05-19T11:21:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/"},"wordCount":142,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png","keywords":["JSON","modeling","oracle","relational","SQL Server"],"articleSection":["Couchbase Server","Data Modeling"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/","url":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/","name":"JSON Modeling for RDBMS Users (video) - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png","datePublished":"2018-01-26T21:28:50+00:00","dateModified":"2023-05-19T11:21:24+00:00","description":"JSON modeling is a vital part of using a document database like Couchbase. There are two key approaches to modeling relationships.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/04\/064-hero-model.png","width":2048,"height":1024,"caption":"Glass ochem by Purpy Pupple, licensed through Creative Commons https:\/\/commons.wikimedia.org\/wiki\/File:Glass_ochem.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/json-modeling-rdbms-users-video\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JSON Modeling for RDBMS Users (video)"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves is a guy who loves to code.  It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything.  He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s.  He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community.  He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/4514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=4514"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/4514\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/3251"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=4514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=4514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=4514"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=4514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}