====== Tabli - Data Transfer Command (copy, download, load, move, rename) ======
===== About =====
The ''transfer'' command supports all [[docs:op:transfer|transfer operations]] between a [[docs:flow:source|source data resource]] and a [[docs:flow:target|target data resource]]
The below commands are all command aliases that set the ''transfer-operation'' [[docs:tabli:option|option]] to their respective value and call the ''transfer'' command.
  * [[move|move]]
  * [[copy|copy]]
  * [[upsert|upsert]]
  * [[insert|insert]]
  * [[update|update]]
  * [[delete|delete]]
===== Syntax =====
tabli data transfer -h
Tabli data transfer
===================
Transfer one or more data resources.
Examples
--------
 1 - To download the table `time` from the data store `sqlite` into the file `time.csv`, you would execute
        tabli data transfer time@sqlite time.csv
 2 - To download all the table that starts with `dim` from the data store `oracle` into the directory `dim`, you would execute
        tabli data transfer dim*@oracle dim
 3 - To download the data of the query defined in the file `QueryToDownload.sql` and executed against the data store `sqlite` into the file `QueryData.csv`, you would execute the following command:
        tabli data transfer (QueryToDownload.sql)@sqlite QueryData.csv
 4 - To download the data of all query defined in all `sql` files of the current directory, execute them against the data store `sqlite` and save the results into the directory `result`, you would execute the following command:
        tabli data transfer (*.sql)@sqlite result
 5 - Transfer the result of the query `top10product` from sqlite to the table `top10product` of sql server
        tabli data transfer (top10product.sql)@sqlite @sqlserver
Syntax
------
    tabli data transfer [options|flags]  
where:
  Arguments:
                                           A data selector that select the data resources to transfer
                                           A target data URI that defines the destination (Example: [table]@connection). If the target data uri has no name, the name will be the name of the source.
  Cross Data Transfer Options:
    -bs,--buffer-size                           defines the size of the memory buffer between the source and target threads
    -mdu,--metrics-data-uri                 defines a target data uri where the data metrics should be exported
    -sfs,--source-fetch-size                     defines the fetch size against the source connection
    -tbs,--target-batch-size                     defines the batch size against the target data resource
    -tcf,--target-commit-frequency         defines the commit frequency in number of batches against the target data resource
    -tw,--target-worker                  defines the target number of thread against the target connection
    -wbv,--with-bind-variables                              defines if bind variables are used in the SQL statement
  Data Definition Options:
    -sa,--source-attribute             Set a source data resource attribute
    -ta,--target-attribute             Set a target data resource attribute
  Transfer Operation Options:
    -so,--source-operation                           defines the data operation (drop or truncate) on the source after transfer. Note: A `move` operation will drop the source.
    -to,--target-operation             defines the data operations (replace, truncate) on the existing target before transfer.
    -op,--transfer-operation             defines the transfer operation (insert, update, delete, upsert, merge, move, copy). Default to `copy` for a file system and `insert` for a database.
  Selection Options:
    -wd,--with-dependencies                                 If set, the dependencies will be also selected
  Global Options:
    -cf,--conf                                        The path to a configuration file
    -cv,--connection-vault                            The path where the connection vault is located
    -h,--help                                               Print this help
    -l,--log-level             Set the log level
    -ns,--not-strict                                        A minor error will not stop the process.
    -odu,--output-data-uri                   defines the output data uri for the feedback data (default: console)
    -oo,--output-operation                   defines the data operations (replace, truncate) on an existing output resource before transfer.
    -oop,--output-transfer-operation     defines the output transfer operation (insert, update, merge, copy). Default to `copy` for a file system and `insert` for a database.
    -pp,--passphrase                            A passphrase (master password) to decrypt the encrypted values