In this article
...
You can use this Snap to perform a file operation (move/copy/rename) for a file from a source to a target in the same server. The supported file protocols are: local file (file:///), FTP, SFTP, S3, WASB, and WASBS. The File Operation Snap performs extract and load operations on the input file or folder.
...
Support for Ultra Pipelines
Works in Ultra Task Pipelines.
Limitations
The Snap can move, rename, or copy a file within the same file server, but not across file servers.
The Snap can move or copy S3 files across buckets within the same region, but not across regions.
...
This Snap does not support using the ABFS protocol with a Windows-based Snaplex.
When you use special characters, such asðø©¢¾A²½µ®÷¶þ~ for Source and Target directory and filenames, this Snap fails and results in the following error as the special characters are not supported.
Error: Illegal character in fragment at index 71:
abfs://bigdataqa@bigdataqassl.dfs.core.windows.net/simplechar/owner!@#$^&()_¢äâêîôûñç¡¿ÉÙËǨ°¸ðø©¢¾A²½µ®§÷¶þ~.json
The format:
abfs(s)://filesystem@accountname.endpoint/<path>
for file path for Source and Target fields does not work as this URL syntax is not supported. The file protocol must begin withabfs(s):///,
else the container, account name, and endpoint are interpolated into the URL at runtime, which results in the following error.Error: Unsupported protocol or URL syntax error in abfs(s)://filesystem@accountname.endpoint/<path>
,
Workaround: Use the supported file protocol and correct URL syntax.Multiexcerpt include macro name KI templateData [] page ZipFile Write addpanel false
Snap Views
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Input | Document | Min: 0 Max: 1 |
| Any document with key-value pairs to evaluate expression properties in the File Operator Snap can be used, where each input document will cause one complete execution of the Snap. | ||||||||||
Output | Document | Min: 0 Max: 1 |
| A typical output from this Snap is a document with column headers, such as Source, Target, and Status (Moved or Copied).
| ||||||||||
Error | Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:
Learn more about Error handling in Pipelines. |
Snap Settings
Info |
---|
|
Field Name | Field Type | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Label* Default Value: File Operation | String | Specify the name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your Pipeline. | ||||||||||||||
Source* Default Value: [None]
| String/Expression | Specify the URL for the source, where the binary data is read from. This Snap also supports S3 Virtual Private Cloud (VPC) endpoint. For example, s3://my-bucket@bucket.vpce-028b7814794578709-vu0vvauy.s3.us-west-2.vpce.amazonaws.com Example of Source as an expression: This property should have the syntax: You can also copy or move the file from your local system to Azure blob container for better performance.
| ||||||||||||||
Target* Default Value: [None]
| String/Expression | This property specifies the URL of the destination where the selected file operation must be performed. This Snap also supports S3 Virtual Private Cloud (VPC) endpoint. For example, s3://my-bucket@bucket.vpce-028b7814794578709-vu0vvauy.s3.us-west-2.vpce.amazonaws.com
| ||||||||||||||
File Operation Default Value: Move
| String/Expression | Enter or select the operation you want the Snap to perform on the file. Available options are:
| ||||||||||||||
Error if exists Default Value: Selected | Checkbox | If enabled, the Snap displays an error when the target exists. If disabled, the Snap replaces or overwrites the target with the source. | ||||||||||||||
Advanced Properties | Use this field set to customize or control the Snap's validation and execution mechanism. | |||||||||||||||
Properties Default Value: SAS URI | Dropdown list | The available options are:
You can also copy or move the file from your local system to Azure blob container for better performance.
| ||||||||||||||
Values Default Value:None | String/Expression | Specify a value for the above property. | ||||||||||||||
Snap Execution | Dropdown list |
|
Snap Behavior for Key Operations
Note |
---|
State TablesFollowing is a collection of state tables to depict the Snap's behavior for different configurations of the Source, Target and Error if exists properties. These combinations are applied to move, and copy operations. Use the following legend to understand what the values mean: |
Source | Target | Error if exists | |||
---|---|---|---|---|---|
-- | -- | x | State does not affect outcome | x | State does not affect outcome |
00 | Does not exist | 00 | Does not exist | 0 | Not selected |
01 | Regular file | 01 | Regular file | 1 | Selected |
10 | Directory | 10 | Empty directory | -- | -- |
-- | -- | 11 | Non-empty directory | -- | -- |
FTP, SFTP, and File Protocols
...
Configure the File Reader Snap that reads airlines.csv file from the local machine.
Next, we configure the File Writer Snap to write the airlines.csv file.
Next, we configure the File Operation Snap to move the file from Source (local directory) to Target (Azure Blob container).
SAS URI: https://blobbatchingdev.blob.core.windows.net/?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2022-05-20T02:51:39Z&st=2022-05-19T18:51:39Z&spr=https&sig=ey9YraJOEsokwBz4GsvT4p%2FCb4eoAuMIVwrf3zymeeI%3D
AzCopy absolute path: /Users/vkshirsagar/Downloads/azcopy_darwin_amd64_10.12.2/azcopy
...
First, we configure the JSON Generator Snap to pass the following sample data. After validation we see the following output.
Next, we format the data using the JSON Formatter Snap and then, use the HDFS Writer Snap to write the sample file (that uses ABFS protocol and ADLS Gen 2) to the target location.
Next, we configure two File Operation Snaps to copy and move files from one folder to another folder. We use the first File Operation Snap to copy the sample file from abfss:///bigdataqa/Samplefile/ to abfss:///bigdataqa/samplefile_diff/).
...
The exported Pipeline is available in the Downloads section below. More examples of operations are also available in the Downloads section - variousCasesOfFileOperations.pdf.
Typical Snap Configurations
...