====== Tabli - Data Copy Command ======
===== About =====
''data copy'' is a [[docs:tabli:command|command]] that supports the [[docs:op:copy|copy operation]].
It's just an alias of the [[transfer|transfer command]] where the [[docs:op:transfer#operation|transfer operation]] has the value ''copy''.
===== Prerequisites =====
A [[docs:op:copy|copy]] operation creates a [[docs:flow:target|target data resource]] that is a ''copy'' of the [[docs:flow:source|source data resource]] meaning that
they should have the same:
* [[docs:resource:structure|structure]]
* [[docs:resource:count|number of rows]]
Therefore if the [[docs:flow:target|target data resource]] exists:
* the [[docs:flow:target|target data resource]] should have the same [[docs:resource:structure|structure]] than the [[docs:flow:source|source data resource]]
* or you set the ''target-operation'' to ''replace''
* the [[docs:flow:target|target data resource]] should be empty
* or you set the ''target-operation'' to ''truncate''
===== Syntax =====
tabli data copy -h
Tabli data copy
===============
Copy one or more data resources.
Note: This is an alias command to the `transfer` command with the `copy` transfer operation.
Examples
--------
1 - To copy the table `time` from the data store `sqlite` into the file `time.csv`, you would execute
tabli data copy time@sqlite time.csv
2 - To copy the file `foo.txt` to the file `foo_copy.txt`, you would execute
tabli data copy foo.txt foo_copy.txt
Syntax
------
tabli data copy [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.
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