{"id":16037,"date":"2022-07-13T17:15:36","date_gmt":"2022-07-13T21:15:36","guid":{"rendered":"https:\/\/www.iri.com\/blog\/?p=16037"},"modified":"2023-06-12T14:22:44","modified_gmt":"2023-06-12T18:22:44","slug":"all-about-iri-set-files-a-primer","status":"publish","type":"post","link":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/","title":{"rendered":"All About IRI Set Files: A Primer"},"content":{"rendered":"<p><em><strong>Introduction<\/strong>:\u00a0<span style=\"font-weight: 400;\">In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the <\/span><a href=\"https:\/\/www.iri.com\/products\/voracity\"><span style=\"font-weight: 400;\">IRI Voracity<\/span><\/a><span style=\"font-weight: 400;\"> platform ecosystem.\u00a0<\/span><span style=\"font-weight: 400;\">They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">Here is an example of an online data source that can be converted to a TSV IRI set file format:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16041 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/airport-codes-300x150.png\" alt=\"\" width=\"418\" height=\"209\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/airport-codes-300x150.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/airport-codes-1024x512.png 1024w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/airport-codes-768x384.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/airport-codes.png 1200w\" sizes=\"(max-width: 418px) 100vw, 418px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">These dataset files are specified as input or output field attributes in <\/span><a href=\"https:\/\/www.iri.com\/products\/cosort\/sortcl\"><span style=\"font-weight: 400;\">SortCL<\/span><\/a><span style=\"font-weight: 400;\">-compatible job scripts that perform:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/table-lookups-sortcl-compatible-jobs\/\"><span style=\"font-weight: 400;\">Lookup transforms<\/span><\/a><span style=\"font-weight: 400;\"> in CoSort-powered Voracity ETL jobs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/bucketing-data-values-using-set-files\/\"><span style=\"font-weight: 400;\">Bucketing<\/span><\/a><span style=\"font-weight: 400;\"> discrete values into anonymous, general categories defined by named ranges<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/data-quality\/catching-rule-violations\/\"><span style=\"font-weight: 400;\">Data validation<\/span><\/a><span style=\"font-weight: 400;\"> in Voracity data quality\/cleansing jobs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/drawing-values-from-set-files\/\"><span style=\"font-weight: 400;\">Associating items<\/span><\/a><span style=\"font-weight: 400;\"> for data quality, master data management, etc.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/classify-mask-pii-in-databases-with-fieldshield\/\"><span style=\"font-weight: 400;\">Pseudonymizing<\/span><\/a> (replacing) names or other <span style=\"font-weight: 400;\">values in IRI *shield data masking jobs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/restoring-masked-values-with-darkshield\/\"><span style=\"font-weight: 400;\">Restoring<\/span><\/a> <span style=\"font-weight: 400;\">pseudonyms to their original values or preserving RDB value pairs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.iri.com\/blog\/test-data\/synthesizing-realistic-data-in-rowgen-with-set-files\/\"><span style=\"font-weight: 400;\">Synthesizing<\/span><\/a><span style=\"font-weight: 400;\"> randomly selected realistic or valid pair test data in RowGen jobs<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<\/ol>\n<h4><b>Set File Contents<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Set files are text files composed of one or more tab-separated columns. The columns must contain ASCII readable characters, UTF8 characters, or EBCDIC characters.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Each row ends with a linefeed. Comments can be placed at the top of a set file and must be preceded by a # symbol.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Below are a couple of different set files. The one on the left, a two-column set, is typically used for consistent, reversible pseudonyms. The single-column set is more common for random selection.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16043 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/single-column-set-230x300.png\" alt=\"\" width=\"443\" height=\"578\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/single-column-set-230x300.png 230w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/single-column-set.png 550w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/><\/p>\n<h4><b>Ways to Create Set Files<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">IRI<\/span> <span style=\"font-weight: 400;\">provides a number of set files with the software. Set file data can also be created:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">With a text editor where all the set data is typed into the set file<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Using IRI Workbench by selecting <\/span><i><span style=\"font-weight: 400;\">New Set File \u2026<\/span><\/i><span style=\"font-weight: 400;\"> from the RowGen menu, then choose one of the wizards listed on the selection page. See <\/span><a href=\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/creating-set-files-in-iri-workbench\"><span style=\"font-weight: 400;\">this article<\/span><\/a><span style=\"font-weight: 400;\"> for details.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">From the fields of data files where SortCL or another utility is used to extract the data<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">From columns in a database using a database procedure, using the <\/span><i><span style=\"font-weight: 400;\">Set File from Column <\/span><\/i><span style=\"font-weight: 400;\">wizard in IRI Workbench, or by using a SortCL script.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16051\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/NewSetFileWizard-300x167.png\" alt=\"\" width=\"517\" height=\"288\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/NewSetFileWizard-300x167.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/NewSetFileWizard.png 507w\" sizes=\"(max-width: 517px) 100vw, 517px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">By convention, set file names have a <\/span><b>.set<\/b><span style=\"font-weight: 400;\"> extension.\u00a0<\/span><\/p>\n<h4><b>Types of Set Files<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Here are descriptions of the types of set files that can be used:<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"><strong>1. Numeric Set File.<\/strong> <\/span><\/i><span style=\"font-weight: 400;\">These can have any combination of numbers and numeric ranges. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Each row is randomly selected, and if the row contains a range, a value is randomly selected from the range.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ranges have lower and upper limits separated by a comma and enclosed with brackets. <\/span>A value next to a square bracket is included in the range while a rounded bracket indicates that the value is not included.<\/p>\n<p><span style=\"font-weight: 400;\">Below is an example of a numeric set file:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16053 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/numeric-set-file-300x257.png\" alt=\"\" width=\"302\" height=\"259\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/numeric-set-file-300x257.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/numeric-set-file-350x300.png 350w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/numeric-set-file.png 645w\" sizes=\"(max-width: 302px) 100vw, 302px\" \/><i><\/i><\/p>\n<p><em><strong>2. Date set file<\/strong><\/em><i>. <\/i>This can have any combination of dates and date ranges that conform to existing CoSort date, time, and timestamp data type formats. Date ranges are handled in the same way that numeric ranges are handled. The ISO_DATE set file below has a date\u00a0<span style=\"font-weight: 400;\">selected from the February range 50% of the time, while selecting from the other two ranges 25% of the time.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16054\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/DateSet-300x259.png\" alt=\"\" width=\"302\" height=\"261\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/DateSet-300x259.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/DateSet.png 639w\" sizes=\"(max-width: 302px) 100vw, 302px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Note that the value <\/span><i><span style=\"font-weight: 400;\">2022-03-15<\/span><\/i><span style=\"font-weight: 400;\"> cannot be selected because there is a parenthesis rather than a square bracket next to that value.<\/span><\/p>\n<p><i><span style=\"font-weight: 400;\"><strong>3. Multi-column set file<\/strong>. <\/span><\/i><span style=\"font-weight: 400;\">These have two uses; i.e., either for random selections or lookups.<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">a)\u00a0 In the case of random selection:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Any column in a multi-column set file can be used for a random pull<\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The rows in a multi-column set file can be composed of related items. A row can be randomly selected and multiple items in the row can be used as field values in a record.<\/span><\/span><\/li>\n<li><span style=\"font-weight: 400;\">For a random lookup, the first column is ordered but not unique because the second column will have multiple items relating to each of the items in the first column. This can be done with any number of columns, but the last column must have unique entries with respect to the previous column. Then a random selection is made from the last column.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For example, suppose you need to randomly select a city within a specific state and county for each input record. Let\u2019s say that the input records contain these fields or columns:<br \/>\n<\/span><\/span><\/span><\/span><\/span><\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/span><\/span><\/span><\/span><\/span><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16087 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/NameCountyState3.png\" alt=\"\" width=\"166\" height=\"33\" \/><br \/>\nand a CITY needs to be selected at random for each COUNTY and STATE combination within the input records. The output records will then have a CITY added to the records.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Suppose a particular input record contains these values:<br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16088 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/JS_Brvd_FL2.png\" alt=\"\" width=\"208\" height=\"31\" \/><br \/>\nThe section of the set file <\/span><i><span style=\"font-weight: 400;\">state_county_city.set <\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">containing records for Brevard county in FL could have the following records:<\/span><\/span><\/span><\/span><\/span><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16090 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/SetCountyCity2-300x104.png\" alt=\"\" width=\"294\" height=\"102\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/SetCountyCity2-300x104.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/SetCountyCity2.png 422w\" sizes=\"(max-width: 294px) 100vw, 294px\" \/><\/span><span style=\"font-weight: 400;\"><br \/>\nThen, if the record\u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16092\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/FL_Brvd_Melb.png\" alt=\"\" width=\"177\" height=\"26\" \/> \u00a0<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">in the set file is randomly selected from the above, the output record becomes:<\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16093 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/NameCountyStateCity2-300x34.png\" alt=\"\" width=\"282\" height=\"32\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/NameCountyStateCity2-300x34.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/NameCountyStateCity2.png 411w\" sizes=\"(max-width: 282px) 100vw, 282px\" \/><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16064 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/BrevardCountymap-240x300.png\" alt=\"\" width=\"360\" height=\"450\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/BrevardCountymap-240x300.png 240w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/BrevardCountymap-768x960.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/BrevardCountymap.png 800w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">b)\u00a0 In the case of lookups:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">For a 2-column lookup, the first column must be sorted and unique. With three or more columns, the first and second columns are sorted, and each column is unique relative to the prior column value.\u00a0 Values are searched for in columns from left to right, and a value in the last column value is used in the field.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For example, suppose you have input records with the following fields:<br \/>\n<\/span><\/span><\/span><\/span><\/span><\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/span><\/span><\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16094 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/NameCityState2.png\" alt=\"\" width=\"151\" height=\"35\" \/><span style=\"font-weight: 400;\"><br \/>\nand you need to add the county for each CITY and STATE combination.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Suppose a particular input record contains these values:<br \/>\n<\/span><\/span><\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16096 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/JSCocoaFL2-1-300x44.png\" alt=\"\" width=\"239\" height=\"35\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/JSCocoaFL2-1-300x44.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/JSCocoaFL2-1.png 340w\" sizes=\"(max-width: 239px) 100vw, 239px\" \/><\/span><span style=\"font-weight: 400;\"><br \/>\nThe section of the set file <\/span><i><span style=\"font-weight: 400;\">state_city_county.set <\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">that contains records for cities in FL could have the following records that are ordered by STATE and then CITY:<br \/>\n<\/span><\/span><\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16097 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/StateCityCounty2-300x112.png\" alt=\"\" width=\"263\" height=\"98\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/StateCityCounty2-300x112.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/StateCityCounty2.png 384w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/><br \/>\n<span style=\"font-weight: 400;\">By looking up the STATE <\/span><i><span style=\"font-weight: 400;\">FL <\/span><\/i><span style=\"font-weight: 400;\">and then the CITY <\/span><i><span style=\"font-weight: 400;\">Cocoa Beach<\/span><\/i><span style=\"font-weight: 400;\">, we find the COUNTY <\/span><i><span style=\"font-weight: 400;\">Brevard <\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">because each CITY and STATE combination is unique. The output record will be:<br \/>\n<\/span><\/span><\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-16098 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/NameCityStateCounty2-300x33.png\" alt=\"\" width=\"300\" height=\"33\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/NameCityStateCounty2-300x33.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/NameCityStateCounty2.png 441w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/li>\n<\/ul>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16050\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage-300x157.png\" alt=\"\" width=\"544\" height=\"285\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage-300x157.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage-1024x536.png 1024w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage-768x402.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png 1200w\" sizes=\"(max-width: 544px) 100vw, 544px\" \/><\/p>\n<h4><b>Specifying Set Files in Job Scripts<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Sets are declared in \/FIELD statements of SortCL-compatible job scripts following this syntax:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16100 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/SortCLFieldScript2-300x44.png\" alt=\"\" width=\"566\" height=\"83\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/SortCLFieldScript2-300x44.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/SortCLFieldScript2-768x112.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/SortCLFieldScript2.png 844w\" sizes=\"(max-width: 566px) 100vw, 566px\" \/><br \/>\n<span style=\"font-weight: 400;\">Here are more details for the\u00a0 arguments:\u00a0\u00a0<\/span><\/p>\n<p><b><i>1. FieldName<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">Name of the field within the record being read\/processed\/written<\/span><\/p>\n<p><b><i>2. FieldAttributes<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">Other field attributes used for formatting a field that will also have set<br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <\/span><span style=\"font-weight: 400;\">attributes <\/span><\/p>\n<p><b><i>3. Set_Source<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">The set source must be enclosed in quotes and is one of the following:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><i><span style=\"font-weight: 400;\">A quoted set file path and name<\/span><\/i><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><i><span style=\"font-weight: 400;\">An ODBC table name and connection string. <\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">When using an ODBC table for lookup values, there is another option required:<\/span><\/span><\/span><\/span><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16104 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/ODBCLookup2-300x42.png\" alt=\"\" width=\"214\" height=\"30\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/ODBCLookup2-300x42.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/ODBCLookup2.png 304w\" sizes=\"(max-width: 214px) 100vw, 214px\" \/><br \/>\n<\/span><span style=\"font-weight: 400;\">where <\/span><i><span style=\"font-weight: 400;\">lvalue <\/span><\/i><span style=\"font-weight: 400;\">is the name of the column in the table equivalent to the first or left-hand column of a set file, and <\/span><i><span style=\"font-weight: 400;\">rvalue <\/span><\/i><span style=\"font-weight: 400;\">corresponds to the right-hand column in a two-column set file.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Here is a possible field statement in the \/OUTFILE section of a job script:<br \/>\n<\/span><\/span><\/span><\/span><\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/span><\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16105 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/OutfileJobScript2-300x46.png\" alt=\"\" width=\"457\" height=\"70\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/OutfileJobScript2-300x46.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/OutfileJobScript2.png 705w\" sizes=\"(max-width: 457px) 100vw, 457px\" \/><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><i>Just a list of comma-separated values <\/i>(instead of an external lookup file or table) enclosed in curly braces in the \/FIELD statement; e.g., { <i>value1, value2, \u2026 }<\/i>. This is useful when there are only a few values, as in this case:<br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16108 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/FieldPosition2-300x21.png\" alt=\"\" width=\"514\" height=\"36\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/FieldPosition2-300x21.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/FieldPosition2-768x53.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/FieldPosition2.png 804w\" sizes=\"(max-width: 514px) 100vw, 514px\" \/><\/li>\n<\/ul>\n<p><b><i>4. Search List<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">This is a list of comma-separated values used for a lookup and can also be used in <\/span><a href=\"https:\/\/www.iri.com\/blog\/test-data\/pairs-testing-in-rowgen-valid-pairs-all-pairs\/\"><span style=\"font-weight: 400;\">pairs testing<\/span><\/a><span style=\"font-weight: 400;\">. There can be up to one less lookup value than the number of columns in the set file. The items in this list can be a field name or a literal separated by commas, while the list is enclosed in square brackets [<\/span><i><span style=\"font-weight: 400;\"> item1, item2, . . .<\/span><\/i><span style=\"font-weight: 400;\"> ].<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16076 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/us-map-300x219.png\" alt=\"\" width=\"646\" height=\"471\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/us-map-300x219.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/us-map-1024x747.png 1024w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/us-map-768x560.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/us-map-1536x1120.png 1536w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/us-map.png 1110w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">For example, here is the three-column set file <\/span><b><i>state_county_city.set<\/i><\/b> <span style=\"font-weight: 400;\">where the first column is state, the second is county, and the third is city:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16110 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/StateCountyCity2-300x109.png\" alt=\"\" width=\"388\" height=\"141\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/StateCountyCity2-300x109.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/StateCountyCity2.png 566w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">The following job script,<\/span> <b><i>city_lookup.scl<\/i><\/b><span style=\"font-weight: 400;\">, selects random cities within each state and county combination:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16111 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/citylookupscl2-300x138.png\" alt=\"\" width=\"504\" height=\"232\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/citylookupscl2-300x138.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/citylookupscl2.png 681w\" sizes=\"(max-width: 504px) 100vw, 504px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The input file <\/span><b><i>rlook.dat<\/i><\/b> <span style=\"font-weight: 400;\">contains:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16112 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/rlookdat2.png\" alt=\"\" width=\"196\" height=\"177\" \/><\/p>\n<p><span style=\"font-weight: 400;\">When the job script above is run, the output file<\/span> <b><i>rlook.out<\/i><\/b><span style=\"font-weight: 400;\"> may contain:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16114 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/rlook_out3-300x163.png\" alt=\"\" width=\"333\" height=\"181\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/rlook_out3-300x163.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/rlook_out3.png 427w\" sizes=\"(max-width: 333px) 100vw, 333px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The output field value for city was randomly selected for each output record using the <\/span><span style=\"font-weight: 400;\">state and county field values in the record for the random lookup.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><b><i>5. DEFAULT=&#8221;string&#8221;<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">When a lookup search does not find a match in the set file, you can define a default string to place into the data file, like \u201c<\/span><i><span style=\"font-weight: 400;\">No match found<\/span><\/i><span style=\"font-weight: 400;\">.\u201d If no default is specified, and no match is found, execution stops and an error message is displayed.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">An example field statement could be:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16115 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/nomatchfoundcode2-300x29.png\" alt=\"\" width=\"579\" height=\"56\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/nomatchfoundcode2-300x29.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/nomatchfoundcode2-730x71.png 730w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/nomatchfoundcode2.png 735w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><span style=\"font-weight: 400;\"><br \/>\n<\/span><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-16082 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/cantfindit-300x224.png\" alt=\"\" width=\"300\" height=\"224\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/cantfindit-300x224.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/cantfindit.png 598w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><b><i>6. Order Options<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">These are used when the set file is being used as a lookup. A set file is assumed to be sorted unless otherwise indicated by the <\/span><i><span style=\"font-weight: 400;\">Order Option<\/span><\/i><span style=\"font-weight: 400;\"> NOT_SORTED.<\/span> <span style=\"font-weight: 400;\">The order options for a set file are:<\/span><\/p>\n<ul>\n<li><i><span style=\"font-weight: 400;\">PRE_SORTED<\/span><\/i> &#8212; <span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Assumes the set file is already ordered correctly for doing a lookup with no duplicates for the appropriate column. This is the default setting.<\/span><\/span><\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">NOT_SORTED<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">The set file will be sorted internally prior to processing the job script. The sorted set file will not be saved.<\/span><\/li>\n<\/ul>\n<p><b><i>7. Select Options<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">These are the options used for random draws:<\/span><\/p>\n<ul>\n<li><i><span style=\"font-weight: 400;\">ANY<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">Values in the set file are randomly drawn from any row of the set file. Values can be drawn any number of times. <\/span><span style=\"font-weight: 400;\">ANY <\/span><span style=\"font-weight: 400;\">is the default.<\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">ONCE<\/span><\/i> &#8212; <span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Values are drawn from the rows of the set file sequentially starting at the top row of the set file. When all the rows have been drawn, then no more values from the set file will be inserted into the field in the data file, and that field will be empty for the remaining records.<\/span><\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">ALL<\/span><\/i> &#8212; <span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Values are drawn from the rows of the set file sequentially. All the rows will be used for values if the data file has a sufficient number of records to do this. If there are more data records than rows in the set file, the values drawn from the set file will be repeated.<\/span><\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">SUFFIX<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">As with <\/span><span style=\"font-weight: 400;\">ALL<\/span><span style=\"font-weight: 400;\">, values are drawn from set file rows sequentially, but if there are more data records than rows in the set file, an underscore and numeric value in sequence is added to values in the data file as the set file values repeat. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For example, field values will be similar to this when names are put into a field:<br \/>\n<\/span><\/span><\/span><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16116 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/suffix2.png\" alt=\"\" width=\"83\" height=\"148\" \/><br \/>\n<span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">There are four first names in the set file. When the values in the set file started repeating in the data file, the suffix number was appended to the field value.<\/span><\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li><i><span style=\"font-weight: 400;\">ROW &#8212; <\/span><\/i><span style=\"font-weight: 400;\">This is used with multi-column set files where the items in each column of a row in the set file are related. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">When a row in the set file is randomly selected, values from that row are placed in the same record that is being created with the job script. All fields in a record that have a value derived from the same row or line in a set file will invoke <\/span><span style=\"font-weight: 400;\">ROW<\/span> <span style=\"font-weight: 400;\">with an index number based on the column number from where the value is drawn in the set file.<\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16117 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/Row-300x98.png\" alt=\"\" width=\"526\" height=\"172\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/Row-300x98.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/Row-730x239.png 730w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/Row.png 733w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><br \/>\n<span style=\"font-weight: 400;\">An example of a 3-column set file that uses <\/span><span style=\"font-weight: 400;\">ROW<\/span><span style=\"font-weight: 400;\">, is to have one column be a state, another be a county in that state, and the third be a city within the county. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Given a set file with three related columns consisting of state, county, and city respectively, here is an example of field definitions where <\/span><span style=\"font-weight: 400;\">ROW<\/span> <span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">determines which column in the set file is used for the field value:<\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16118 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/RowScript-300x36.png\" alt=\"\" width=\"642\" height=\"77\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/RowScript-300x36.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/RowScript-768x92.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/RowScript.png 798w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><span style=\"font-weight: 400;\"><br \/>\nFor any <\/span><span style=\"font-weight: 400;\">ROW <\/span><span style=\"font-weight: 400;\">in the set file <\/span><b><i>3column.set<\/i><\/b><span style=\"font-weight: 400;\">, <\/span><i><span style=\"font-weight: 400;\">city <\/span><\/i><span style=\"font-weight: 400;\">is located in the 3rd column, <\/span><i><span style=\"font-weight: 400;\">county <\/span><\/i><span style=\"font-weight: 400;\">is located in the 2nd column, and <\/span><i><span style=\"font-weight: 400;\">state <\/span><\/i><span style=\"font-weight: 400;\">is located in the 1st column. <\/span><span style=\"font-weight: 400;\">Those field definitions could yield records containing the values:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16119 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/RowYieldRecord.png\" alt=\"\" width=\"225\" height=\"65\" \/><\/span><\/li>\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><i>PERMUTE &#8212; <\/i>This is used in RowGen jobs where the input format uses the \/PROCESS=RANDOM statement. For each field that has PERMUTE as the selection parameter for a set file, there will be an attempt to select all possible combinations for those set files, up to the limit of any \/INCOLLECT value.<\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16124 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/epologismus-257x300.png\" alt=\"\" width=\"374\" height=\"437\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/epologismus-257x300.png 257w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/epologismus-768x898.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/epologismus.png 876w\" sizes=\"(max-width: 374px) 100vw, 374px\" \/><span style=\"font-weight: 400;\">To use all combinations but no more than that, set <\/span><span style=\"font-weight: 400;\">\/INCOLLECT<\/span><span style=\"font-weight: 400;\"> equal to <\/span><span style=\"font-weight: 400;\">PERMUTE<\/span><span style=\"font-weight: 400;\">. If <\/span><span style=\"font-weight: 400;\">\/INCOLLECT<\/span><span style=\"font-weight: 400;\"> is set to a number greater than all the combinations, the combination pattern will repeat. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">For example, suppose you are generating records to get values for the fields for first name and for last name from the set files<\/span><i><span style=\"font-weight: 400;\"> fname.set<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">lname.set<\/span><\/i><span style=\"font-weight: 400;\"> plus generating\u00a0 ID numbers. Here are the set files:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16125 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/fname-300x99.png\" alt=\"\" width=\"288\" height=\"95\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/fname-300x99.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/fname.png 342w\" sizes=\"(max-width: 288px) 100vw, 288px\" \/><\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">To generate the values with all combinations of first and last name once, use the following script where <\/span><span style=\"font-weight: 400;\">\/INCOLLECT<\/span><span style=\"font-weight: 400;\"> is set to <\/span><span style=\"font-weight: 400;\">PERMUTE<\/span><span style=\"font-weight: 400;\">.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16126 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/IncollectPermute-300x84.png\" alt=\"\" width=\"579\" height=\"162\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/IncollectPermute-300x84.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/IncollectPermute.png 747w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><\/span><span style=\"font-weight: 400;\">\u00a0<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The output gives the following six records which have all the possible combinations for first and last name:<\/span><\/span><\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16127 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/Outputpermute.png\" alt=\"\" width=\"167\" height=\"129\" \/><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">But suppose I want 12 records. The <\/span><span style=\"font-weight: 400;\">\/INFILE <\/span><span style=\"font-weight: 400;\">phase of the script would specify <\/span><span style=\"font-weight: 400;\">\/INCOLLECT=12<\/span><span style=\"font-weight: 400;\"> while keeping <\/span><span style=\"font-weight: 400;\">SELECT=PERMUTE<\/span><span style=\"font-weight: 400;\"> for the fields <\/span><i><span style=\"font-weight: 400;\">fname <\/span><\/i><span style=\"font-weight: 400;\">and<\/span><i><span style=\"font-weight: 400;\"> lname<\/span><\/i><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">. The output will then be:<\/span><\/span><\/span><\/span><\/span><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16128 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/Output12recordpermute.png\" alt=\"\" width=\"156\" height=\"241\" \/><br \/>\n<span style=\"font-weight: 400;\">The first six records contain all the combinations for first and last name. The next six records repeat that combination. The combination of first and last name will continue to repeat for any number of records required by the <\/span><span style=\"font-weight: 400;\">\/INCOLLECT <\/span><span style=\"font-weight: 400;\">value.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<\/ul>\n<p><b><i>8.\u00a0 Search Options<\/i><\/b> &#8212; <span style=\"font-weight: 400;\">These options describe how to use set files with parameters to obtain unequal values, as with <\/span><a href=\"https:\/\/www.iri.com\/blog\/vldb-operations\/introduction-to-slowly-changing-dimensions-scd\/\"><span style=\"font-weight: 400;\">Slowly Changing Dimensions<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<ul>\n<li><i><span style=\"font-weight: 400;\">EQ<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">The default, where you are looking for an exact match in the set file.\u00a0<\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">GT<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">Takes the first value in the set file greater than the search parameter.<\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">GE<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">If an exact match is not found, then the first value encountered that is <\/span><span style=\"font-weight: 400;\">greater than the search parameter is selected.<\/span><\/li>\n<li><i><span style=\"font-weight: 400;\">LT<\/span><\/i> &#8212; <span style=\"font-weight: 400;\">The search parameter is looking for the nearest value in the set file that is <\/span><span style=\"font-weight: 400;\">less than the search parameter. <\/span><\/li>\n<li><i>LE<\/i> &#8212; If an exact match is not found, then the nearest value encountered that is less than the search parameter is selected.<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16129 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/DataMappings-300x210.png\" alt=\"\" width=\"592\" height=\"414\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/DataMappings-300x210.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/DataMappings.png 658w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><br \/>\n<\/span><span style=\"font-weight: 400;\">I have an example using a search option on the set file where the value provided for the output record is less than or equal to the field value in the input record. The <\/span><i><span style=\"font-weight: 400;\">PastPrice.set<\/span><\/i><span style=\"font-weight: 400;\"> file is a two-column set where the first column has dates in\u00a0 ascending order and the second column is the price on that date:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16130 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/PastPriceset.png\" alt=\"\" width=\"209\" height=\"129\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Given the input data file <\/span><b><i>FindPrice.dat<\/i><\/b><span style=\"font-weight: 400;\">:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-16131 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/FindPriceDat.png\" alt=\"\" width=\"112\" height=\"62\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400;\">and this job script, <\/span><b><i>FindPrice.scl<\/i><\/b><span style=\"font-weight: 400;\">:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16132 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/FindPriceScript-300x79.png\" alt=\"\" width=\"622\" height=\"164\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/FindPriceScript-300x79.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/FindPriceScript-768x201.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/FindPriceScript.png 793w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400;\">the values in <\/span><b><i>FindPrice.out<\/i><\/b> <span style=\"font-weight: 400;\">are:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16133 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/07\/FindPriceOut.png\" alt=\"\" width=\"164\" height=\"59\" \/><br \/>\nThe date 20140105 is before the date of the first record in the set file; therefore, the DEFAULT string is put in the price field. The date 20140821 falls between the dates 20140802 and 20140917; therefore the price will be the 24.75 value associated with the 20140802 date.<br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you have any questions about the use of set files or their options, please contact <\/span><a href=\"mailto:support@iri.com\"><span style=\"font-weight: 400;\">support@iri.com<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction:\u00a0In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally. Here is an example of an online data source that can be converted to a<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\" title=\"All About IRI Set Files: A Primer\">Read More<\/a><\/div>\n","protected":false},"author":10,"featured_media":16050,"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":[8,1,34,29],"tags":[21,1708,22,240,785,1704,88,1703],"class_list":["post-16037","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-data-transformation2","category-business","category-test-data","tag-data-pseudonymization","tag-key-value-pairs","tag-pseudonymization","tag-referential-integrity","tag-set-files","tag-tab-separated-values","tag-test-data-2","tag-tsv"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>All About IRI Set Files: A Primer - IRI<\/title>\n<meta name=\"description\" content=\"In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"All About IRI Set Files: A Primer - IRI\" \/>\n<meta property=\"og:description\" content=\"In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-13T21:15:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-12T18:22:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Susan Gegner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Susan Gegner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\"},\"author\":{\"name\":\"Susan Gegner\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\"},\"headline\":\"All About IRI Set Files: A Primer\",\"datePublished\":\"2022-07-13T21:15:36+00:00\",\"dateModified\":\"2023-06-12T18:22:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\"},\"wordCount\":2378,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png\",\"keywords\":[\"data pseudonymization\",\"key value pairs\",\"pseudonymization\",\"referential integrity\",\"set files\",\"tab-separated values\",\"test data\",\"TSV\"],\"articleSection\":[\"Data Masking\/Protection\",\"Data Transformation\",\"IRI Business\",\"Test Data\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\",\"name\":\"All About IRI Set Files: A Primer - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png\",\"datePublished\":\"2022-07-13T21:15:36+00:00\",\"dateModified\":\"2023-06-12T18:22:44+00:00\",\"description\":\"In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.\",\"breadcrumb\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/beta.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"All About IRI Set Files: A Primer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\",\"url\":\"https:\/\/beta.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/beta.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/beta.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/beta.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:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63\",\"name\":\"Susan Gegner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g\",\"caption\":\"Susan Gegner\"},\"url\":\"https:\/\/beta.iri.com\/blog\/author\/susang\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"All About IRI Set Files: A Primer - IRI","description":"In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.","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:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/","og_locale":"en_US","og_type":"article","og_title":"All About IRI Set Files: A Primer - IRI","og_description":"In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.","og_url":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/","og_site_name":"IRI","article_published_time":"2022-07-13T21:15:36+00:00","article_modified_time":"2023-06-12T18:22:44+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png","type":"image\/png"}],"author":"Susan Gegner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Susan Gegner","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#article","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/"},"author":{"name":"Susan Gegner","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63"},"headline":"All About IRI Set Files: A Primer","datePublished":"2022-07-13T21:15:36+00:00","dateModified":"2023-06-12T18:22:44+00:00","mainEntityOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/"},"wordCount":2378,"commentCount":0,"publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png","keywords":["data pseudonymization","key value pairs","pseudonymization","referential integrity","set files","tab-separated values","test data","TSV"],"articleSection":["Data Masking\/Protection","Data Transformation","IRI Business","Test Data"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/","url":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/","name":"All About IRI Set Files: A Primer - IRI","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png","datePublished":"2022-07-13T21:15:36+00:00","dateModified":"2023-06-12T18:22:44+00:00","description":"In the context of IRI software, set files are text files containing realistic or replacement values for data management applications in the IRI Voracity platform ecosystem.\u00a0They are columnar lists of tab-separated values (TSV) that can be sourced externally or internally.","breadcrumb":{"@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#primaryimage","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/beta.iri.com\/blog\/test-data\/all-about-iri-set-files-a-primer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beta.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"All About IRI Set Files: A Primer"}]},{"@type":"WebSite","@id":"https:\/\/beta.iri.com\/blog\/#website","url":"https:\/\/beta.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beta.iri.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/beta.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/beta.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/beta.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:\/\/beta.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/87be5da567628ab9396ca81170f36d63","name":"Susan Gegner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b1ca5592a65d44483351292cf1ae00a?s=96&d=blank&r=g","caption":"Susan Gegner"},"url":"https:\/\/beta.iri.com\/blog\/author\/susang\/"}]}},"jetpack_featured_media_url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/07\/AboutIRISetFileArticleImage.png","_links":{"self":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16037"}],"collection":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=16037"}],"version-history":[{"count":44,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16037\/revisions"}],"predecessor-version":[{"id":16456,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/16037\/revisions\/16456"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media\/16050"}],"wp:attachment":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=16037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=16037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=16037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}