blob: 376e8fe9979677c8c7a873d7f70c8aeb9dd6eede [file] [log] [blame]
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Fuzzy match :: Apache Hop (Incubating)</title> <link rel="canonical" href="https://hop.apache.org/manual/latest/plugins/transforms/fuzzymatch.html"> <meta name="generator" content="Antora 2.3.4"> <link rel="stylesheet" href="../../../../_/css/site-8ea79c1e80.css"> </head> <body class="article"> <div class="cookie-banner" id="cookies-eu-banner" style="display: none;"> <div id="cookies-eu-content"> By continuing to visit this site, you accept the use of <a href="../../../../cookie-info/">cookies.</a> <button id="cookies-eu-accept">Accept</button> </div> <button id="cookies-eu-reject">Reject</button> </div> <header class="header"> <nav class="navbar"> <div class="navbar-brand"> <a class="nav-logo" href="../../../.."><span>Apache Hop (Incubating)</span></a> <div id="topbar-nav" class="navbar-menu"> <div class="navbar-end"> <a class="navbar-item" href="../../../..../../../../blog/">Blog</a> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="#">Documentation</a> <div class="navbar-dropdown"> <a class="navbar-item" href="../../../../manual/latest/getting-started.html">Getting started</a> <a class="navbar-item" href="../../../../manual/latest/">User manual</a> <a class="navbar-item" href="../../../../tech-manual/latest/">Technical Documentation</a> <a class="navbar-item" href="../../../../dev-manual/latest/">Developer Documentation</a> <a class="navbar-item" href="../../../../docs/architecture/">Architecture</a> <a class="navbar-item" href="../../../../docs/roadmap/">Roadmap</a> <a class="navbar-item" href="../../../../docs/qa">Q&amp;A</a> </div> </div> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="#">Community</a> <div class="navbar-dropdown"> <a class="navbar-item" href="../../../../community/contributing/">Contributing</a> <a class="navbar-item" href="../../../../community/tools/">Tools</a> <a class="navbar-item" href="../../../../community/team/">Team</a> </div> </div> <a class="navbar-item" href="../../../..../../../../download/">Download</a> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="#">About</a> <div class="navbar-dropdown"> <a class="navbar-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a> </div> </div> </div> </div> <div class="navbar-search"> <input id="search-input" type="text" placeholder="Search docs" class="ds-input" autocomplete="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-owns="algolia-autocomplete-listbox-0" dir="auto"> </div> <div class="navbar-tools"> <a href="https://chat.project-hop.org" title="Chat with us" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path d="m 23.399705,7.0517653 c -0.811583,-1.755522 -1.98643,-3.2324028 -3.542396,-4.4727237 0.04144,0.8420009 0.131904,2.6427217 0.131904,2.6427217 0,0 0.09696,0.1272 0.13632,0.182401 1.572478,2.199681 2.147037,4.6376017 1.623358,7.2857637 -1.050239,5.309843 -6.218105,8.549046 -11.455186,7.224805 C 5.6960779,18.752172 2.6254257,14.043529 3.4949926,9.3753663 4.1813918,5.6900843 6.3558852,3.2350424 9.8870488,1.9875216 l 0.1279682,-0.048 0.100416,-0.072 C 10.543401,1.2611208 10.961,0.6477608 11.406631,0 6.0547335,0.2656 0.67230798,4.5661633 0.05570071,11.107927 -0.54103457,17.438011 3.7200163,23.083134 9.8089048,24.321855 16.154114,25.612736 22.194522,21.863214 24.019864,15.86257 24.932631,12.862008 24.719032,9.9083263 23.399704,7.0542453 Z M 8.2979624,11.010647 c 0.267552,2.546882 2.4715176,4.282562 5.0209866,4.000322 2.504829,-0.2776 4.335931,-2.731601 3.861787,-5.2146427 -0.3696,-1.936001 -0.77808,-3.864402 -1.170046,-5.796084 -0.162144,-0.7991999 -0.326208,-1.5984007 -0.49824,-2.4414407 -0.06784,0.056 -0.09936,0.0848 -0.128064,0.1128 -0.858239,0.84272 -1.715997,1.6859209 -2.574236,2.5285617 -1.045056,1.02632 -2.08867,2.053921 -3.1362212,3.077522 -1.0506224,1.02664 -1.5288936,2.279601 -1.3760624,3.7327217 z"/></svg></a> <a href="https://twitter.com/projhop" title="Follow us on Twitter" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6.5 8.778c-.441.196-.916.328-1.414.388.509-.305.898-.787 1.083-1.362-.476.282-1.003.487-1.564.597-.448-.479-1.089-.778-1.796-.778-1.59 0-2.758 1.483-2.399 3.023-2.045-.103-3.86-1.083-5.074-2.572-.645 1.106-.334 2.554.762 3.287-.403-.013-.782-.124-1.114-.308-.027 1.14.791 2.207 1.975 2.445-.346.094-.726.116-1.112.042.313.978 1.224 1.689 2.3 1.709-1.037.812-2.34 1.175-3.647 1.021 1.09.699 2.383 1.106 3.773 1.106 4.572 0 7.154-3.861 6.998-7.324.482-.346.899-.78 1.229-1.274z"/></svg></a> <a href="https://www.linkedin.com/company/hop-project/" title="Follow us on LinkedIn" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg></a> <a href="https://www.youtube.com/channel/UCGlcYslwe03Y2zbZ1W6DAGA" title="Subscribe to our YouTube channel" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path fill-rule="evenodd" d="M4.652 0h1.44l.988 3.702.916-3.702h1.454l-1.665 5.505v3.757h-1.431v-3.757l-1.702-5.505zm6.594 2.373c-1.119 0-1.861.74-1.861 1.835v3.349c0 1.204.629 1.831 1.861 1.831 1.022 0 1.826-.683 1.826-1.831v-3.349c0-1.069-.797-1.835-1.826-1.835zm.531 5.127c0 .372-.19.646-.532.646-.351 0-.554-.287-.554-.646v-3.179c0-.374.172-.651.529-.651.39 0 .557.269.557.651v3.179zm4.729-5.07v5.186c-.155.194-.5.512-.747.512-.271 0-.338-.186-.338-.46v-5.238h-1.27v5.71c0 .675.206 1.22.887 1.22.384 0 .918-.2 1.468-.853v.754h1.27v-6.831h-1.27zm2.203 13.858c-.448 0-.541.315-.541.763v.659h1.069v-.66c.001-.44-.092-.762-.528-.762zm-4.703.04c-.084.043-.167.109-.25.198v4.055c.099.106.194.182.287.229.197.1.485.107.619-.067.07-.092.105-.241.105-.449v-3.359c0-.22-.043-.386-.129-.5-.147-.193-.42-.214-.632-.107zm4.827-5.195c-2.604-.177-11.066-.177-13.666 0-2.814.192-3.146 1.892-3.167 6.367.021 4.467.35 6.175 3.167 6.367 2.6.177 11.062.177 13.666 0 2.814-.192 3.146-1.893 3.167-6.367-.021-4.467-.35-6.175-3.167-6.367zm-12.324 10.686h-1.363v-7.54h-1.41v-1.28h4.182v1.28h-1.41v7.54zm4.846 0h-1.21v-.718c-.223.265-.455.467-.696.605-.652.374-1.547.365-1.547-.955v-5.438h1.209v4.988c0 .262.063.438.322.438.236 0 .564-.303.711-.487v-4.939h1.21v6.506zm4.657-1.348c0 .805-.301 1.431-1.106 1.431-.443 0-.812-.162-1.149-.583v.5h-1.221v-8.82h1.221v2.84c.273-.333.644-.608 1.076-.608.886 0 1.18.749 1.18 1.631v3.609zm4.471-1.752h-2.314v1.228c0 .488.042.91.528.91.511 0 .541-.344.541-.91v-.452h1.245v.489c0 1.253-.538 2.013-1.813 2.013-1.155 0-1.746-.842-1.746-2.013v-2.921c0-1.129.746-1.914 1.837-1.914 1.161 0 1.721.738 1.721 1.914v1.656z"/></svg> <a href="https://github.com/project-hop/" title="Collaborate on GitHub"><svg class="brand-icon" viewBox="0 0 22 22"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a> </a></div> <button class="navbar-burger" data-target="topbar-nav" type="button"> <span></span> <span></span> <span></span> </button> </div> </nav> </header> <div class="body"> <div class="nav-container" data-component="manual" data-version="latest"> <aside class="nav"> <div class="panels"> <div class="nav-panel-menu is-active" data-panel="menu"> <nav class="nav-menu"> <h3 class="title"><a href="../../index.html">User manual</a></h3> <ul class="nav-list"> <li class="nav-item" data-depth="0"> <ul class="nav-list"> <li class="nav-item" data-depth="1"> <a class="nav-link" href="../../getting-started.html">Getting Started</a> </li> <li class="nav-item" data-depth="1"> <a class="nav-link" href="../../concepts.html">Concepts</a> </li> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../../hop-vs-kettle/index.html">Kettle &#8594; Hop</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../../hop-vs-kettle/hop-vs-kettle.html">Hop vs Kettle</a> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../../hop-vs-kettle/if-you-know-kettle.html">If You Know Kettle/PDI</a> </li> </ul> </li> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../../hop-gui/index.html">Hop Gui</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../../hop-gui/environments/environments.html">Hop Environments</a> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../../hop-gui/pipelines/pipelines.html">Pipelines</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/pipelines/hop-pipeline-editor.html">Pipeline Editor</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/pipelines/create-pipeline.html">Create a Pipeline</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/pipelines/run-preview-debug-pipeline.html">Run, Preview and Debug a Pipeline</a> </li> <li class="nav-item" data-depth="3"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/pipeline-run-configurations.html">Pipeline Run Configurations</a> <ul class="nav-list"> <li class="nav-item" data-depth="4"> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/beam-dataflow-pipeline-engine.html">Beam Google DataFlow</a> </li> <li class="nav-item" data-depth="4"> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/beam-direct-pipeline-engine.html">Beam Direct</a> </li> <li class="nav-item" data-depth="4"> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/beam-flink-pipeline-engine.html">Beam Flink</a> </li> <li class="nav-item" data-depth="4"> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/beam-spark-pipeline-engine.html">Beam Spark</a> </li> <li class="nav-item" data-depth="4"> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/local-pipeline-engine.html">Local Native</a> </li> <li class="nav-item" data-depth="4"> <a class="nav-link" href="../../hop-gui/pipelines/pipeline-run-configurations/remote-pipeline-engine.html">Remote Native</a> </li> </ul> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/pipelines/metadata-injection.html">Metadata Injection</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../../hop-gui/workflows/workflows.html">Workflows</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/workflows/create-workflow.html">Create a Workflow</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/workflows/run-debug-workflow.html">Run and Debug a Workflow</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../../hop-gui/workflows/workflow-run-configurations/workflow-run-configurations.html">Workflow Run Configurations</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../../hop-gui/variables/variables.html">Variables</a> </li> </ul> </li> <li class="nav-item" data-depth="1"> <a class="nav-link" href="../../hop-run/index.html">Hop Run</a> </li> <li class="nav-item" data-depth="1"> <a class="nav-link" href="../../hop-server/index.html">Hop Server</a> </li> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../plugins.html">Plugins</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../transforms.html">Transform Plugins</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="abort.html">Abort</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="checksum.html">Add a checksum</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="constant.html">Add Constants</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="addsequence.html">Add Sequence</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="fieldschangesequence.html">Add value fields changing sequence</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="addxml.html">Add XML</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="analyticquery.html">Analytic Query</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="append.html">Append Streams</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beambigqueryinput.html">Beam BigQuery Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beambigqueryoutput.html">Beam BigQuery Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beampublisher.html">Beam GCP Pub/Sub : Publish</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beamsubscriber.html">Beam GCP Pub/Sub : Subscribe</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beaminput.html">Beam Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beamconsume.html">Beam Kafka Consume</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beamproduce.html">Beam Kafka Produce</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beamoutput.html">Beam Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beamtimestamp.html">Beam Timestamp</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="beamwindow.html">Beam Window</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="blockingtransform.html">Blocking transform</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="blockuntiltransformsfinish.html">Blocking until transforms finish</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="calculator.html">Calculator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="dbproc.html">Call DB procedure</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="changefileencoding.html">Change file encoding</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="filelocked.html">Check if file is locked</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="webserviceavailable.html">Check if webservice is available</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="clonerow.html">Clone row</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="closure.html">Closure</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="columnexists.html">Column exists</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="combinationlookup.html">Combination lookup/update</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="concatfields.html">Concat Fields</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="rowstoresult.html">Copy rows to result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="creditcardvalidator.html">Credit card validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="csvinput.html">CSV File Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="cubeinput.html">Cube input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="cubeoutput.html">Cube output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="databasejoin.html">Database Join</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="databaselookup.html">Database Lookup</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="datagrid.html">Data Grid</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="validator.html">Data Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="delay.html">Delay row</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="delete.html">Delete</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="detectemptystream.html">Detect Empty Stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="dimensionlookup.html">Dimension lookup/update</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="dummy.html">Dummy (do nothing)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="dynamicsqlrow.html">Dynamic SQL row</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="edi2xml.html">Edi to XML</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mailinput.html">Email Messages Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="excelwriter.html">Excel writer</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="execprocess.html">Execute a process</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="execsqlrow.html">Execute row SQL script</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="sql.html">Execute SQL script</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="fake.html">Fake data</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="fileexists.html">File exists</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="filesfromresult.html">Files from result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="filestoresult.html">Files to result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="filterrows.html">Filter Rows</a> </li> <li class="nav-item is-current-page" data-depth="3"> <a class="nav-link" href="fuzzymatch.html">Fuzzy match</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="randomvalue.html">Generate Random Value</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="getxmldata.html">Get Data From XML</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="getfilenames.html">Get filenames</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="getfilesrowcount.html">Get files rowcount</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="getslavesequence.html">Get ID from slave server</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="recordsfromstream.html">Get records from stream </a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="rowsfromresult.html">Get Rows from Result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="getsubfolders.html">Get SubFolder names</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="systemdata.html">Get System Info</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="gettablenames.html">Get table names</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="getvariable.html">Get variables</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="groupby.html">Group By</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="http.html">HTTP client</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="httppost.html">HTTP Post</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="detectlastrow.html">Identify last row in a stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ifnull.html">If Null</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="injector.html">Injector</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="insertupdate.html">Insert / Update</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="javafilter.html">Java Filter</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="javascript.html">JavaScript</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="joinrows.html">Join Rows</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="jsoninput.html">JSON Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="jsonoutput.html">JSON Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ldapinput.html">LDAP Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ldapoutput.html">LDAP Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ldifinput.html">LDIF Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="loadfileinput.html">Load file content in memory</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mail.html">Mail</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mailvalidator.html">Mail Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="memgroupby.html">Memory Group By</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mergejoin.html">Merge Join</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mergerows.html">Merge rows (diff)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="metainject.html">Metadata Injection</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="excelinput.html">Microsoft Excel input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="exceloutput.html">Microsoft Excel output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mongodbinput.html">MongoDB Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="mongodboutput.html">MongoDB Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="multimerge.html">Multiway Merge Join</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="nullif.html">Null If</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="numberrange.html">Number range</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="pgpdecryptstream.html">PGP decrypt stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="pgpencryptstream.html">PGP encrypt stream</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="pipelineexcecutor.html">Pipeline Executor</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="pgbulkloader.html">PostgreSQL Bulk Loader</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="processfiles.html">Process files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="propertyinput.html">Read data (key, value) from properties files.</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="regexeval.html">Regex Evaluation</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="replacestring.html">Replace in String</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="reservoirsampling.html">Reservoir Sampling</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="rest.html">REST Client</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="denormaliser.html">Row Denormaliser</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="flattener.html">Row Flattener</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="rowgenerator.html">Row Generator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="normaliser.html">Row Normaliser</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="ssh.html">Run SSH commands</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="selectvalues.html">Select Values</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="syslog.html">Send Message to Syslog</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="setvaluefield.html">Set field Value</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="setvalueconstant.html">Set field value to a constant</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="setvariable.html">Set Variables</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="sortedmerge.html">Sorted Merge</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="sort.html">Sort Rows</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="splitfieldtorows.html">Split fields</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="fieldsplitter.html">Split Fields</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="sqlfileoutput.html">SQL File Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="streamlookup.html">Stream Lookup</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="streamschemamerge.html">Stream Schema Merge</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="stringoperations.html">String operations</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="stringcut.html">Strings cut</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="switchcase.html">Switch / Case</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="synchronizeaftermerge.html">Synchronize after merge </a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tablecompare.html">Table Compare</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tableexists.html">Table Exists</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tableinput.html">Table Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tableoutput.html">Table Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="terafast.html">Teradata Bulk Loader</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="textfileinput.html">Text File Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="textfileoutput.html">Text File Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="tokenreplacement.html">Token Replacement</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="uniquerows.html">Unique Rows</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="uniquerowsbyhashset.html">Unique Rows (HashSet)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="update.html">Update</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="userdefinedjavaclass.html">User Defined Java Class</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="janino.html">User Defined Java Expression</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="valuemapper.html">Value Mapper</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="webservices.html">Web services lookup</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="workflowexecutor.html">Workflow Executor</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="propertyoutput.html">Write data to properties file</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="writetolog.html">Write to log</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="xmlinputstream.html">XML Input Stream (StAX) </a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="xmljoin.html">XML Join</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="xmloutput.html">XML Output</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="xsdvalidator.html">XSD Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="xslt.html">XSL Transformation</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="yamlinput.html">Yaml Input</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="zipfile.html">Zip file</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../databases.html">Database Plugins</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/derby.html">Apache Derby</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/as400.html">AS400</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/cache.html">Cache</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/db2.html">DB2</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/exasol.html">Exasol</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/firebird.html">firebird</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/googlebigquery.html">Google BigQuery</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/greenplum.html">Greenplum</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/sqlbase.html">Gupta SQLBase</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/h2.html">H2</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/hypersonic.html">Hypersonic</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/universe.html">IBM Universe</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/infinidb.html">InfiniDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/infobright.html">Infobright DB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/informix.html">informix</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/ingres.html">ingres</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/interbase.html">interbase</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/kingbasees.html">kingbase es</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/mariadb.html">Mariadb</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/sapdb.html">MaxDB (SAP DB)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/monetdb.html">monetdb</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/mssql.html">MS SqlServer</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/mssqlnative.html">MS SqlServer (Native)</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/mysql.html">MySql</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/netezza.html">Netezza</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/oracle.html">Oracle</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/oraclerdb.html">Oracle RDB</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/postgresql.html">PostgreSQL</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/redshift.html">Redshift</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/snowflake.html">Snowflake</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/sqlite.html">SqLite</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/sybase.html">Sybase</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/sybaseiq.html">Sybase IQ</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/teradata.html">Teradata</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/vectorwise.html">Vectorwise</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../databases/vertica.html">Vertica</a> </li> </ul> </li> <li class="nav-item" data-depth="2"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../actions.html">Action Plugins</a> <ul class="nav-list"> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/abort.html">Abort</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/addresultfilenames.html">Add filenames to result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/checkdbconnection.html">Check Db connections</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/checkfilelocked.html">Check Files Locked</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/webserviceavailable.html">Check if Webservice is available</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/xmlwellformed.html">Check if XML file is well formed</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/filesexist.html">Checks if files exists</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/columnsexist.html">Columns exist in a table</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/copyfiles.html">Copy Files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/copymoveresultfilenames.html">Copy Or Move Files from result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/createfile.html">Create File</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/createfolder.html">Create Folder</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/pgpdecryptfiles.html">Decrypt files with PGP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/delay.html">Delay</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/deletefile.html">Delete File</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/deleteresultfilenames.html">Delete filenames from result</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/deletefiles.html">Delete Files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/deletefolders.html">Delete Folders</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/msgboxinfo.html">Display Msgbox info</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/dostounix.html">Dos To Unix</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/dtdvalidator.html">DTD Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/dummy.html">Dummy</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/pgpencryptfiles.html">Encrypt files with PGP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/repeat-end.html">End Repeat</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/evalfilesmetrics.html">Evaluate File Metrics</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/evaluatetablecontent.html">Evaluate rows number in a table</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/filecompare.html">File compare</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/fileexists.html">File Exists</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/folderisempty.html">Folder is Empty</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/folderscompare.html">Folders Compare</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/ftpdelete.html">FTP delete</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/ftp.html">Get a file with FTP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/ftpsget.html">Get a file with FTPS</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/sftp.html">Get a file with SFTP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/getpop.html">Get Mail from POP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/http.html">Http Get</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/eval.html">JavaScript</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/mail.html">Mail</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/mailvalidator.html">Mail Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/movefiles.html">Move Files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/mssqlbulkload.html">MS SQL Server Bulk Loader</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/mysqlbulkfile.html">MySQL Bulk File</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/mysqlbulkload.html">MySQL Bulk Loader</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/pgpfiles.html">PGP Files</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/ping.html">Ping</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/pipeline.html">Pipeline</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/ftpput.html">Put a file with FTP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/sftpput.html">Put a file with SFTP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/repeat.html">Repeat</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/syslog.html">Send information using Syslog</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/sendnagiospassivecheck.html">Send Nagios check</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/setvariables.html">Set Variables</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/shell.html">Shell Action</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/simpleeval.html">Simple Evaluation</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/snmptrap.html">Snmp Trap</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/sql.html">SQL Script Executor</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/start.html">Start</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/success.html">Success Action</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/tableexists.html">Table Exists</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/telnet.html">Telnet a host</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/truncatetables.html">Truncate Tables</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/unzip.html">Unzip</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/ftpsput.html">Upload files to FTPS</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/pgpverify.html">Verify file signature with PGP</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/waitforfile.html">Wait for file</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/waitforsql.html">Wait for SQL</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/workflow.html">Workflow</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/writetofile.html">Write to File</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/writetolog.html">Write to Log</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/xsdvalidator.html">XSD Validator</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/xslt.html">XSL Transformation</a> </li> <li class="nav-item" data-depth="3"> <a class="nav-link" href="../actions/zipfile.html">Zip File</a> </li> </ul> </li> </ul> </li> <li class="nav-item" data-depth="1"> <button class="nav-item-toggle"></button> <a class="nav-link" href="../../samples/samples.html">Samples</a> <ul class="nav-list"> <li class="nav-item" data-depth="2"> <a class="nav-link" href="../../samples/dummy-sample.html">Dummy Sample</a> </li> </ul> </li> <li class="nav-item" data-depth="1"> <a class="nav-link" href="../../faq/faq.html">Frequently Asked Questions</a> </li> <li class="nav-item" data-depth="1"> <a class="nav-link" href="../../image-testpage.html">Image testing page</a> </li> </ul> </li> </ul> </nav> </div> <div class="nav-panel-explore" data-panel="explore"> <div class="context"> <span class="title">User manual</span> <span class="version">latest</span> </div> <ul class="components"> <li class="component"> <span class="title">Development Documentation</span> <ul class="versions"> <li class="version is-latest"> <a href="../../../../dev-manual/latest/index.html">latest</a> </li> </ul> </li> <li class="component"> <span class="title">Technical Documentation</span> <ul class="versions"> <li class="version is-latest"> <a href="../../../../tech-manual/latest/index.html">latest</a> </li> </ul> </li> <li class="component is-current"> <span class="title">User manual</span> <ul class="versions"> <li class="version is-current is-latest"> <a href="../../index.html">latest</a> </li> </ul> </li> </ul> </div> </div> </aside> </div> <main> <div class="toolbar" role="navigation"> <button class="nav-toggle"></button> <a href="../../index.html" class="home-link"></a> <nav class="breadcrumbs" aria-label="breadcrumbs"> <ul> <li><a href="../../index.html">User manual</a></li> <li><a href="../plugins.html">Plugins</a></li> <li><a href="../transforms.html">Transform Plugins</a></li> <li><a href="fuzzymatch.html">Fuzzy match</a></li> </ul> </nav> <div class="edit-this-page"><a href="https://github.com/apache/incubator-hop/edit/master/plugins/transforms/fuzzymatch/src/main/doc/fuzzymatch.adoc">Edit this Page</a></div> </div> <article class="doc"> <h1 class="page">Fuzzy match</h1> <div class="sect1"> <h2 id="_description"><a class="anchor" href="#_description"></a>Description</h2> <div class="sectionbody"> <div class="paragraph"> <p>The Fuzzy Match transform finds strings that potentially match using duplicate-detecting algorithms that calculate the similarity of two streams of data. This transform returns matching values as a separated list as specified by user-defined minimal or maximal values.</p> </div> </div> </div> <div class="sect1"> <h2 id="_options"><a class="anchor" href="#_options"></a>Options</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_general_tab"><a class="anchor" href="#_general_tab"></a>General tab</h3> <div class="table-wrapper"><table class="tableblock frame-all grid-all"> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Option</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">transform name</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Name of this transform as it appears in the pipeline workspace</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Lookup transform</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies the transform that contains the fields to match</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Lookup field</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies the field to match</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Main stream field</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies the primary stream to match the Lookup field with</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Algorithm</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies which string-matching algorithm to use---options include Levenshtein, Damerau-Levenshtein, Needleman Wunsch, Jaro, Jaro Winkler, Pair letters similarity, Metaphone, Double Metaphone, SoundEx, or Refined SoundEx</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Case sensitive</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies if streams can or cannot differ based on the use of uppercase and lowercase letters---only for use with the Levenshtein algorithms</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Get closer value</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">When checked, returns a single result with the highest similarity score---when unchecked, returns all matches that satisfy the minimal and maximal value setting as a separated list, separated by the values separator</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Minimum value</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies the lowest possible similarity score</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Maximal value</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies the highest possible similarity score</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Values separator</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Identifies the string that separate the matches. Only available for specific algorithms and when the Get closer value option is unchecked.</p></td> </tr> </tbody> </table></div> <div class="paragraph"> <p><strong>Algorithm Definitions</strong></p> </div> <div class="paragraph"> <p>Within the Algorithm field, there are several options available to compare and match strings.</p> </div> <div class="ulist"> <ul> <li> <p>Levenshtein and Damerau-Levenshtein---calculate the distance between two strings by looking at how many edit transforms are needed to get from one string to another. The former only looks at inserts, deletes, and replacements. The latter adds transposition. The score indicates the minimum number of changes needed. For instance, the difference between John and Jan would be two; to turn the name John into Jan you need one transform to replace the O with an A, and another transform to delete the H.</p> </li> <li> <p>Needleman Wunsch---calculates the similarity of two sequences and is mainly used in bioinformatics. The algorithm calculates a gap penalty. The aforementioned example would have a score of negative two.</p> </li> <li> <p>Jaro and Jaro Winkler---calculate a similarity index between two strings. The result is a fraction between zero, indicating no similarity, and one, indicating an identical match.</p> </li> <li> <p>Pair letters similarity---dissects the two strings in pairs and calculates the similarity of the two strings by dividing the number of common pairs by the sum of the pairs from both strings.</p> </li> <li> <p>Metaphone, Double Metaphone, SoundEx, and Refined SoundEx---are phonetic algorithms, which try to match strings based on how they would sound. Each is based on the English language and would not be useful to compare other languages.</p> <div class="ulist"> <ul> <li> <p>The Metaphone algorithm returns an encoded value based on the English pronunciation of a given word. The encoded value of the names John and Jan would return the value JN for both names.</p> </li> <li> <p>The Double Metaphone algorithm has fundamental design improvements over its predecessor and uses a more complex ruleset for coding. It can return a primary and a secondary encoded value for a string. The names John and Jan each return metaphone key values of JN and AN.</p> </li> <li> <p>The Soundex algorthim returns a single encoded value for a name that consists of a letter followed by three numerical digits. The letter is the first letter of the name, and the digits encode the remaining consonants.</p> </li> <li> <p>The Refined SoundEx algorithm is an improvement over its predecessor. Encoded values for this algorithm are six digits long, the initial character is encoded, and multiple possible encodings can be returned for a single name. Using this algorithm, the name John returns the values 160000 and 460000, as does the name Jan.</p> </li> </ul> </div> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_fields_tab"><a class="anchor" href="#_fields_tab"></a>Fields tab</h3> <div class="paragraph"> <p>The Fields tab enables you to define how to return the results of a comparison.</p> </div> <div class="table-wrapper"><table class="tableblock frame-all grid-all"> <colgroup> <col> <col> </colgroup> <thead> <tr> <th class="tableblock halign-left valign-top">Option</th> <th class="tableblock halign-left valign-top">Description</th> </tr> </thead> <tbody> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Match field</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Defines the name of the column that contains the comparison value</p></td> </tr> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">Value field</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Defines the similarity score for which to return a value</p></td> </tr> </tbody> </table></div> <div class="paragraph"> <p>You can also specify the list of additional fields to retrieve from the lookup stream.</p> </div> </div> </div> </div> </article> </main> </div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../../../download/">Download</a></dd> <dd><a href="../../../../manual/latest/">Getting started</a></dd> </dl> <dl> <dt>Community</dt> <dd><a target="_blank" href="https://issues.apache.org/jira/projects/HOP/issues">Jira</a></dd> <dd><a target="_blank" href="https://chat.project-hop.org">Chat</a></dd> <dd><a target="_blank" href="../../../../community/team/">Team</a></dd> </dl> <dl> <dt>About</dt> <dd><a target="_blank" href="https://www.apache.org/licenses/" title="License">License</a></dd> </dl> <p> &copy; 2019-2021 The Hop Team.<br> All marks mentioned may be trademarks or registered trademarks of their respective owners. </p> </div> </footer> <script src="../../../../_/js/site-8ed57175ed.js"></script> <script async src="../../../../_/js/vendor/highlight-41b831b4c4.js"></script> <script src="../../../../_/js/vendor/cookies-eu-banner-d4a1518c50.js"></script> <script> new CookiesEuBanner(function () {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
ga('send', 'pageview');
}, true, false); </script> <script src="../../../../_/js/vendor/docsearch-4983f0f1ec.min.js"></script> <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js --> <script> var search = docsearch({
appId: 'IEDZCR8JT4',
apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
indexName: 'hop-doc',
inputSelector: '#search-input',
autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
algoliaOptions: { hitsPerPage: 10 }
}).autocomplete
search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
function focusSearchInput () { document.querySelector('#search-input').focus() }
if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> </body> </html>