| <?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>0009-blocking-transform</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/05/05 13:24:06.607</created_date> |
| <modified_user>-</modified_user> |
| <modified_date>2021/05/05 13:24:06.607</modified_date> |
| <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key> |
| <is_key_private>N</is_key_private> |
| </info> |
| <notepads> |
| </notepads> |
| <order> |
| <hop> |
| <from>10k rows</from> |
| <to>id</to> |
| <enabled>Y</enabled> |
| </hop> |
| <hop> |
| <from>set MAX_ID</from> |
| <to>Blocking transform</to> |
| <enabled>Y</enabled> |
| </hop> |
| <hop> |
| <from>id</from> |
| <to>set MAX_ID</to> |
| <enabled>Y</enabled> |
| </hop> |
| <hop> |
| <from>Blocking transform</from> |
| <to>get MAX_ID</to> |
| <enabled>Y</enabled> |
| </hop> |
| <hop> |
| <from>get MAX_ID</from> |
| <to>id<>maxId</to> |
| <enabled>Y</enabled> |
| </hop> |
| <hop> |
| <from>id<>maxId</from> |
| <to>Abort</to> |
| <enabled>Y</enabled> |
| </hop> |
| </order> |
| <transform> |
| <name>10k rows</name> |
| <type>RowGenerator</type> |
| <description/> |
| <distribute>Y</distribute> |
| <custom_distribution/> |
| <copies>1</copies> |
| <partitioning> |
| <method>none</method> |
| <schema_name/> |
| </partitioning> |
| <fields> |
| </fields> |
| <limit>10000</limit> |
| <never_ending>N</never_ending> |
| <interval_in_ms>5000</interval_in_ms> |
| <row_time_field>now</row_time_field> |
| <last_time_field>FiveSecondsAgo</last_time_field> |
| <attributes/> |
| <GUI> |
| <xloc>208</xloc> |
| <yloc>112</yloc> |
| </GUI> |
| </transform> |
| <transform> |
| <name>id</name> |
| <type>Sequence</type> |
| <description/> |
| <distribute>Y</distribute> |
| <custom_distribution/> |
| <copies>1</copies> |
| <partitioning> |
| <method>none</method> |
| <schema_name/> |
| </partitioning> |
| <counter_name/> |
| <use_counter>Y</use_counter> |
| <use_database>N</use_database> |
| <increment_by>1</increment_by> |
| <max_value>999999999</max_value> |
| <schema/> |
| <seqname>SEQ_</seqname> |
| <start_at>1</start_at> |
| <valuename>id</valuename> |
| <attributes/> |
| <GUI> |
| <xloc>368</xloc> |
| <yloc>112</yloc> |
| </GUI> |
| </transform> |
| <transform> |
| <name>set MAX_ID</name> |
| <type>ScriptValueMod</type> |
| <description/> |
| <distribute>Y</distribute> |
| <custom_distribution/> |
| <copies>1</copies> |
| <partitioning> |
| <method>none</method> |
| <schema_name/> |
| </partitioning> |
| <optimizationLevel>9</optimizationLevel> |
| <jsScripts> |
| <jsScript> |
| <jsScript_type>0</jsScript_type> |
| <jsScript_name>Script 1</jsScript_name> |
| <jsScript_script> |
| _transform_.getPipeline().setVariable("MAX_ID", id); |
| |
| </jsScript_script> |
| </jsScript> |
| </jsScripts> |
| <fields> </fields> |
| <attributes/> |
| <GUI> |
| <xloc>512</xloc> |
| <yloc>112</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>N</pass_all_rows> |
| <prefix>block</prefix> |
| <attributes/> |
| <GUI> |
| <xloc>656</xloc> |
| <yloc>112</yloc> |
| </GUI> |
| </transform> |
| <transform> |
| <name>get MAX_ID</name> |
| <type>ScriptValueMod</type> |
| <description/> |
| <distribute>Y</distribute> |
| <custom_distribution/> |
| <copies>1</copies> |
| <partitioning> |
| <method>none</method> |
| <schema_name/> |
| </partitioning> |
| <optimizationLevel>9</optimizationLevel> |
| <jsScripts> |
| <jsScript> |
| <jsScript_type>0</jsScript_type> |
| <jsScript_name>Script 1</jsScript_name> |
| <jsScript_script> |
| var maxId = _transform_.getPipeline().getVariable("MAX_ID"); |
| |
| </jsScript_script> |
| </jsScript> |
| </jsScripts> |
| <fields> |
| <field> |
| <name>maxId</name> |
| <rename>maxId</rename> |
| <type>Integer</type> |
| <length>-1</length> |
| <precision>-1</precision> |
| <replace>N</replace> |
| </field> |
| </fields> |
| <attributes/> |
| <GUI> |
| <xloc>816</xloc> |
| <yloc>112</yloc> |
| </GUI> |
| </transform> |
| <transform> |
| <name>id<>maxId</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>maxId</rightvalue> |
| </condition> |
| </compare> |
| <attributes/> |
| <GUI> |
| <xloc>944</xloc> |
| <yloc>112</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>The blocking transform did not wait until every input row was read</message> |
| <row_threshold>0</row_threshold> |
| <attributes/> |
| <GUI> |
| <xloc>1056</xloc> |
| <yloc>112</yloc> |
| </GUI> |
| </transform> |
| <transform_error_handling> |
| </transform_error_handling> |
| <attributes/> |
| </pipeline> |