////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
:documentationPath: /pipeline/transforms/
:language: en_US
:description: The Vertica Bulk Loader uses VerticaCopyStream to stream to a Vertica database.

= image:transforms/icons/vertica.svg[Vertica Bulk Loader transform Icon, role="image-doc-icon", width="60px"] Vertica Bulk Loader

[%noheader,cols="3a,1a", role="table-no-borders" ]
|===
|

= Vertica Bulk Loader

The Vertica Bulk Loader uses https://www.vertica.com/docs/12.0.x/HTML/Content/Authoring/ConnectingToVertica/ClientJDBC/UsingVerticaCopyStream.htm[VerticaCopyStream] to stream to a Vertica database.

This is typically significantly faster than loading data through e.g. a Table Output transform.

|
== Supported Engines
[%noheader,cols="2,1a",frame=none, role="table-supported-engines"]
!===
!Hop Engine! image:check_mark.svg[Supported, 24]
!Spark! image:question_mark.svg[Maybe Supported, 24]
!Flink! image:question_mark.svg[Maybe Supported, 24]
!Dataflow! image:question_mark.svg[Maybe Supported, 24]
!===
|===


== Options

=== Global transform options

[options="header", width="90%"]
|===
|Option|Description
|Transform name|Name of the transform.
|Connection|Name of the database connection on which the target table resides.
|Target schema|The name of the Schema for the table to write data to. This is important for data sources that allow for table names with dots '.' in it.
|Target table|Name of the target table.
|Truncate table|Truncate this table before loading data
|Truncate on first row|Only truncate this table if there is data (when the first row is received)
|Specify database fields|Enable this option to specify the fields in the Database fields tab. Otherwise all fields are taken into account by default.
|===

=== Main options tab
[options="header", width="90%"]
|===
|Option|Description
|Insert directly to ROS|Insert directly to ROS (Read Optimized Store). A ROS (Read Optimized Store) container is a set of rows stored in a particular group of files
|Abort on error|Stop or continue loading data as soon as an error occurs
|Exceptions log file|Path to the exceptions log file
|Reject data log file|Path to the rejected data log file
|Stream name|Name for the Vertica COPY stream
|===

=== Database fields tab

Map table columns to stream fields using 'Get Fields' and/or 'Enter Field Mapping'.