You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2021/07/21 11:53:28 UTC
[incubator-hop] branch master updated: HOP-2391 samples for abort,
analytic query, blocking transform, coalesce, column exists,
database join and dimension lookup/update
This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hop.git
The following commit(s) were added to refs/heads/master by this push:
new 9c47e2c HOP-2391 samples for abort, analytic query, blocking transform, coalesce, column exists, database join and dimension lookup/update
new 40fb1af Merge pull request #955 from bamaer/HOP-2391
9c47e2c is described below
commit 9c47e2c604460335de95cde24353eb788f718e11
Author: Bart Maertens <ba...@know.bi>
AuthorDate: Wed Jul 21 10:48:33 2021 +0200
HOP-2391 samples for abort, analytic query, blocking transform, coalesce, column exists, database join and dimension lookup/update
---
.../src/main/samples/transforms/abort-basic.hpl | 197 +++++++++++++++
.../samples/transforms/analyticquery-basic.hpl | 202 +++++++++++++++
.../samples/transforms/analyticquery-grouped.hpl | 213 ++++++++++++++++
.../samples/transforms/blockingtransform-basic.hpl | 168 +++++++++++++
.../src/main/samples/transforms/coalesce-basic.hpl | 224 +++++++++++++++++
.../main/samples/transforms/columnexists-basic.hpl | 148 +++++++++++
.../transforms/columnexists-table-field.hpl | 185 ++++++++++++++
.../main/samples/transforms/databasejoin-basic.hpl | 171 +++++++++++++
.../samples/transforms/dimensionlookup-basic.hpl | 277 +++++++++++++++++++++
.../main/samples/metadata/rdbms/hop-samples.json | 2 +-
10 files changed, 1786 insertions(+), 1 deletion(-)
diff --git a/plugins/transforms/abort/src/main/samples/transforms/abort-basic.hpl b/plugins/transforms/abort/src/main/samples/transforms/abort-basic.hpl
new file mode 100644
index 0000000..4357c97
--- /dev/null
+++ b/plugins/transforms/abort/src/main/samples/transforms/abort-basic.hpl
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>abort-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 09:52:15.047</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 09:52:15.047</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Aborts this pipeline based on the result from a Filter Rows transform</note>
+ <xloc>144</xloc>
+ <yloc>112</yloc>
+ <width>388</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Test Data</from>
+ <to>id = 4?</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>id = 4?</from>
+ <to>Abort</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Test Data</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>id</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>desc</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>1</item>
+ <item>one</item>
+ </line>
+ <line>
+ <item>2</item>
+ <item>two</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>three</item>
+ </line>
+ <line>
+ <item>4</item>
+ <item>four</item>
+ </line>
+ <line>
+ <item>5</item>
+ <item>five</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>160</xloc>
+ <yloc>176</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>id = 4?</name>
+ <type>FilterRows</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <send_true_to/>
+ <send_false_to/>
+ <compare>
+ <condition>
+ <negated>N</negated>
+ <leftvalue>id</leftvalue>
+ <function>=</function>
+ <rightvalue/>
+ <value>
+ <name>constant</name>
+ <type>Integer</type>
+ <text>4</text>
+ <length>-1</length>
+ <precision>0</precision>
+ <isnull>N</isnull>
+ <mask>####0;-####0</mask>
+ </value>
+ </condition>
+ </compare>
+ <attributes/>
+ <GUI>
+ <xloc>304</xloc>
+ <yloc>176</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Abort</name>
+ <type>Abort</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <abort_option>ABORT_WITH_ERROR</abort_option>
+ <always_log_rows>Y</always_log_rows>
+ <message/>
+ <row_threshold>0</row_threshold>
+ <attributes/>
+ <GUI>
+ <xloc>432</xloc>
+ <yloc>176</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/analyticquery/src/main/samples/transforms/analyticquery-basic.hpl b/plugins/transforms/analyticquery/src/main/samples/transforms/analyticquery-basic.hpl
new file mode 100644
index 0000000..392acba
--- /dev/null
+++ b/plugins/transforms/analyticquery/src/main/samples/transforms/analyticquery-basic.hpl
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>analyticquery-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 09:56:48.454</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 09:56:48.454</modified_date>
+ <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Fetches the previous and next description from a set of rows without grouping</note>
+ <xloc>128</xloc>
+ <yloc>96</yloc>
+ <width>440</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Test Data</from>
+ <to>Previous and next rows</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Previous and next rows</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>480</xloc>
+ <yloc>160</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Previous and next rows</name>
+ <type>AnalyticQuery</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <group>
+</group>
+ <fields>
+ <field>
+ <aggregate>prev_desc</aggregate>
+ <type>LAG</type>
+ <subject>desc</subject>
+ <valuefield>1</valuefield>
+ </field>
+ <field>
+ <aggregate>next_desc</aggregate>
+ <type>LEAD</type>
+ <subject>desc</subject>
+ <valuefield>1</valuefield>
+ </field>
+ </fields>
+ <attributes/>
+ <GUI>
+ <xloc>312</xloc>
+ <yloc>160</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Test Data</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <set_empty_string>N</set_empty_string>
+ <length>-1</length>
+ <name>id</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ <field>
+ <set_empty_string>N</set_empty_string>
+ <length>-1</length>
+ <name>desc</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>1</item>
+ <item>one</item>
+ </line>
+ <line>
+ <item>2</item>
+ <item>two</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>three</item>
+ </line>
+ <line>
+ <item>4</item>
+ <item>four</item>
+ </line>
+ <line>
+ <item>5</item>
+ <item>five</item>
+ </line>
+ <line>
+ <item>6</item>
+ <item>six</item>
+ </line>
+ <line>
+ <item>7</item>
+ <item>seven</item>
+ </line>
+ <line>
+ <item>8</item>
+ <item>eight</item>
+ </line>
+ <line>
+ <item>9</item>
+ <item>nine</item>
+ </line>
+ <line>
+ <item>10</item>
+ <item>ten</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>144</xloc>
+ <yloc>160</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/analyticquery/src/main/samples/transforms/analyticquery-grouped.hpl b/plugins/transforms/analyticquery/src/main/samples/transforms/analyticquery-grouped.hpl
new file mode 100644
index 0000000..d7f2c18
--- /dev/null
+++ b/plugins/transforms/analyticquery/src/main/samples/transforms/analyticquery-grouped.hpl
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>analyticquery-grouped</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 09:56:48.454</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 09:56:48.454</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Fetches the previous and next description from a set of rows, grouped by id</note>
+ <xloc>128</xloc>
+ <yloc>96</yloc>
+ <width>425</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Test Data</from>
+ <to>Previous and next rows</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Previous and next rows</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Test Data</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>id</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>desc</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>1</item>
+ <item>1 1</item>
+ </line>
+ <line>
+ <item>1</item>
+ <item>1 2</item>
+ </line>
+ <line>
+ <item>1</item>
+ <item>1 3</item>
+ </line>
+ <line>
+ <item>2</item>
+ <item>2 1</item>
+ </line>
+ <line>
+ <item>2</item>
+ <item>2 2</item>
+ </line>
+ <line>
+ <item>2</item>
+ <item>2 3</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>3 1</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>3 2</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>3 3</item>
+ </line>
+ <line>
+ <item>4</item>
+ <item>4 1</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>144</xloc>
+ <yloc>160</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Previous and next rows</name>
+ <type>AnalyticQuery</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <group>
+ <field>
+ <name>id</name>
+ </field>
+ </group>
+ <fields>
+ <field>
+ <aggregate>prev_desc</aggregate>
+ <type>LAG</type>
+ <subject>desc</subject>
+ <valuefield>1</valuefield>
+ </field>
+ <field>
+ <aggregate>next_desc</aggregate>
+ <type>LEAD</type>
+ <subject>desc</subject>
+ <valuefield>1</valuefield>
+ </field>
+ </fields>
+ <attributes/>
+ <GUI>
+ <xloc>312</xloc>
+ <yloc>160</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>480</xloc>
+ <yloc>160</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/blockingtransform/src/main/samples/transforms/blockingtransform-basic.hpl b/plugins/transforms/blockingtransform/src/main/samples/transforms/blockingtransform-basic.hpl
new file mode 100644
index 0000000..40cc6c6
--- /dev/null
+++ b/plugins/transforms/blockingtransform/src/main/samples/transforms/blockingtransform-basic.hpl
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>blockingtransform-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 09:47:39.961</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 09:47:39.961</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Generate 100k random UUIDs, block until done</note>
+ <xloc>160</xloc>
+ <yloc>144</yloc>
+ <width>272</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Generate 100k rows</from>
+ <to>Generate random UUID</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Generate random UUID</from>
+ <to>Blocking transform</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Blocking transform</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Generate 100k rows</name>
+ <type>RowGenerator</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+</fields>
+ <interval_in_ms>5000</interval_in_ms>
+ <last_time_field>FiveSecondsAgo</last_time_field>
+ <never_ending>N</never_ending>
+ <limit>100000</limit>
+ <row_time_field>now</row_time_field>
+ <attributes/>
+ <GUI>
+ <xloc>176</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Generate random UUID</name>
+ <type>RandomValue</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <name>uuid</name>
+ <type>random uuid</type>
+ </field>
+ </fields>
+ <attributes/>
+ <GUI>
+ <xloc>352</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Blocking transform</name>
+ <type>BlockingTransform</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <cache_size>5000</cache_size>
+ <compress>Y</compress>
+ <directory>${java.io.tmpdir}</directory>
+ <pass_all_rows>Y</pass_all_rows>
+ <prefix>block</prefix>
+ <attributes/>
+ <GUI>
+ <xloc>528</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>704</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/coalesce/src/main/samples/transforms/coalesce-basic.hpl b/plugins/transforms/coalesce/src/main/samples/transforms/coalesce-basic.hpl
new file mode 100644
index 0000000..dde1556
--- /dev/null
+++ b/plugins/transforms/coalesce/src/main/samples/transforms/coalesce-basic.hpl
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>coalesce-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 10:06:36.218</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 10:06:36.218</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Selects the first non-null value from two description fields, stores in a new 'desc' field.</note>
+ <xloc>128</xloc>
+ <yloc>128</yloc>
+ <width>480</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Test Data</from>
+ <to>Coalesce Fields</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Coalesce Fields</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Test Data</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>id</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>desc1</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>desc2</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>1</item>
+ <item>one</item>
+ <item/>
+ </line>
+ <line>
+ <item>2</item>
+ <item/>
+ <item>two</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>three</item>
+ <item/>
+ </line>
+ <line>
+ <item>4</item>
+ <item/>
+ <item>four</item>
+ </line>
+ <line>
+ <item>5</item>
+ <item>five</item>
+ <item/>
+ </line>
+ <line>
+ <item>6</item>
+ <item/>
+ <item>six</item>
+ </line>
+ <line>
+ <item>7</item>
+ <item>seven</item>
+ <item/>
+ </line>
+ <line>
+ <item>8</item>
+ <item/>
+ <item>eight</item>
+ </line>
+ <line>
+ <item>9</item>
+ <item>nine</item>
+ <item/>
+ </line>
+ <line>
+ <item>10</item>
+ <item/>
+ <item>ten</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>144</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Coalesce Fields</name>
+ <type>Coalesce</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <input>desc1, desc2</input>
+ <name>desc</name>
+ <remove>N</remove>
+ <type>String</type>
+ </field>
+ </fields>
+ <empty_is_null>N</empty_is_null>
+ <attributes/>
+ <GUI>
+ <xloc>304</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>464</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/columnexists/src/main/samples/transforms/columnexists-basic.hpl b/plugins/transforms/columnexists/src/main/samples/transforms/columnexists-basic.hpl
new file mode 100644
index 0000000..d9c4d7f
--- /dev/null
+++ b/plugins/transforms/columnexists/src/main/samples/transforms/columnexists-basic.hpl
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>columnexists-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 10:14:06.472</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 10:14:06.472</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ </notepads>
+ <order>
+ <hop>
+ <from>columns</from>
+ <to>Column exists</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Column exists</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>columns</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>column_name</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>id</item>
+ </line>
+ <line>
+ <item>ID</item>
+ </line>
+ <line>
+ <item>desc</item>
+ </line>
+ <line>
+ <item>DESC</item>
+ </line>
+ <line>
+ <item>description</item>
+ </line>
+ <line>
+ <item>DESCRIPTION</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>176</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Column exists</name>
+ <type>ColumnExists</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <connection>hop-samples</connection>
+ <tablename>PUBLIC.DBLOOKUP</tablename>
+ <schemaname/>
+ <istablenameInfield>N</istablenameInfield>
+ <tablenamefield/>
+ <columnnamefield>column_name</columnnamefield>
+ <resultfieldname>result</resultfieldname>
+ <attributes/>
+ <GUI>
+ <xloc>352</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>528</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/columnexists/src/main/samples/transforms/columnexists-table-field.hpl b/plugins/transforms/columnexists/src/main/samples/transforms/columnexists-table-field.hpl
new file mode 100644
index 0000000..598e7ad
--- /dev/null
+++ b/plugins/transforms/columnexists/src/main/samples/transforms/columnexists-table-field.hpl
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>columnexists-table-field</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 10:14:06.472</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 10:14:06.472</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Checks a table for a list of tables and columns, returns true if a columns exists, false if it doesn't</note>
+ <xloc>160</xloc>
+ <yloc>144</yloc>
+ <width>537</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>tables, columns</from>
+ <to>Column exists</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Column exists</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>tables, columns</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>table_name</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>column_name</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>databaselookup</item>
+ <item>id</item>
+ </line>
+ <line>
+ <item>DBLOOKUP</item>
+ <item>ID</item>
+ </line>
+ <line>
+ <item>dblookup</item>
+ <item>desc</item>
+ </line>
+ <line>
+ <item>DBLOOKUP</item>
+ <item>DESC</item>
+ </line>
+ <line>
+ <item>DBLOOKUP</item>
+ <item>description</item>
+ </line>
+ <line>
+ <item>lookup</item>
+ <item>DESCRIPTION</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>176</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Column exists</name>
+ <type>ColumnExists</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <connection>hop-samples</connection>
+ <tablename>DBLOOKUP</tablename>
+ <schemaname>PUBLIC</schemaname>
+ <istablenameInfield>Y</istablenameInfield>
+ <tablenamefield>table_name</tablenamefield>
+ <columnnamefield>column_name</columnnamefield>
+ <resultfieldname>result</resultfieldname>
+ <attributes/>
+ <GUI>
+ <xloc>352</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>528</xloc>
+ <yloc>208</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/databasejoin/src/main/samples/transforms/databasejoin-basic.hpl b/plugins/transforms/databasejoin/src/main/samples/transforms/databasejoin-basic.hpl
new file mode 100644
index 0000000..1baafd0
--- /dev/null
+++ b/plugins/transforms/databasejoin/src/main/samples/transforms/databasejoin-basic.hpl
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>databasejoin-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 09:36:29.182</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 09:36:29.182</modified_date>
+ <key_for_session_key/>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Fetches the description for a given id through a database join</note>
+ <xloc>112</xloc>
+ <yloc>112</yloc>
+ <width>349</width>
+ <heigth>27</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Test Data</from>
+ <to>Database join</to>
+ <enabled>Y</enabled>
+ </hop>
+ <hop>
+ <from>Database join</from>
+ <to>Output</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Test Data</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>id</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>1</item>
+ </line>
+ <line>
+ <item>2</item>
+ </line>
+ <line>
+ <item>3</item>
+ </line>
+ <line>
+ <item>4</item>
+ </line>
+ <line>
+ <item>5</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>128</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Database join</name>
+ <type>DBJoin</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <connection>hop-samples</connection>
+ <rowlimit>0</rowlimit>
+ <sql>select description
+from public.dblookup
+where id = ? </sql>
+ <outer_join>N</outer_join>
+ <replace_vars>N</replace_vars>
+ <parameter>
+ <field>
+ <name>id</name>
+ <type>Integer</type>
+ </field>
+ </parameter>
+ <attributes/>
+ <GUI>
+ <xloc>296</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Output</name>
+ <type>Dummy</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <attributes/>
+ <GUI>
+ <xloc>464</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/dimensionlookup/src/main/samples/transforms/dimensionlookup-basic.hpl b/plugins/transforms/dimensionlookup/src/main/samples/transforms/dimensionlookup-basic.hpl
new file mode 100644
index 0000000..34303ed
--- /dev/null
+++ b/plugins/transforms/dimensionlookup/src/main/samples/transforms/dimensionlookup-basic.hpl
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+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.
+
+-->
+<pipeline>
+ <info>
+ <name>dimensionlookup-basic</name>
+ <name_sync_with_filename>Y</name_sync_with_filename>
+ <description/>
+ <extended_description/>
+ <pipeline_version/>
+ <pipeline_type>Normal</pipeline_type>
+ <parameters>
+ </parameters>
+ <capture_transform_performance>N</capture_transform_performance>
+ <transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
+ <transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
+ <created_user>-</created_user>
+ <created_date>2021/07/21 08:58:47.829</created_date>
+ <modified_user>-</modified_user>
+ <modified_date>2021/07/21 08:58:47.829</modified_date>
+ <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
+ <is_key_private>N</is_key_private>
+ </info>
+ <notepads>
+ <notepad>
+ <note>Creates a basic slowly changing dimension
+*) id as key
+*) name punch through (updates all previous versions)
+*) street, number, zip as inserts (create new versions)
+*) city as update (updates latest version without creating new version)</note>
+ <xloc>119</xloc>
+ <yloc>56</yloc>
+ <width>396</width>
+ <heigth>95</heigth>
+ <fontname>Noto Sans</fontname>
+ <fontsize>11</fontsize>
+ <fontbold>N</fontbold>
+ <fontitalic>N</fontitalic>
+ <fontcolorred>14</fontcolorred>
+ <fontcolorgreen>58</fontcolorgreen>
+ <fontcolorblue>90</fontcolorblue>
+ <backgroundcolorred>201</backgroundcolorred>
+ <backgroundcolorgreen>232</backgroundcolorgreen>
+ <backgroundcolorblue>251</backgroundcolorblue>
+ <bordercolorred>14</bordercolorred>
+ <bordercolorgreen>58</bordercolorgreen>
+ <bordercolorblue>90</bordercolorblue>
+ </notepad>
+ </notepads>
+ <order>
+ <hop>
+ <from>Test Data</from>
+ <to>Dimension lookup/update</to>
+ <enabled>Y</enabled>
+ </hop>
+ </order>
+ <transform>
+ <name>Dimension lookup/update</name>
+ <type>DimensionLookup</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <schema/>
+ <table>dim_sample</table>
+ <connection>hop-samples</connection>
+ <commit>100</commit>
+ <update>Y</update>
+ <fields>
+ <key>
+ <name>id</name>
+ <lookup>id</lookup>
+ </key>
+ <date>
+ <name/>
+ <from>date_from</from>
+ <to>date_to</to>
+ </date>
+ <field>
+ <name>name</name>
+ <lookup>name</lookup>
+ <update>Punch through</update>
+ </field>
+ <field>
+ <name>street</name>
+ <lookup>street</lookup>
+ <update>Insert</update>
+ </field>
+ <field>
+ <name>number</name>
+ <lookup>number</lookup>
+ <update>Insert</update>
+ </field>
+ <field>
+ <name>zip</name>
+ <lookup>zip</lookup>
+ <update>Insert</update>
+ </field>
+ <field>
+ <name>city</name>
+ <lookup>city</lookup>
+ <update>Update</update>
+ </field>
+ <return>
+ <name>scd_key</name>
+ <rename/>
+ <creation_method>tablemax</creation_method>
+ <use_autoinc>N</use_autoinc>
+ <version>version</version>
+ </return>
+ </fields>
+ <sequence/>
+ <min_year>1900</min_year>
+ <max_year>2199</max_year>
+ <cache_size>5000</cache_size>
+ <preload_cache>N</preload_cache>
+ <use_start_date_alternative>N</use_start_date_alternative>
+ <start_date_alternative>none</start_date_alternative>
+ <start_date_field_name/>
+ <useBatch>N</useBatch>
+ <attributes/>
+ <GUI>
+ <xloc>304</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform>
+ <name>Test Data</name>
+ <type>DataGrid</type>
+ <description/>
+ <distribute>Y</distribute>
+ <custom_distribution/>
+ <copies>1</copies>
+ <partitioning>
+ <method>none</method>
+ <schema_name/>
+ </partitioning>
+ <fields>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>id</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>name</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>street</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>number</name>
+ <precision>-1</precision>
+ <type>Integer</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>zip</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ <field>
+ <currency/>
+ <decimal/>
+ <set_empty_string>N</set_empty_string>
+ <format/>
+ <group/>
+ <length>-1</length>
+ <name>city</name>
+ <precision>-1</precision>
+ <type>String</type>
+ </field>
+ </fields>
+ <data>
+ <line>
+ <item>1</item>
+ <item>customer 6</item>
+ <item>address 1</item>
+ <item>1</item>
+ <item>1234</item>
+ <item>Hop</item>
+ </line>
+ <line>
+ <item>2</item>
+ <item>customer 2</item>
+ <item>address 2</item>
+ <item>2</item>
+ <item>5678</item>
+ <item>Hop</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>customer 3</item>
+ <item>address 3</item>
+ <item>3</item>
+ <item>3456</item>
+ <item>Hop</item>
+ </line>
+ <line>
+ <item>1</item>
+ <item>corrected customer 1</item>
+ <item>new address 1</item>
+ <item>1</item>
+ <item>1234</item>
+ <item>Hop</item>
+ </line>
+ <line>
+ <item>3</item>
+ <item>customer 3</item>
+ <item>new address 3</item>
+ <item>3</item>
+ <item>4567</item>
+ <item>Hop</item>
+ </line>
+ </data>
+ <attributes/>
+ <GUI>
+ <xloc>128</xloc>
+ <yloc>192</yloc>
+ </GUI>
+ </transform>
+ <transform_error_handling>
+ </transform_error_handling>
+ <attributes/>
+</pipeline>
diff --git a/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json b/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json
index e4be3d4..2ffc3db 100644
--- a/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json
+++ b/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json
@@ -14,7 +14,7 @@
"SUPPORTS_BOOLEAN_DATA_TYPE": "Y",
"FORCE_IDENTIFIERS_TO_LOWERCASE": "N",
"PRESERVE_RESERVED_WORD_CASE": "Y",
- "SQL_CONNECT": "\nCREATE TABLE IF NOT EXISTS PUBLIC.TABLEOUTPUT_BASIC\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\n\nCREATE TABLE IF NOT EXISTS PUBLIC.INSERTUPDATE\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\nCREATE TABLE IF NOT EXISTS PUBLIC.DBLOOKUP \n(\nID INT,\nDESCRIPTION TEXT\n); \n\nTRUNCATE TABLE PUBLIC.DBLOOKUP; \n\nINSERT INTO PUBLIC.DBLOOKUP VALUES \n(1, \u0027value 01\u0027),\n(2, \u0027value 02\u0027) [...]
+ "SQL_CONNECT": "CREATE TABLE IF NOT EXISTS PUBLIC.dim_sample\n(\n scd_key IDENTITY\n, version INTEGER\n, date_from TIMESTAMP\n, date_to TIMESTAMP\n, id DOUBLE\n, name VARCHAR(50)\n, street VARCHAR(50)\n, number INT\n, zip VARCHAR(50)\n, city VARCHAR(50)\n)\n;CREATE INDEX IF NOT EXISTS idx_dim_sample_lookup ON dim_sample(id)\n;\nCREATE INDEX IF NOT EXISTS idx_dim_sample_tk ON dim_sample(scd_key)\n;\n\nCREATE TABLE IF NOT EXISTS PUBLIC.TABLEOUTPUT_BASIC\n(\n ID INT\n, COL_BOOL BO [...]
"FORCE_IDENTIFIERS_TO_UPPERCASE": "N",
"PREFERRED_SCHEMA_NAME": ""
},