////
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 Add a Checksum transform calculates checksums for one or more fields in the input stream and adds this to the output as a new field.

= image:transforms/icons/checksum.svg[Add a Checksum Icon, role="image-doc-icon"] Add a checksum

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

The Add a Checksum transform calculates checksums for one or more fields in the input stream and adds this to the output as a new field.

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

== Options

[options="header"]
|===
|Option|Description
|Transform name|Name of the transform.
Note: This name has to be unique in a single pipeline.
|Type a|The type of checksum that needs to be calculated.
These are the types that are available:

* CRC32 : 32-bit Cyclic Redundancy Check : http://en.wikipedia.org/wiki/Cyclic_redundancy_check
* ADLER 32 : Checksum algorithm by Mark Adler: http://en.wikipedia.org/wiki/Adler-32
* MD5 : Message Digest algorithm 5 : http://en.wikipedia.org/wiki/MD5
* SHA-1 : Secure Hash Algorithm 1 : http://en.wikipedia.org/wiki/SHA-1
* SHA-256 : Secure Hash Algorithm 2 : http://en.wikipedia.org/wiki/SHA-256
|Result Type|Some checksum types allow to set different result types: String, Hexadecimal and Binary
|Result field|The name of the result field containing the checksum
|Fields used in the checksum|The names of the fields to include in the checksum calculation.
Note: You can use the "Get Fields" button to insert all input fields from previous transforms.
|===
