---json
{
"aliases": [
{ "path": ":docs:tabli:data:transfer" }
],
"page_id": "6zb02fkldx4qhbpakxn1p"
}
---
====== Tabul - 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:tabul:option|option]] to their respective value and call the ''transfer'' command.
* [[concat|concat]]
* [[copy|copy]]
* [[delete|delete]]
* [[insert|insert]]
* [[move|move]]
* [[replace|replace]]
* [[update|update]]
* [[upsert|upsert]]
===== Default Processing Types =====
In the [[:docs:flow:pipeline|pipeline]] executed by this command, the [[:docs:flow:processing-type|processing type values]] are the following:
^ Operation ^ Value ^ Type ^
| [[:docs:op:select|select supplier]] | ''batch'' | Constant (Cannot be changed). The selection selects only once and finishes. |
| [[:docs:op:transfer|transfer]] | ''stream'' | Can be changed with the ''--processing-type'' option |
===== Syntax =====
tabul data transfer -h
Tabul 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
tabul 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
tabul 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:
tabul 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:
tabul data transfer (*.sql)@sqlite result
5 - Transfer the result of the query `top10product` from sqlite to the table `top10product` of sql server
tabul data transfer (top10product.sql)@sqlite @sqlserver
Syntax
------
tabul data transfer [options|flags]
where:
Arguments:
A data selector that select the data resources to transfer
A target data uri (Example: table@connection or foo.csv@cd)
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
-out,--output-type The resource that is passed as output
-pt,--processing-type how to process the inputs (one by one or in batch)
-sfs,--source-fetch-size defines the size of the network message from the source to fetch the data
-so,--source-operation defines the data operation (drop or truncate) on the source after transfer. Note: A `move` operation will drop the source.
-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
-to,--target-operation defines the data operations (drop or truncate) on the existing target before transfer. A `replace` operation will drop the target.
-twc,--target-worker-count defines the target number of thread against the target connection
-tmc,--transfer-mapping-columns defines the columns mapping between the source and the target
-tmm,--transfer-mapping-method defines the method used to map the source columns to the target columns
-tms,--transfer-mapping-strict defines if a map by name or position is strict
-op,--transfer-operation defines the transfer operation (insert, update, delete, upsert, merge, copy).
-tut,--transfer-upsert-type defines the type of upsert operation (merge, insert, insert-update, update-insert).
-wp,--with-parameters defines if parameters are used in the SQL statement
Data Definition Options:
-sa,--source-attribute Set a source attribute
-ta,--target-attribute Set a target attribute
Selection Options:
--strict-selection If set the selection will return an error if no data resources have been selected
-wd,--with-dependencies If set, the dependencies will be also selected
Options:
-t,--type The type of the resource
-vc,--virtual-column Add a virtual column with the value of a data resource attribute
Global Options:
-ah,--app-home The app home directory (default to the .tabul.yml file directory)
-vf,--conf The path to a configuration file
-ee,--exec-env The execution environment (prod or dev)
-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 vault values (Env: TABUL_PASSPHRASE)
--pipe-mode Use pipe mode if you want to pipe the output in a shell. Pipe mode will not print the headers (ie column name) and will not make the control character visible
-v,--version Print version information