{"id":2943,"date":"2012-11-27T17:01:29","date_gmt":"2012-11-27T17:01:29","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=2943"},"modified":"2017-11-06T08:58:04","modified_gmt":"2017-11-06T13:58:04","slug":"using-binsort","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/","title":{"rendered":"Speeding and Building on Unix bin\/sort"},"content":{"rendered":"<p>The sort included with each Unix-based operating system is a standard command line program that prints lines of input or specified input files in\u00a0the specified\u00a0sorted order.<\/p>\n<p>The bin\/sort interface provided with <a href=\"http:\/\/www.iri.com\/products\/cosort\">IRI CoSort<\/a> is a drop-in <a href=\"http:\/\/www.iri.com\/solutions\/sort-replacements\/bin-sort\">replacement for the sort utility<\/a>\u00a0usually found in the \/bin directory of most Unix\/Linux operating systems, but uses IRI&#8217;s proprietary sort and resource-optimization algorithms to perform system sort jobs much faster.<\/p>\n<p>To function as a drop-in, it is recommended that your system administrator:<\/p>\n<p>1) Renames \/bin\/sort to \/bin\/sort.orig (for safe keeping). Note that the Windows replacement is named unixsort.exe upon installation of CoSort for Windows.<\/p>\n<p>2) Creates a link from the default system \/bin\/sort to the CoSort sort.<\/p>\n<p>Users will then have the sort speed of CoSort without changing any of their own references (within batch scripts and programs).<\/p>\n<p>Given this 10-record input file:<\/p>\n<pre>Adams, John|adams@gmail.com|646-834-9956|Melbourne|Florida\r\nMonroe, James|Monroe@James.com|433-758-2783|Rapid City|South Dakota\r\nJackson, Andrew|Jackson@Andrew.com|145-894-4328|Long Island|New York\r\nVan, Martin|Van@Martin.com|654-763-7612|Tulsa|Oklahom\r\nHarrison, Henry|Harrison@Henry.com|765-978-2457|Aberdeen|South Dakota\r\nTyler, John|Tyler@John.com|554-674-1289|Juneau|Alaska\r\nPolk, James|Polk@James.com|553-563-2399|Baton Rouge|Louisiana\r\nPierce, Franklin|Pierce@Franklin.com|344-891-3289|Salem|Oregon\r\nCleveland, Henry|Cleveland@henry.com|345-548-3282|Kalahari|Delaware\r\nChalse, Logan|Chalse@Logan.com|321-889-4633|Melbourne|Florida\r\n<\/pre>\n<p>When we run the following from the command line:<\/p>\n<pre>sort -s -u -t '|' +4r patient_info.in -o patient_info.out<\/pre>\n<p>the output file contains:<\/p>\n<pre>Monroe, James|Monroe@James.com|433-758-2783|Rapid City|South Dakota\r\nPierce, Franklin|Pierce@Franklin.com|344-891-3289|Salem|Oregon\r\nVan, Martin|Van@Martin.com|654-763-7612|Tulsa|Oklahoma\r\nJackson, Andrew|Jackson@Andrew.com|145-894-4328|Long Island|New York\r\nPolk, James|Polk@James.com|553-563-2399|Baton Rouge|Louisiana\r\nAdams, John|adams@gmail.com|646-834-9956|Melbourne|Florida\r\nCleveland, Henry|Cleveland@henry.com|345-548-3282|Kalahari|Delaware\r\nTyler, John|Tyler@John.com|554-674-1289|Juneau|Alaska\r\n<\/pre>\n<p>The final field (state) was sorted (as indicated by +4 with a &#8220;|&#8221; separator), and:<\/p>\n<ul>\n<li>The sort order was reversed \/ descending<\/li>\n<li>Duplicate records (those containing South Dakota and Florida in this case) were removed, so only one record with these values was kept<\/li>\n<li>The &#8216;stable&#8217; option ensured that the South Dakota record that was kept was the one associated with &#8220;Monroe, James&#8221; and the Florida record is that belonging to &#8220;Adams, John&#8221;<\/li>\n<\/ul>\n<p>The reason these particular records were kept is that they appeared earlier than the other Florida and South Dakota records in the original input file.<\/p>\n<p><strong><br \/>\nUsing SortCL Instead of bin\/sort<\/strong><\/p>\n<p>We recommend that CoSort users eventually convert their bin\/sort commands to equivalent syntax in &#8220;<a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\">SortCL<\/a>&#8221; job scripts. SortCL is the primary user interface in the IRI CoSort package and default data transformation, cleansing, masking, and reporting engine in the <a href=\"http:\/\/www.iri.com\/products\/voracity\">IRI Voracity<\/a> platform. SortCL uses a simple, and familiar (to JCL and SQL users) 4GL to define data layouts and manipulations.<\/p>\n<p>Because SortCL uses the same underlying sort engine as CoSort&#8217;s bin\/sort replacement does, sort performance in SortCL will be just as superior to the system sort. SortCL will provide the added advantages of:<\/p>\n<ul>\n<li>storing the metadata for the input source (if specified in the SortCL job script) centrally for re-use in every SortCL-compatible IRI software job script using that same source (layout)<\/li>\n<li>a far richer set of data manipulation functionality being available through the job script, including SQL-compatible data transformations, report formatting, field-level masking, data cleansing, etc.<\/li>\n<li>free graphical support for job (script) design, management, and execution in Eclipse via <a href=\"http:\/\/www.iri.com\/products\/workbench\">IRI Workbench<\/a><\/li>\n<li><a href=\"http:\/\/www.iri.com\/solutions\/big-data\/hadoop-optional\">seamless Hadoop<\/a> sort (and other SortCL) job execution in MapReduce2, Spark, Spark Stream, Storm or Tez without re-coding<\/li>\n<\/ul>\n<p>The bin\/sort example in the above, as performed on the date source patient_info.in:<\/p>\n<pre>sort -s -u -t '|' +4r patient_info.in -o patient_info.out<\/pre>\n<p>would be expressed as follows in SortCL (in its simplest form):<\/p>\n<pre>\/INFILE=patient_info.in\r\n#\/SPEC=C:DDF_repositorypatient_info.ddf\u00a0 # invokes the metadata for the source\r\n# (commented out here)\r\n\/KEY=(POS=5,SEP=\"|\",DESC)\u00a0\u00a0\u00a0\u00a0 # direct key specification, without requiring metadata\r\n\/STABLE\r\n\/NODUPLICATES\r\n\/OUTFILE=patient_info.out\r\n<\/pre>\n<p>Running the above will produce the same output shown in the above bin\/sort example.<\/p>\n<p>Note the following functional equivalents between the above sortcl script and bin\/sort:<\/p>\n<ul>\n<li>The \/INFILE command is how you specify the input source (stdin is the default source)<\/li>\n<li>The \/KEY statement allows you to directly specify the field position for the sort key and the character separator on which that position is based.<\/li>\n<\/ul>\n<p>In bin\/sort this was done with -t &#8220;|&#8221; +4\u00a0 where 0 was the first field in bin\/sort and 1 was the first field for SortCL counting purposes.<\/p>\n<p>** This direct specification of key parameters with position and separator options (and optionally SIZE) can be done in lieu of simply specifying a field name, if metadata were provided in the input section (via the \/SPEC command, which was commented out above). Note that IRI Workbench features a Metadata Discovery wizard to automate the process of ascertaining metadata where possible.<\/p>\n<ul>\n<li>The DESC option indicates a reverse order sort (the r option in bin\/sort)<\/li>\n<li>The \/STABLE command to preserve input order is the equivalent of -s in bin\/sort<\/li>\n<li>The \/NODUPLICATES command equates to unique (-u) in bin\/sort<\/li>\n<li>The \/OUTFILE command is how you specify the output target (stdout is the default target)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Add Functions to Your Sort Jobs via SortCL<\/strong><\/p>\n<p>Once your bin\/sort job is converted to SortCL, as in the above example, you can now enjoy the full benefits of that interface, described at:<\/p>\n<p><a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\/function-matrix\" target=\"_blank\" rel=\"noopener\">http:\/\/www.iri.com\/products\/cosort\/sortcl\/function-matrix<\/a><\/p>\n<p>To apply format-preserving encryption to the email field, for example, you could simply modify and expand the above job script as follows:<\/p>\n<pre>\/INFILE=patient_info.in\r\n   \/SPEC=C:DDF_repositorypatient_info.ddf\u00a0 # invokes the metadata for the source\r\n\/KEY=(state,desc)\u00a0 # descending sort on the state field\r\n   \/STABLE\r\n   \/NODUPLICATES\r\n\/OUTFILE=encrypted_email.out\r\n   \/PROCESS = RECORD\r\n   \/FIELD=(NAME, POS=1, SEP=\"|\")\r\n   \/FIELD=(ENC_FP_EMAIL=enc_fp_aes256_alphanum(EMAIL, \"12345\"), POS=2, SEP=\"|\")\r\n   # applies the encryption routine to the email field with the passphrase \"12345\"\r\n   \/FIELD=(PHONE, POS=3, SEP=\"|\")\r\n   \/FIELD=(CITY, POS=4, SEP=\"|\")\r\n   \/FIELD=(STATE, POS=5, SEP=\"|\")\r\n<\/pre>\n<p>This would produce the following results:<\/p>\n<pre>Taylor, Zachary|Hwswie@Gqfimdu.dbs|423-560-3289|Charleston|West Virginia\r\nMonroe, James|Tsafdh@Todhu.wqm|433-758-2783|Rapid City|South Dakota\r\nPierce, Franklin|Ltzglh@Mbzogtyv.szo|344-891-3289|Salem|Oregon\r\nVan, Martin|Leb@Iggeqh.vru|654-763-7612|Tulsa|Oklahoma\r\nGrant, Ulysses|Poqcn@Aaoqeat.thg|348-855-3478|Bismarck|North Dakota\r\nJackson, Andrew|Mexdkjh@Iuaddn.xwj|145-894-4328|Long Island|New York\r\nBuchanan, James|Frnulwam@Fzriv.ulf|432-453-3472|Trenton|New Jersey\r\nAdams Quincy|Hbcbe@Rklkhge.pnk|983-245-2954|Lyon|Nevada\r\nFillmore, Millard|Guyqyvll@Qcusvio.tfx|205-773-2347|Lincoln|Nebraska\r\nMadison, James|Tuqzrpq@Tonzp.nvw|563-435-7821|Biloxi|Mississippi\r\nJohnson, Andrew|Mwvptjr@Izjnmd.slp|984-587-2855|Saint Paul|Minnesota\r\nPolk, James|Hvbv@Dsedx.eqo|553-563-2399|Baton Rouge|Louisiana\r\nJefferson, Thomas|Hwyjqjpgn@Frwqqe.pvo|321-890-8293|Goodland|Kansas\r\nAdams, John|cqlai@zdnla.yxk|646-834-9956|Melbourne|Florida\r\nCleveland, Henry|Dmcykglas@wvzzl.wlf|345-548-3282|Kalahari|Delaware\r\nHayes, Rutherford|Hmjmb@Vovhfrzzio.vdv|646-344-1234|Sacramento|California\r\nTyler, John|Ftutv@Aypw.tss|554-674-1289|Juneau|Alaska\r\n<\/pre>\n<p>We still see the same sort that was performed above, but also the email field was encrypted with AES 256-bit format-preserving for the alpha-numeric characters (the @ and . were not encrypted, and the field width was preserved).<\/p>\n<p>Multiple field protection (data masking) options are offered in CoSort, Voracity, or\u00a0<a href=\"http:\/\/www.iri.com\/products\/fieldshield\">IRI FieldShield<\/a>, as they all support the same metadata and job scripting syntax of SortCL.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The sort included with each Unix-based operating system is a standard command line program that prints lines of input or specified input files in\u00a0the specified\u00a0sorted order. The bin\/sort interface provided with IRI CoSort is a drop-in replacement for the sort utility\u00a0usually found in the \/bin directory of most Unix\/Linux operating systems, but uses IRI&#8217;s proprietary<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\" title=\"Speeding and Building on Unix bin\/sort\">Read More<\/a><\/div>\n","protected":false},"author":5,"featured_media":11670,"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,30],"tags":[],"class_list":["post-2943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-big-data-2","category-data-transformation2","category-sort-migration"],"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>Speeding and Building on Unix bin\/sort - 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\/using-binsort\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Speeding and Building on Unix bin\/sort\" \/>\n<meta property=\"og:description\" content=\"The sort included with each Unix-based operating system is a standard command line program that prints lines of input or specified input files in\u00a0the specified\u00a0sorted order. The bin\/sort interface provided with IRI CoSort is a drop-in replacement for the sort utility\u00a0usually found in the \/bin directory of most Unix\/Linux operating systems, but uses IRI&#8217;s proprietaryRead More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2012-11-27T17:01:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-06T13:58:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"578\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jason Koivu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jason Koivu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 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\/using-binsort\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\"},\"author\":{\"name\":\"Jason Koivu\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/c60bc4ff5919427034376979fb2cc8df\"},\"headline\":\"Speeding and Building on Unix bin\/sort\",\"datePublished\":\"2012-11-27T17:01:29+00:00\",\"dateModified\":\"2017-11-06T13:58:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\"},\"wordCount\":820,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png\",\"articleSection\":[\"Big Data\",\"Data Transformation\",\"Sort Migration\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\",\"name\":\"Speeding and Building on Unix bin\/sort - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png\",\"datePublished\":\"2012-11-27T17:01:29+00:00\",\"dateModified\":\"2017-11-06T13:58:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png\",\"width\":640,\"height\":578},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Speeding and Building on Unix bin\/sort\"}]},{\"@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\/c60bc4ff5919427034376979fb2cc8df\",\"name\":\"Jason Koivu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/01e97234ff964558ca620a43a0506ef0?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/01e97234ff964558ca620a43a0506ef0?s=96&d=blank&r=g\",\"caption\":\"Jason Koivu\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/jasonk\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Speeding and Building on Unix bin\/sort - 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\/using-binsort\/","og_locale":"en_US","og_type":"article","og_title":"Speeding and Building on Unix bin\/sort","og_description":"The sort included with each Unix-based operating system is a standard command line program that prints lines of input or specified input files in\u00a0the specified\u00a0sorted order. The bin\/sort interface provided with IRI CoSort is a drop-in replacement for the sort utility\u00a0usually found in the \/bin directory of most Unix\/Linux operating systems, but uses IRI&#8217;s proprietaryRead More","og_url":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/","og_site_name":"IRI","article_published_time":"2012-11-27T17:01:29+00:00","article_modified_time":"2017-11-06T13:58:04+00:00","og_image":[{"width":640,"height":578,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png","type":"image\/png"}],"author":"Jason Koivu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jason Koivu","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/"},"author":{"name":"Jason Koivu","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/c60bc4ff5919427034376979fb2cc8df"},"headline":"Speeding and Building on Unix bin\/sort","datePublished":"2012-11-27T17:01:29+00:00","dateModified":"2017-11-06T13:58:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/"},"wordCount":820,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png","articleSection":["Big Data","Data Transformation","Sort Migration"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/","url":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/","name":"Speeding and Building on Unix bin\/sort - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png","datePublished":"2012-11-27T17:01:29+00:00","dateModified":"2017-11-06T13:58:04+00:00","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png","width":640,"height":578},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/using-binsort\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Speeding and Building on Unix bin\/sort"}]},{"@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\/c60bc4ff5919427034376979fb2cc8df","name":"Jason Koivu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/01e97234ff964558ca620a43a0506ef0?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01e97234ff964558ca620a43a0506ef0?s=96&d=blank&r=g","caption":"Jason Koivu"},"url":"https:\/\/www.iri.com\/blog\/author\/jasonk\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2012\/11\/man-running-silhouette-2.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/2943"}],"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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=2943"}],"version-history":[{"count":19,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/2943\/revisions"}],"predecessor-version":[{"id":11196,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/2943\/revisions\/11196"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/11670"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=2943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=2943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=2943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}