/data/out/tables manifests

An output table manifest sets options for transferring a table to Storage. The following examples list available manifest fields; all of them are optional. The destination field overrides the table name generated from the file name; it can (and commonly is) overridden by the end-user configuration. The columns option defines the columns of the imported table. If the columns option is provided, then the CSV files are assumed to be headless. If you the component is producing Sliced tables, then they are always assumed to be headless and you have to use the columns option.

{
  "destination": "out.c-main.Leads",
  "columns": ["column1", "column2", "column3"],
  "incremental": true,
  "primary_key": ["column1", "column2"],
  "delimiter": "\t",
  "enclosure": "\"",
  "metadata": ...,
  "column_metadata": ...
}

Additionally, the following options can be specified:

{
  ...
  "delete_where_column": "column name",
  "delete_where_values": ["value1", "value2"],
  "delete_where_operator": "eq"
}

The options will cause the specified rows to be deleted from the source table before the new table is imported. See an example. Using this option makes sense only with incremental loads.

The metadata and column_metadata fields allow you to set Metadata for the table and its columns. The metadata field corresponds to the Table Metadata API call. The column_metadata field corresponds to the Column Metadata API call. In both cases, the key and value are passed directly to the API; the provider value is filled by the Id of the running component (e.g., keboola.ex-db-snowflake).

{
  ...,
  "metadata": [
    {
      "key": "an.arbitrary.key",
      "value": "Some value"
    },
    {
      "key": "another.arbitrary.key",
      "value": "A different value"
    }
  ],
  "column_metadata": {
    "column1": [
      {
        "key": "yet.another.key",
        "value": "Some other value"
      }
    ]
  }
}