{"id":15795,"date":"2022-05-11T18:40:37","date_gmt":"2022-05-11T22:40:37","guid":{"rendered":"https:\/\/www.iri.com\/blog\/?p=15795"},"modified":"2022-05-11T18:40:37","modified_gmt":"2022-05-11T22:40:37","slug":"voracity-software-support-for-cloud-file-stores","status":"publish","type":"post","link":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/","title":{"rendered":"Voracity Software Support for Cloud File Stores"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Public and private cloud file systems are becoming increasingly popular places for businesses and government agencies to store their data. Several major competitors have arisen in the cloud storage provider space, with Amazon, Microsoft Azure, and Google Cloud Platform at the top.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.iri.com\/products\/voracity\"><span style=\"font-weight: 400;\">IRI Voracity<\/span><\/a><span style=\"font-weight: 400;\"> and its core <\/span><a href=\"https:\/\/www.iri.com\/solutions\/big-data\/structured-data\"><span style=\"font-weight: 400;\">structured data<\/span><\/a><span style=\"font-weight: 400;\"> processing program, <\/span><a href=\"https:\/\/www.iri.com\/products\/cosort\/sortcl\"><span style=\"font-weight: 400;\">SortCL<\/span><\/a><span style=\"font-weight: 400;\">, already supported the processing of <\/span><a href=\"https:\/\/www.iri.com\/solutions\/data-integration\/etl\/flat-file-etl\"><span style=\"font-weight: 400;\">flat files<\/span><\/a><span style=\"font-weight: 400;\"> stored in Amazon S3 buckets. With the latest updates to IRI CoSort and IRI Workbench, however, support for cloud storage has been expanded to encompass Google Cloud Storage and Azure Blob Storage, too.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This article explains how to configure Voracity software and its SortCL program jobs specifically to use flat files in the three aforementioned cloud stores as data sources and\/or targets. My first demonstration will be with simple report job. My second demonstration reads from one cloud provider and writes to another after applying some FieldShield data masking rules.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note: <\/span><i><span style=\"font-weight: 400;\">Searching and masking sensitive PII located in semi-structured and unstructured data in Azure Blob Storage, Google Cloud Storage, and S3 is possible using IRI <\/span><\/i><a href=\"https:\/\/www.iri.com\/products\/darkshield\"><i><span style=\"font-weight: 400;\">DarkShield<\/span><\/i><\/a><i><span style=\"font-weight: 400;\">. Read this <\/span><\/i><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/masking-cloud-file-stores\/\"><i><span style=\"font-weight: 400;\">article<\/span><\/i><\/a><i><span style=\"font-weight: 400;\"> to learn more.<\/span><\/i><\/p>\n<h6><b>Providing Metadata for Cloud Files<\/b><\/h6>\n<p><span style=\"font-weight: 400;\">As a quick aside, although IRI Workbench normally supports the discovery of metadata for files, there are a few exceptions. One of these exceptions includes discovering the metadata of files hosted in the cloud. When metadata cannot be discovered, users have two options:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The first option would be generating DDF files manually. This requires that they know the structure of the files in the cloud beforehand. The second option is to download a copy of the file from the cloud and get the metadata from it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With a copy of the file stored locally, you can run the <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/using-the-metadata-discovery-wizard\/\"><i><span style=\"font-weight: 400;\">Discover Metadata<\/span><\/i><span style=\"font-weight: 400;\"> wizard<\/span><\/a><span style=\"font-weight: 400;\"> in Workbench to generate a DDF file automatically \u2013 in the same way, you would normally discover the metadata of files on the same PC or mounted in your LAN.<\/span><\/p>\n<h6><b>Demonstrating with Cloud Files<\/b><\/h6>\n<p><span style=\"font-weight: 400;\">To start this demonstration, I will open the Report wizard in IRI Workbench by clicking on the dropdown arrow next to the stopwatch. From the dropdown menu, select the <\/span><i><span style=\"font-weight: 400;\">New Reporting Job <\/span><\/i><span style=\"font-weight: 400;\">wizard.<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15799 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/reportjob-300x75.png\" alt=\"\" width=\"632\" height=\"158\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/reportjob-300x75.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/reportjob.png 686w\" sizes=\"(max-width: 632px) 100vw, 632px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">From here a wizard opens to create a SortCL job script with an extension of <\/span><b><i>.scl<\/i><\/b><span style=\"font-weight: 400;\">. In the first dialog, select which IRI project folder in the workspace where the future job script will be placed, and specify a meaningful name for the job. Once that\u2019s done, move on by clicking<\/span><i><span style=\"font-weight: 400;\"> Next &gt;<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15805 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/reportjob2-261x300.png\" alt=\"\" width=\"436\" height=\"501\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/reportjob2-261x300.png 261w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/reportjob2.png 509w\" sizes=\"(max-width: 436px) 100vw, 436px\" \/><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">The next page of the wizard has us specify our <\/span><i><span style=\"font-weight: 400;\">data source<\/span><\/i><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15804 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/DataSource-CS-300x260.png\" alt=\"\" width=\"454\" height=\"393\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSource-CS-300x260.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSource-CS.png 509w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">SortCL jobs support several source types:\u00a0<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Files (local to the PC or a LAN drive);\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">ODBC (for direct connections to RDB tables);<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">URL (for HDFS, HTTP\/S, FTP\/S, MongoDB, and where S3 connections were before);<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">PROCEDURE (for runtime-linked, custom input programs written in C\/C++);<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">CONSOLE (stdin); and, now,<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">CLOUD STORAGE.\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">For this demonstration we will select CLOUD STORAGE as the data source type:<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15806 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/DataSourceCloudStorage-300x258.png\" alt=\"\" width=\"438\" height=\"377\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSourceCloudStorage-300x258.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSourceCloudStorage-350x300.png 350w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSourceCloudStorage.png 512w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">We now need to select either an existing (previously created) cloud storage connection, or create a new connection. Saved connections will be selectable in the <\/span><i><span style=\"font-weight: 400;\">Cloud Storage Connection<\/span><\/i><span style=\"font-weight: 400;\"> drop-down list.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you choose to create a new connection at this time, instead of using a previously created connection, a new connection will be created via the input the user provides in another window. That new connection gets added to the list of saved connections.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For this demonstration, I will create a new connection, and thus click <\/span><i><span style=\"font-weight: 400;\">New\u2026<\/span><\/i><span style=\"font-weight: 400;\"> to bring up this window:<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15807 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/CloudConnectionDetails-300x260.png\" alt=\"\" width=\"442\" height=\"383\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/CloudConnectionDetails-300x260.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/CloudConnectionDetails.png 508w\" sizes=\"(max-width: 442px) 100vw, 442px\" \/><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">A new sub-wizard for cloud storage connections opens to help create a connection string in our job script\u2019s \/INFILE section. This tells SortCL to access files stored in a cloud store.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This wizard requires a unique name for the cloud connection we are making, and to specify which cloud storage provider we will access. In the dropdown menu for <\/span><i><span style=\"font-weight: 400;\">Storage Provider<\/span><\/i><span style=\"font-weight: 400;\"> we can choose from Amazon S3, Google Cloud Storage, or Azure Blob Storage.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"> <img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15808 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/Amazon-s3-dropdown-300x260.png\" alt=\"\" width=\"447\" height=\"387\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Amazon-s3-dropdown-300x260.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Amazon-s3-dropdown.png 506w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15809 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/Amazon-s3-dropdown2-300x263.png\" alt=\"\" width=\"445\" height=\"390\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Amazon-s3-dropdown2-300x263.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Amazon-s3-dropdown2.png 504w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/span><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Amazon S3 provider form fields<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15810\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-300x258.png\" alt=\"\" width=\"442\" height=\"380\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-300x258.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-350x300.png 350w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage.png 508w\" sizes=\"(max-width: 442px) 100vw, 442px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Azure Blob Storage form fields<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15811\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStorage-300x258.png\" alt=\"\" width=\"445\" height=\"382\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStorage-300x258.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStorage-350x300.png 350w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStorage.png 506w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Google Cloud Storage form fields<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Notice that for each of the different cloud providers there are two options to choose from for authenticating. Credentials can be added as parameters to the SortCL script, or through system environment variables.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Unlike the environment variables specified in SortCL job scripts (and prefixed by a $)<span id='easy-footnote-1-15795' class='easy-footnote-margin-adjust'><\/span><span class='easy-footnote'><a href='https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#easy-footnote-bottom-1-15795' title='&lt;span class=&quot;c19&quot;&gt;The character $ is used to precede a variable name directing sortcl to replace the environment variable with its current value:&lt;\/span&gt;&lt;span class=&quot;c5&quot;&gt;\u00a0\/INFILE=$&lt;\/span&gt;&lt;span class=&quot;c5&quot;&gt;CSINPUT&lt;\/span&gt;&lt;span class=&quot;c4&quot;&gt;\u00a0.&lt;\/span&gt;'><sup>1<\/sup><\/a><\/span><\/span><span style=\"font-weight: 400;\">, system environment variables are stored by users on their machine and accessed by the operating system.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you choose to use system environment variables, you will need to store your credentials in system environment variables with names specific to the storage provider. Notice in the images above, it is clearly stated what environment variables names need to be set (with the appropriate value) for each corresponding cloud storage provider.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">See these links for <\/span><a href=\"https:\/\/docs.aws.amazon.com\/cli\/latest\/userguide\/cli-configure-envvars.html\"><span style=\"font-weight: 400;\">S3<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-configure-connection-string\"><span style=\"font-weight: 400;\">Azure<\/span><\/a><span style=\"font-weight: 400;\">, and <\/span><a href=\"https:\/\/cloud.google.com\/docs\/authentication\/getting-started\"><span style=\"font-weight: 400;\">Google<\/span><\/a><span style=\"font-weight: 400;\"> environment variable setup.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you are manually providing credentials you will need to supply different credentials based on the selected cloud provider\u2019s requirements:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Amazon S3: an <\/span><a href=\"https:\/\/docs.aws.amazon.com\/general\/latest\/gr\/aws-sec-cred-types.html\"><span style=\"font-weight: 400;\">access key and a secret key<\/span><\/a><span style=\"font-weight: 400;\"> are needed for authentication.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Azure Blob Storage: a <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-configure-connection-string\"><span style=\"font-weight: 400;\">default endpoints protocol, account name, account key, and endpoints suffix<\/span><\/a><span style=\"font-weight: 400;\"> parameters are needed for authentication.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Google Cloud Storage: the path to a <\/span><a href=\"https:\/\/cloud.google.com\/iam\/docs\/creating-managing-service-account-keys\"><span style=\"font-weight: 400;\">service account key<\/span><\/a><span style=\"font-weight: 400;\"> file.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To indicate which form of authentication we wish to use we need to check one of the following checkboxes.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15812\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AuthenticationAzureBlobStrg-300x256.png\" alt=\"\" width=\"443\" height=\"378\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AuthenticationAzureBlobStrg-300x256.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AuthenticationAzureBlobStrg-350x300.png 350w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AuthenticationAzureBlobStrg.png 505w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Once this page is completed, click OK to be brought back to the main Data Source wizard.\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15814 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/DataSourceAzureBlob-262x300.png\" alt=\"\" width=\"437\" height=\"500\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSourceAzureBlob-262x300.png 262w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/DataSourceAzureBlob.png 508w\" sizes=\"(max-width: 437px) 100vw, 437px\" \/><br \/>\n<span style=\"font-weight: 400;\">Because IRI Workbench cannot discover metadata for files in the cloud, you will have to create your source field layouts manually from the specifications of the file in the cloud.\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15815 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/SourceFieldLayoutManually-300x252.png\" alt=\"\" width=\"443\" height=\"372\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/SourceFieldLayoutManually-300x252.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/SourceFieldLayoutManually.png 526w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15816 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/SourceFieldLayoutManually2-261x300.png\" alt=\"\" width=\"440\" height=\"506\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/SourceFieldLayoutManually2-261x300.png 261w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/SourceFieldLayoutManually2.png 508w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><br \/>\n<span style=\"font-weight: 400;\">After setting up the \/INFILE source fields, click <\/span><i><span style=\"font-weight: 400;\">Next &gt;<\/span><\/i><span style=\"font-weight: 400;\"> to set up the target file(s). For this demonstration, I will just choose CONSOLE (stdout) as the target.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15817\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/STDOut-260x300.png\" alt=\"\" width=\"442\" height=\"510\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/STDOut-260x300.png 260w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/STDOut.png 506w\" sizes=\"(max-width: 442px) 100vw, 442px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">As with the target, I will need to specify output file \/FIELD statements, either manually or automatically by mapping them through the target field layout editor. For a walkthrough and more elaboration on how to use the <\/span><i><span style=\"font-weight: 400;\">Source Field Layout<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">Target Field Layout<\/span><\/i><span style=\"font-weight: 400;\"> options, I recommend reading this <\/span><a href=\"https:\/\/www.iri.com\/blog\/test-data\/multi-format-test-data\/\"><span style=\"font-weight: 400;\">article<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p style=\"text-align: left;\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-15819 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/FieldStatement-300x271.png\" alt=\"\" width=\"576\" height=\"521\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/FieldStatement-300x271.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/FieldStatement.png 651w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15818 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/FieldStatementDataTargets-259x300.png\" alt=\"\" width=\"551\" height=\"638\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/FieldStatementDataTargets-259x300.png 259w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/FieldStatementDataTargets.png 503w\" sizes=\"(max-width: 551px) 100vw, 551px\" \/><br \/>\n<span style=\"font-weight: 400;\">Once this process is completed, I can click <\/span><i><span style=\"font-weight: 400;\">Finish<\/span><\/i><span style=\"font-weight: 400;\"> to have the job script auto-generated.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The finished job script will appear slightly different based on whether you chose to provide parameters for authentication or chose to use environment variables.\u00a0<\/span><\/p>\n<h6><b>Job Scripts with Credentials<\/b><\/h6>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15820\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-w-parameters-300x101.png\" alt=\"\" width=\"659\" height=\"222\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-w-parameters-300x101.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-w-parameters-768x259.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStorage-w-parameters.png 786w\" sizes=\"(max-width: 659px) 100vw, 659px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Azure Blob Storage with parameters provided for credentials<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15821\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-w-parameters-300x74.png\" alt=\"\" width=\"846\" height=\"209\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-w-parameters-300x74.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-w-parameters-768x190.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-w-parameters.png 894w\" sizes=\"(max-width: 846px) 100vw, 846px\" \/><br \/>\n<i><\/i><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Amazon S3 with parameters provided for credentials<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15822\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-wparameters-300x75.png\" alt=\"\" width=\"856\" height=\"214\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-wparameters-300x75.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-wparameters-768x192.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-wparameters.png 865w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><br \/>\n<i><\/i><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Google Cloud Storage with parameters provided for credentials.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Dissecting the connection strings when parameters are passed:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cazureblob:\/\/blob.core.windows.net\u201d + \u201c;&#8221; + \u201ccontainer=\u201d + name of target container + \u201c;\u201d + \u201cblob=\u201d + name of blob, file, or object <\/span><i><span style=\"font-weight: 400;\">(include the path for any folders it resides in)<\/span><\/i><span style=\"font-weight: 400;\"> + \u201c;\u201d + \u201cDefaultEndpointsProtocol=\u201d + http(s) <\/span><i><span style=\"font-weight: 400;\">(Azure supports both http and https, but https is recommended)<\/span><\/i><span style=\"font-weight: 400;\"> + \u201d;\u201d + \u201cAccountName=\u201d + account name value + \u201c;\u201d +\u00a0 \u201cAccountKey=\u201d + account key value + \u201c;\u201d + \u201cEndpointSuffix=\u201d + your endpoint suffix + \u201c;\u201d\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cs3:\/\/\u201d + name of the S3 bucket + \u201c\/\u201d + name of blob, file, or object<\/span><i><span style=\"font-weight: 400;\"> (include the path for any folders it is in) <\/span><\/i><span style=\"font-weight: 400;\">+ \u201c?\u201d + \u201caccess_key=\u201d + value of your access key + \u201c&amp;\u201d + \u201csecret_key=\u201d + value of the secret key<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cgcs:\/\/storage.googleapis;\u201d + \u201cbucket=\u201d + name of target bucket + \u201c;\u201d + \u201cobject=\u201d + name of blob, file, or object (<\/span><i><span style=\"font-weight: 400;\">include the path for any folders it is in)<\/span><\/i><span style=\"font-weight: 400;\"> + \u201c;\u201d + \u201cpath_to_key=\u201d + path to service account ke<\/span><i><span style=\"font-weight: 400;\">y (a JSON file generated by Google that contains credentials)<\/span><\/i><span style=\"font-weight: 400;\"> +\u201d;\u201d<\/span><\/p>\n<h6><b>Job Scripts using Environment Variables<\/b><\/h6>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15823 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrg-EnvironmentVariables-300x107.png\" alt=\"\" width=\"600\" height=\"214\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrg-EnvironmentVariables-300x107.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrg-EnvironmentVariables.png 620w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Azure Blob Storage using environment variables<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15824\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-EnvironmentVariables-300x166.png\" alt=\"\" width=\"416\" height=\"230\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-EnvironmentVariables-300x166.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AmazonS3-EnvironmentVariables.png 406w\" sizes=\"(max-width: 416px) 100vw, 416px\" \/><br \/>\n<i><span style=\"font-weight: 400;\">Amazon S3 using environment variables<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15825\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-EnvironmentVariables-300x121.png\" alt=\"\" width=\"612\" height=\"247\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-EnvironmentVariables-300x121.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/GoogleCloudStrg-EnvironmentVariables.png 551w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Google Cloud Storage using environment variables<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Here is what the job script syntax looks like using environment variables:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cazureblob:\/\/blob.core.windows.net\u201d + \u201c;\u201d + \u201ccontainer=\u201d + name of target container + \u201c;\u201d + \u201cblob=\u201d + name of blob, file, or object <\/span><i><span style=\"font-weight: 400;\">(<\/span><\/i><i><span style=\"font-weight: 400;\">include the path for any folders it resides in) <\/span><\/i><span style=\"font-weight: 400;\">+ \u201c;\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u201cs3:\/\/\u201d + name of the S3 bucket + \u201c\/\u201d + name of blob or object <\/span><i><span style=\"font-weight: 400;\">including any folders it is in<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">\u201cgcs:\/\/storage.googleapis;\u201d + \u201cbucket=\u201d + name of target bucket + \u201c;\u201d + \u201cobject=\u201d + name of blob, file, or object <\/span><i><span style=\"font-weight: 400;\">(include the path for any folders it is in) <\/span><\/i><span style=\"font-weight: 400;\">+ \u201c;\u201d\u00a0<\/span><\/p>\n<h6><b>FieldShield Masking Job Example Reading and Writing to Different Cloud Stores<\/b><\/h6>\n<p><span style=\"font-weight: 400;\">Until now I have shown some simple examples on how to read and process flat files from different cloud storage locations and write to the console. That said, far more is possible in terms of processing and targeting.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By way of example, the <\/span><a href=\"https:\/\/www.iri.com\/products\/fieldshield\"><span style=\"font-weight: 400;\">IRI FieldShield<\/span><\/a><span style=\"font-weight: 400;\"> job (.fcl script) below reads a file from an S3 bucket, performs some masking operations on the file, and then writes the file to an Azure Blob Storage container after performing masking operations on first names, last names, and birth dates.<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15826 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrgContainer-300x193.png\" alt=\"\" width=\"770\" height=\"495\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrgContainer-300x193.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrgContainer-768x493.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/AzureBlobStrgContainer.png 853w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><br \/>\n<span style=\"font-weight: 400;\">The original employee.csv file residing in a S3 bucket:<\/span><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15827 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-S3Bucket-300x54.png\" alt=\"\" width=\"784\" height=\"141\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-S3Bucket-300x54.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-S3Bucket-768x138.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-S3Bucket.png 999w\" sizes=\"(max-width: 784px) 100vw, 784px\" \/><br \/>\n<span style=\"font-weight: 400;\">The new employee.csv file is placed in Azure Blob Storage with format preserving encryption on the 2nd, 4th, and 11th column:<\/span><\/p>\n<h6 style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15828 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-AzureBlobStrg-300x54.png\" alt=\"\" width=\"878\" height=\"158\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-AzureBlobStrg-300x54.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-AzureBlobStrg-768x139.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/EmployeeCsv-AzureBlobStrg.png 995w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/><\/h6>\n<h6><b>Adding Cloud Connections to IRI Preferences<\/b><\/h6>\n<p><span style=\"font-weight: 400;\">As previously mentioned when building a job in a Workbench wizard, you can either choose to reuse a previously created connection or create a new connection during job design. If you created a new connection in the wizard, it would automatically be added to the list of previously created and stored connections.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the past, any previously created database or URL connections could be viewed, added, modified, or deleted from inside <\/span><i><span style=\"font-weight: 400;\">IRI Preferences <\/span><\/i><span style=\"font-weight: 400;\">under the <\/span><i><span style=\"font-weight: 400;\">IRI<\/span><\/i><span style=\"font-weight: 400;\"> tab. The same is now also true for cloud storage connections.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15829\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/OpenIRIPreferences-300x123.png\" alt=\"\" width=\"483\" height=\"198\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/OpenIRIPreferences-300x123.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/OpenIRIPreferences.png 516w\" sizes=\"(max-width: 483px) 100vw, 483px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Open IRI Preferences from the toolbar<\/span><\/i><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-15830\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/Open-the-IRI-tab-in-left-window-pane-300x192.png\" alt=\"\" width=\"605\" height=\"387\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Open-the-IRI-tab-in-left-window-pane-300x192.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Open-the-IRI-tab-in-left-window-pane-768x492.png 768w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Open-the-IRI-tab-in-left-window-pane.png 770w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><br \/>\n<i><\/i><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Open the IRI tab in left window pane<\/span><\/i><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15832 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/NewChangesLayout-300x246.jpg\" alt=\"\" width=\"571\" height=\"468\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/NewChangesLayout-300x246.jpg 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/NewChangesLayout.jpg 645w\" sizes=\"(max-width: 571px) 100vw, 571px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">New changes to layout of IRI tab in preferences.<\/span><\/i><\/p>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-15833 aligncenter\" src=\"\/blog\/wp-content\/uploads\/2022\/05\/Cloud-Storage-Connection-Registry-table-300x196.png\" alt=\"\" width=\"630\" height=\"411\" srcset=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Cloud-Storage-Connection-Registry-table-300x196.png 300w, https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/Cloud-Storage-Connection-Registry-table.png 828w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">Cloud Storage Connection Registry table that displays saved cloud storage connections<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">If you are interested in learning more on managing connections in the connection registry, read this <\/span><a href=\"https:\/\/www.iri.com\/blog\/iri\/iri-workbench\/using-the-iri-workbench-data-connection-registry\/\"><span style=\"font-weight: 400;\">article<\/span><\/a><span style=\"font-weight: 400;\"> about using the connection registry in Workbench.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To summarize, with the latest additions to SortCL and IRI Workbench, Voracity-compatible data management software now supports structured file sources and targets in Azure Blob Storage and Google Cloud Storage, along with Amazon S3 buckets.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Public and private cloud file systems are becoming increasingly popular places for businesses and government agencies to store their data. Several major competitors have arisen in the cloud storage provider space, with Amazon, Microsoft Azure, and Google Cloud Platform at the top.\u00a0 IRI Voracity and its core structured data processing program, SortCL, already supported the<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\" title=\"Voracity Software Support for Cloud File Stores\">Read More<\/a><\/div>\n","protected":false},"author":152,"featured_media":15836,"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,776,34,91],"tags":[1456,1685,1683,1541,13,5,100,1684,789,850,1686,1216],"class_list":["post-15795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","category-data-transformation2","category-etl","category-business","category-iri-workbench","tag-amazon-s3","tag-azure-blob-storage","tag-cloud-files","tag-cloud-storage","tag-data-protection-2","tag-data-transformation","tag-etl","tag-google-cloud-storage","tag-iri-voracity","tag-iri-workbench","tag-support-for-cloud-storage","tag-voracity"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Voracity Software Support for Cloud File Stores - IRI<\/title>\n<meta name=\"description\" content=\"Support for Cloud File Stores\" \/>\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\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Voracity Software Support for Cloud File Stores - IRI\" \/>\n<meta property=\"og:description\" content=\"Support for Cloud File Stores\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-11T22:40:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1110\" \/>\n\t<meta property=\"og:image:height\" content=\"624\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Adam Lewis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adam Lewis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\"},\"author\":{\"name\":\"Adam Lewis\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\"},\"headline\":\"Voracity Software Support for Cloud File Stores\",\"datePublished\":\"2022-05-11T22:40:37+00:00\",\"dateModified\":\"2022-05-11T22:40:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\"},\"wordCount\":1653,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg\",\"keywords\":[\"Amazon S3\",\"Azure Blob Storage\",\"Cloud Files\",\"Cloud storage\",\"data protection\",\"data transformation\",\"ETL\",\"Google Cloud Storage\",\"IRI Voracity\",\"IRI Workbench\",\"Support for cloud storage\",\"Voracity\"],\"articleSection\":[\"Data Masking\/Protection\",\"Data Transformation\",\"ETL\",\"IRI Business\",\"IRI Workbench\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\",\"url\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\",\"name\":\"Voracity Software Support for Cloud File Stores - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg\",\"datePublished\":\"2022-05-11T22:40:37+00:00\",\"dateModified\":\"2022-05-11T22:40:37+00:00\",\"description\":\"Support for Cloud File Stores\",\"breadcrumb\":{\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage\",\"url\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg\",\"contentUrl\":\"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg\",\"width\":1110,\"height\":624},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/beta.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Voracity Software Support for Cloud File Stores\"}]},{\"@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\/37c0e5beab094bd61cc521902df2876e\",\"name\":\"Adam Lewis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"caption\":\"Adam Lewis\"},\"url\":\"https:\/\/beta.iri.com\/blog\/author\/adaml\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Voracity Software Support for Cloud File Stores - IRI","description":"Support for Cloud File Stores","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\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/","og_locale":"en_US","og_type":"article","og_title":"Voracity Software Support for Cloud File Stores - IRI","og_description":"Support for Cloud File Stores","og_url":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/","og_site_name":"IRI","article_published_time":"2022-05-11T22:40:37+00:00","og_image":[{"width":1110,"height":624,"url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg","type":"image\/jpeg"}],"author":"Adam Lewis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adam Lewis","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#article","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/"},"author":{"name":"Adam Lewis","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e"},"headline":"Voracity Software Support for Cloud File Stores","datePublished":"2022-05-11T22:40:37+00:00","dateModified":"2022-05-11T22:40:37+00:00","mainEntityOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/"},"wordCount":1653,"commentCount":0,"publisher":{"@id":"https:\/\/beta.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg","keywords":["Amazon S3","Azure Blob Storage","Cloud Files","Cloud storage","data protection","data transformation","ETL","Google Cloud Storage","IRI Voracity","IRI Workbench","Support for cloud storage","Voracity"],"articleSection":["Data Masking\/Protection","Data Transformation","ETL","IRI Business","IRI Workbench"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/","url":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/","name":"Voracity Software Support for Cloud File Stores - IRI","isPartOf":{"@id":"https:\/\/beta.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage"},"image":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage"},"thumbnailUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg","datePublished":"2022-05-11T22:40:37+00:00","dateModified":"2022-05-11T22:40:37+00:00","description":"Support for Cloud File Stores","breadcrumb":{"@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#primaryimage","url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg","contentUrl":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg","width":1110,"height":624},{"@type":"BreadcrumbList","@id":"https:\/\/beta.iri.com\/blog\/data-transformation2\/voracity-software-support-for-cloud-file-stores\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beta.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Voracity Software Support for Cloud File Stores"}]},{"@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\/37c0e5beab094bd61cc521902df2876e","name":"Adam Lewis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beta.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","caption":"Adam Lewis"},"url":"https:\/\/beta.iri.com\/blog\/author\/adaml\/"}]}},"jetpack_featured_media_url":"https:\/\/beta.iri.com\/blog\/wp-content\/uploads\/2022\/05\/VoracitySupportforCloudFileStores-cover-article-scaled.jpg","_links":{"self":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/15795"}],"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\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=15795"}],"version-history":[{"count":8,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/15795\/revisions"}],"predecessor-version":[{"id":17899,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/posts\/15795\/revisions\/17899"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media\/15836"}],"wp:attachment":[{"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=15795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=15795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beta.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=15795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}