Tabul - Data Upsert Command

Undraw Windows

About

data upsert is a Tabul command that supports the upsert data operation where the data to upsert are defined in a source data resource.

This is an alias command of the data transfer command where the transfer-operation option has been set to upsert.

Prerequisites

  • The source should have data for the target constrained columns (ie not null, unique)
  • The target should have a primary key column or a unique column

Syntax

tabul data upsert -h
Tabul data upsert
=================

Merge one or more data resources into other data resources.

Note: This is an alias command to the `transfer` command with the `merge` transfer operation.



Examples
--------

 1 - To merge the result of the Sql query `query_11.sql` into the Sql table `analytics`, you would execute


        tabul data upsert (query_11.sql)@sqlite analytics@sqlite


 2 - To merge the file `foo.csv` into the `sqlite` table `foo`, you would execute


        tabul data upsert foo.csv foo@sqlite




Syntax
------


    tabul data upsert [options|flags] <source-selector...> <target-data-uri>


where:


  Arguments:

    <source-selector...>                                          A data selector that select the data resources to transfer

    <target-data-uri>                                             A target data uri (Example: table@connection or foo.csv@cd)


  Cross Data Transfer Options:

    -bs,--buffer-size <buffer-size>                               defines the size of the memory buffer between the source and target threads

    -mdu,--metrics-data-uri <metrics-data-uri>                    defines a target data uri where the data metrics should be exported

    -out,--output-type <output-type>                              The resource that is passed as output

    -pt,--processing-type <processing-type>                       how to process the inputs (one by one or in batch)

    -sfs,--source-fetch-size <source-fetch-size>                  defines the size of the network message from the source to fetch the data

    -so,--source-operation <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 <target-batch-size>                  defines the batch size against the target data resource

    -tcf,--target-commit-frequency <target-commit-frequency>      defines the commit frequency in number of batches against the target data resource

    -to,--target-operation <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 <target-worker-count>              defines the target number of thread against the target connection

    -tmc,--transfer-mapping-columns <transfer-mapping-columns>    defines the columns mapping between the source and the target

    -tmm,--transfer-mapping-method <transfer-mapping-method>      defines the method used to map the source columns to the target columns

    -tms,--transfer-mapping-strict <transfer-mapping-strict>      defines if a map by name or position is strict

    -op,--transfer-operation <transfer-operation>                 defines the transfer operation (insert, update, delete, upsert, merge, copy).

    -tut,--transfer-upsert-type <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 <attributeName=value>                  Set a source attribute

    -ta,--target-attribute <attributeName=value>                  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 <mediaType|mimeType|extensionFile>                  The type of the resource

    -vc,--virtual-column <columnName=resourceAttributeName>       Add a virtual column with the value of a data resource attribute


  Global Options:

    -ah,--app-home <path>                                         The app home directory (default to the .tabul.yml file directory)

    -vf,--conf <path>                                             The path to a configuration file

    -ee,--exec-env <name>                                         The execution environment (prod or dev)

    -h,--help                                                     Print this help

    -l,--log-level <error|warning|tip|info|fine>                  Set the log level

    -ns,--not-strict                                              A minor error will not stop the process.

    -odu,--output-data-uri <outputDataUri>                        defines the output data uri for the feedback data (default: console)

    -oo,--output-operation <dataOperation>                        defines the data operations (replace, truncate) on an existing output resource before transfer.

    -oop,--output-transfer-operation <transferOperation>          defines the output transfer operation (insert, update, merge, copy). Default to `copy` for a file system and `insert` for a database.

    -pp,--passphrase <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




Related HowTo
Undraw Windows
How to load an HTLM table in a database?

This howto shows you how to load an HTML table in a SQL Table. Because the HTML resource is a file resource, it can be used as any source in any type of transfer. Example with the upsert operation...
Undraw Windows
Learning Tabulify - Step 8 - How to modify the content of a table

Tabulify learning guidetransfer step The transfer page should have made you familiar with the transfer concept where we have introduced the copy operation. The copy and move operation does not modify...

Task Runner