{"id":3052,"date":"2012-12-13T19:45:47","date_gmt":"2012-12-13T19:45:47","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=3052"},"modified":"2017-11-06T08:33:39","modified_gmt":"2017-11-06T13:33:39","slug":"big-data-transformations-with-cosort-structured-data","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/","title":{"rendered":"Big Data Transformations with CoSort (Structured Data)"},"content":{"rendered":"<p>In 1992, Digital Equipment Corporation (DEC, long since acquired) asked IRI to develop a 4GL interface to <a href=\"http:\/\/www.iri.com\/products\/cosort\" target=\"_blank\" rel=\"noopener\">CoSort<\/a>\u00a0in the syntax of the VAX VMS sort\/merge utility. The result of that effort was the now widely adopted Sort Control Language (<a title=\"SortCL Program Product Page\" href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\" target=\"_blank\" rel=\"noopener\">SortCL<\/a>) program that is used to define data layouts and manipulations that go way beyond sort\/merge.<\/p>\n<p>SortCL now handles everything from data transformation and reporting to data migration and protection, and is the core of multiple spin-off products and a metadata infrastructure modeled and managed in the <a href=\"http:\/\/www.iri.com\/products\/workbench\/cosort-gui\" target=\"_blank\" rel=\"noopener\">IRI Workbench<\/a> GUI, built on Eclipse\u2122.<\/p>\n<p>In 1999, Database Trends Magazine studied the data transformation functions then in SortCL and labeled CoSort &#8220;The ETL Engine&#8221; in an edition dedicated to data warehousing. Indeed, since the mid 1990&#8217;s, hundreds of DW architects and thousands of EDW, ODS and database users around the world have deployed SortCL scripts directly, or within applications they use, to transform massive amounts of sequential data with built-in functions they can run alone or combination, such as:<\/p>\n<div style=\"text-align: center;\">\n<table  class=\" table table-hover\" border=\"1\" align=\"center\">\n<tbody>\n<tr>\n<td><span class=\"style3\">Sort\/Merge<\/span><\/td>\n<td><span class=\"style3\">Match\/Join<\/span><\/td>\n<\/tr>\n<tr>\n<td><span class=\"style3\">Select\/Filter<\/span><\/td>\n<td><span class=\"style3\">Aggregate<\/span><\/td>\n<\/tr>\n<tr>\n<td><span class=\"style3\">Find\/Replace<\/span><\/td>\n<td><span class=\"style3\">PCRE<\/span><\/td>\n<\/tr>\n<tr>\n<td><span class=\"style3\">Lookup<\/span><\/td>\n<td><span class=\"style3\">Pivot<\/span><\/td>\n<\/tr>\n<tr>\n<td><span class=\"style3\">Rank<\/span><\/td>\n<td><span class=\"style3\">Scrub\/Cleanse<\/span><\/td>\n<\/tr>\n<tr>\n<td><span class=\"style3\">Remap\/Reformat<\/span><\/td>\n<td><span class=\"style3\">Substring<\/span><\/td>\n<\/tr>\n<tr>\n<td><span class=\"style3\">Convert<\/span><\/td>\n<td><span class=\"style3\">Validate<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div style=\"text-align: left;\"><\/div>\n<div style=\"text-align: left;\"><\/div>\n<div style=\"text-align: left;\">\n<p>In addition to the price-performance advantages made possible with the underlying CoSort engine and its<\/p>\n<\/div>\n<div>\n<ul>\n<li>linearly scaling, multi-threaded, co-routine sorting algorithm<\/li>\n<li>sophisticated memory management and good neighbor I\/O<\/li>\n<li>same-script\/same-pass marriage of sorting to joins and aggregations<\/li>\n<li>thread-safe APIs, and custom input, compare, output, and field functions,<\/li>\n<\/ul>\n<div>SortCL also delivers on the promise of open systems by being:<\/div>\n<div>\n<ul>\n<li>cross-platform, by running on every flavor of Unix and Windows with the same scripts<\/li>\n<li>self-documenting, via a language familiar to both mainframe and SQL users<\/li>\n<li>easily invoked, and widely interconnected to third-party applications<\/li>\n<li>interchangeable, through scripts you can easily convert to and from.<\/li>\n<\/ul>\n<\/div>\n<div>\n<p>IRI&#8217;s sweet spot in the market remains the integration and staging of huge flat files which include bulk database extracts (e.g. from <a title=\"IRI FACT\" href=\"http:\/\/www.iri.com\/products\/fact\" target=\"_blank\" rel=\"noopener\">IRI FACT<\/a> operations), mainframe datasets, web and IoT device logs, spreadsheet and application exports, PoS server and telco switch (<a href=\"http:\/\/www.iri.com\/blog\/data-transformation2\/handling-asn1-data-cosort\/\" target=\"_blank\" rel=\"noopener\">CDR<\/a>) feeds, COBOL and shell programs, and so on. With\u00a0CoSort (SortCL)\u00a0running in <a href=\"http:\/\/www.iri.com\/products\/voracity\" target=\"_blank\" rel=\"noopener\">IRI Voracity<\/a> workflows\u00a0that include\u00a0FACT (E) and table creation and bulk load (L) steps, end-to-end ETL jobs\u00a0are built and run\u00a0quickly in Eclipse or on the command line.<\/p>\n<p>In Voracity, most SortCL jobs can run either in the default CoSort engine, or <a href=\"http:\/\/www.iri.com\/solutions\/big-data\/hadoop-optional\">seamlessly in Hadoop<\/a> MapReduce, Spark, Spark Stream, Storm, or Tez. Either option provides an extremely high-speed, simple, and low-cost approach without changing code.<\/p>\n<p>More advanced users can write custom detail and summary reports and protect data at the field level in the same SortCL job script and I\/O pass with their transforms. Data in HDFS, unstructured sources, or in otherwise non-sequential\/non-relational formats, can pass through drivers, or memory through custom input procedures that structure and feed that data to CoSort (or Hadoop) for fast transformations and hand-offs to DB loads, data marts, visualization tools, etc.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In 1992, Digital Equipment Corporation (DEC, long since acquired) asked IRI to develop a 4GL interface to CoSort\u00a0in the syntax of the VAX VMS sort\/merge utility. The result of that effort was the now widely adopted Sort Control Language (SortCL) program that is used to define data layouts and manipulations that go way beyond sort\/merge.<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\" title=\"Big Data Transformations with CoSort (Structured Data)\">Read More<\/a><\/div>\n","protected":false},"author":3,"featured_media":11658,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[108,1,776,91],"tags":[109,25,52,44,77,13,5,142,46,53,850,68,111,143],"class_list":["post-3052","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-big-data-2","category-data-transformation2","category-etl","category-iri-workbench","tag-bi-tools","tag-big-data","tag-business-intelligence-2","tag-cosort","tag-data-migration-2","tag-data-protection-2","tag-data-transformation","tag-etl-engine","tag-etl-tools","tag-fact","tag-iri-workbench","tag-sortcl","tag-structured-data","tag-unstructured-data"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Big Data Transformations with CoSort (Structured Data) - IRI<\/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.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Big Data Transformations with CoSort (Structured Data)\" \/>\n<meta property=\"og:description\" content=\"In 1992, Digital Equipment Corporation (DEC, long since acquired) asked IRI to develop a 4GL interface to CoSort\u00a0in the syntax of the VAX VMS sort\/merge utility. The result of that effort was the now widely adopted Sort Control Language (SortCL) program that is used to define data layouts and manipulations that go way beyond sort\/merge.Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2012-12-13T19:45:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-06T13:33:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png\" \/>\n\t<meta property=\"og:image:width\" content=\"298\" \/>\n\t<meta property=\"og:image:height\" content=\"298\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Friedland\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Friedland\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\"},\"author\":{\"name\":\"David Friedland\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/cdb89f0c0a9c88810b8516d4b140734a\"},\"headline\":\"Big Data Transformations with CoSort (Structured Data)\",\"datePublished\":\"2012-12-13T19:45:47+00:00\",\"dateModified\":\"2017-11-06T13:33:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\"},\"wordCount\":494,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png\",\"keywords\":[\"BI tools\",\"big data\",\"business intelligence\",\"CoSort\",\"data migration\",\"data protection\",\"data transformation\",\"ETL engine\",\"ETL tools\",\"FACT\",\"IRI Workbench\",\"SortCL\",\"structured data\",\"unstructured data\"],\"articleSection\":[\"Big Data\",\"Data Transformation\",\"ETL\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\",\"name\":\"Big Data Transformations with CoSort (Structured Data) - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png\",\"datePublished\":\"2012-12-13T19:45:47+00:00\",\"dateModified\":\"2017-11-06T13:33:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png\",\"width\":298,\"height\":298},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Big Data Transformations with CoSort (Structured Data)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/cdb89f0c0a9c88810b8516d4b140734a\",\"name\":\"David Friedland\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/995ea08bc7d036da625671cb48a636eb?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/995ea08bc7d036da625671cb48a636eb?s=96&d=blank&r=g\",\"caption\":\"David Friedland\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/davidf\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Big Data Transformations with CoSort (Structured Data) - IRI","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.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/","og_locale":"en_US","og_type":"article","og_title":"Big Data Transformations with CoSort (Structured Data)","og_description":"In 1992, Digital Equipment Corporation (DEC, long since acquired) asked IRI to develop a 4GL interface to CoSort\u00a0in the syntax of the VAX VMS sort\/merge utility. The result of that effort was the now widely adopted Sort Control Language (SortCL) program that is used to define data layouts and manipulations that go way beyond sort\/merge.Read More","og_url":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/","og_site_name":"IRI","article_published_time":"2012-12-13T19:45:47+00:00","article_modified_time":"2017-11-06T13:33:39+00:00","og_image":[{"width":298,"height":298,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png","type":"image\/png"}],"author":"David Friedland","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Friedland","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/"},"author":{"name":"David Friedland","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/cdb89f0c0a9c88810b8516d4b140734a"},"headline":"Big Data Transformations with CoSort (Structured Data)","datePublished":"2012-12-13T19:45:47+00:00","dateModified":"2017-11-06T13:33:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/"},"wordCount":494,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png","keywords":["BI tools","big data","business intelligence","CoSort","data migration","data protection","data transformation","ETL engine","ETL tools","FACT","IRI Workbench","SortCL","structured data","unstructured data"],"articleSection":["Big Data","Data Transformation","ETL","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/","url":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/","name":"Big Data Transformations with CoSort (Structured Data) - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png","datePublished":"2012-12-13T19:45:47+00:00","dateModified":"2017-11-06T13:33:39+00:00","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png","width":298,"height":298},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/big-data-transformations-with-cosort-structured-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Big Data Transformations with CoSort (Structured Data)"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/cdb89f0c0a9c88810b8516d4b140734a","name":"David Friedland","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/995ea08bc7d036da625671cb48a636eb?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/995ea08bc7d036da625671cb48a636eb?s=96&d=blank&r=g","caption":"David Friedland"},"url":"https:\/\/www.iri.com\/blog\/author\/davidf\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/12\/data-transform.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/3052"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=3052"}],"version-history":[{"count":147,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/3052\/revisions"}],"predecessor-version":[{"id":11233,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/3052\/revisions\/11233"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/11658"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=3052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=3052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=3052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}