kettle from xml load tranfromation

发布时间 2023-05-29 16:08:14作者: vx_guanchaoguo0

演示文件

点击查看代码
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
  <info>
    <name>C-QDSJZX-QDSJZX-002-1</name>
    <description/>
    <extended_description/>
    <trans_version/>
    <trans_type>Normal</trans_type>
    <trans_status>0</trans_status>
    <directory>/task/trans</directory>
    <parameters>
    </parameters>
    <log>
      <trans-log-table>
        <connection/>
        <schema/>
        <table/>
        <size_limit_lines/>
        <interval/>
        <timeout_days/>
        <field>
          <id>ID_BATCH</id>
          <enabled>Y</enabled>
          <name>ID_BATCH</name>
        </field>
        <field>
          <id>CHANNEL_ID</id>
          <enabled>Y</enabled>
          <name>CHANNEL_ID</name>
        </field>
        <field>
          <id>TRANSNAME</id>
          <enabled>Y</enabled>
          <name>TRANSNAME</name>
        </field>
        <field>
          <id>STATUS</id>
          <enabled>Y</enabled>
          <name>STATUS</name>
        </field>
        <field>
          <id>LINES_READ</id>
          <enabled>Y</enabled>
          <name>LINES_READ</name>
          <subject/>
        </field>
        <field>
          <id>LINES_WRITTEN</id>
          <enabled>Y</enabled>
          <name>LINES_WRITTEN</name>
          <subject/>
        </field>
        <field>
          <id>LINES_UPDATED</id>
          <enabled>Y</enabled>
          <name>LINES_UPDATED</name>
          <subject/>
        </field>
        <field>
          <id>LINES_INPUT</id>
          <enabled>Y</enabled>
          <name>LINES_INPUT</name>
          <subject/>
        </field>
        <field>
          <id>LINES_OUTPUT</id>
          <enabled>Y</enabled>
          <name>LINES_OUTPUT</name>
          <subject/>
        </field>
        <field>
          <id>LINES_REJECTED</id>
          <enabled>Y</enabled>
          <name>LINES_REJECTED</name>
          <subject/>
        </field>
        <field>
          <id>ERRORS</id>
          <enabled>Y</enabled>
          <name>ERRORS</name>
        </field>
        <field>
          <id>STARTDATE</id>
          <enabled>Y</enabled>
          <name>STARTDATE</name>
        </field>
        <field>
          <id>ENDDATE</id>
          <enabled>Y</enabled>
          <name>ENDDATE</name>
        </field>
        <field>
          <id>LOGDATE</id>
          <enabled>Y</enabled>
          <name>LOGDATE</name>
        </field>
        <field>
          <id>DEPDATE</id>
          <enabled>Y</enabled>
          <name>DEPDATE</name>
        </field>
        <field>
          <id>REPLAYDATE</id>
          <enabled>Y</enabled>
          <name>REPLAYDATE</name>
        </field>
        <field>
          <id>LOG_FIELD</id>
          <enabled>Y</enabled>
          <name>LOG_FIELD</name>
        </field>
        <field>
          <id>EXECUTING_SERVER</id>
          <enabled>N</enabled>
          <name>EXECUTING_SERVER</name>
        </field>
        <field>
          <id>EXECUTING_USER</id>
          <enabled>N</enabled>
          <name>EXECUTING_USER</name>
        </field>
        <field>
          <id>CLIENT</id>
          <enabled>N</enabled>
          <name>CLIENT</name>
        </field>
      </trans-log-table>
      <perf-log-table>
        <connection/>
        <schema/>
        <table/>
        <interval/>
        <timeout_days/>
        <field>
          <id>ID_BATCH</id>
          <enabled>Y</enabled>
          <name>ID_BATCH</name>
        </field>
        <field>
          <id>SEQ_NR</id>
          <enabled>Y</enabled>
          <name>SEQ_NR</name>
        </field>
        <field>
          <id>LOGDATE</id>
          <enabled>Y</enabled>
          <name>LOGDATE</name>
        </field>
        <field>
          <id>TRANSNAME</id>
          <enabled>Y</enabled>
          <name>TRANSNAME</name>
        </field>
        <field>
          <id>STEPNAME</id>
          <enabled>Y</enabled>
          <name>STEPNAME</name>
        </field>
        <field>
          <id>STEP_COPY</id>
          <enabled>Y</enabled>
          <name>STEP_COPY</name>
        </field>
        <field>
          <id>LINES_READ</id>
          <enabled>Y</enabled>
          <name>LINES_READ</name>
        </field>
        <field>
          <id>LINES_WRITTEN</id>
          <enabled>Y</enabled>
          <name>LINES_WRITTEN</name>
        </field>
        <field>
          <id>LINES_UPDATED</id>
          <enabled>Y</enabled>
          <name>LINES_UPDATED</name>
        </field>
        <field>
          <id>LINES_INPUT</id>
          <enabled>Y</enabled>
          <name>LINES_INPUT</name>
        </field>
        <field>
          <id>LINES_OUTPUT</id>
          <enabled>Y</enabled>
          <name>LINES_OUTPUT</name>
        </field>
        <field>
          <id>LINES_REJECTED</id>
          <enabled>Y</enabled>
          <name>LINES_REJECTED</name>
        </field>
        <field>
          <id>ERRORS</id>
          <enabled>Y</enabled>
          <name>ERRORS</name>
        </field>
        <field>
          <id>INPUT_BUFFER_ROWS</id>
          <enabled>Y</enabled>
          <name>INPUT_BUFFER_ROWS</name>
        </field>
        <field>
          <id>OUTPUT_BUFFER_ROWS</id>
          <enabled>Y</enabled>
          <name>OUTPUT_BUFFER_ROWS</name>
        </field>
      </perf-log-table>
      <channel-log-table>
        <connection/>
        <schema/>
        <table/>
        <timeout_days/>
        <field>
          <id>ID_BATCH</id>
          <enabled>Y</enabled>
          <name>ID_BATCH</name>
        </field>
        <field>
          <id>CHANNEL_ID</id>
          <enabled>Y</enabled>
          <name>CHANNEL_ID</name>
        </field>
        <field>
          <id>LOG_DATE</id>
          <enabled>Y</enabled>
          <name>LOG_DATE</name>
        </field>
        <field>
          <id>LOGGING_OBJECT_TYPE</id>
          <enabled>Y</enabled>
          <name>LOGGING_OBJECT_TYPE</name>
        </field>
        <field>
          <id>OBJECT_NAME</id>
          <enabled>Y</enabled>
          <name>OBJECT_NAME</name>
        </field>
        <field>
          <id>OBJECT_COPY</id>
          <enabled>Y</enabled>
          <name>OBJECT_COPY</name>
        </field>
        <field>
          <id>REPOSITORY_DIRECTORY</id>
          <enabled>Y</enabled>
          <name>REPOSITORY_DIRECTORY</name>
        </field>
        <field>
          <id>FILENAME</id>
          <enabled>Y</enabled>
          <name>FILENAME</name>
        </field>
        <field>
          <id>OBJECT_ID</id>
          <enabled>Y</enabled>
          <name>OBJECT_ID</name>
        </field>
        <field>
          <id>OBJECT_REVISION</id>
          <enabled>Y</enabled>
          <name>OBJECT_REVISION</name>
        </field>
        <field>
          <id>PARENT_CHANNEL_ID</id>
          <enabled>Y</enabled>
          <name>PARENT_CHANNEL_ID</name>
        </field>
        <field>
          <id>ROOT_CHANNEL_ID</id>
          <enabled>Y</enabled>
          <name>ROOT_CHANNEL_ID</name>
        </field>
      </channel-log-table>
      <step-log-table>
        <connection/>
        <schema/>
        <table/>
        <timeout_days/>
        <field>
          <id>ID_BATCH</id>
          <enabled>Y</enabled>
          <name>ID_BATCH</name>
        </field>
        <field>
          <id>CHANNEL_ID</id>
          <enabled>Y</enabled>
          <name>CHANNEL_ID</name>
        </field>
        <field>
          <id>LOG_DATE</id>
          <enabled>Y</enabled>
          <name>LOG_DATE</name>
        </field>
        <field>
          <id>TRANSNAME</id>
          <enabled>Y</enabled>
          <name>TRANSNAME</name>
        </field>
        <field>
          <id>STEPNAME</id>
          <enabled>Y</enabled>
          <name>STEPNAME</name>
        </field>
        <field>
          <id>STEP_COPY</id>
          <enabled>Y</enabled>
          <name>STEP_COPY</name>
        </field>
        <field>
          <id>LINES_READ</id>
          <enabled>Y</enabled>
          <name>LINES_READ</name>
        </field>
        <field>
          <id>LINES_WRITTEN</id>
          <enabled>Y</enabled>
          <name>LINES_WRITTEN</name>
        </field>
        <field>
          <id>LINES_UPDATED</id>
          <enabled>Y</enabled>
          <name>LINES_UPDATED</name>
        </field>
        <field>
          <id>LINES_INPUT</id>
          <enabled>Y</enabled>
          <name>LINES_INPUT</name>
        </field>
        <field>
          <id>LINES_OUTPUT</id>
          <enabled>Y</enabled>
          <name>LINES_OUTPUT</name>
        </field>
        <field>
          <id>LINES_REJECTED</id>
          <enabled>Y</enabled>
          <name>LINES_REJECTED</name>
        </field>
        <field>
          <id>ERRORS</id>
          <enabled>Y</enabled>
          <name>ERRORS</name>
        </field>
        <field>
          <id>LOG_FIELD</id>
          <enabled>N</enabled>
          <name>LOG_FIELD</name>
        </field>
      </step-log-table>
      <metrics-log-table>
        <connection/>
        <schema/>
        <table/>
        <timeout_days/>
        <field>
          <id>ID_BATCH</id>
          <enabled>Y</enabled>
          <name>ID_BATCH</name>
        </field>
        <field>
          <id>CHANNEL_ID</id>
          <enabled>Y</enabled>
          <name>CHANNEL_ID</name>
        </field>
        <field>
          <id>LOG_DATE</id>
          <enabled>Y</enabled>
          <name>LOG_DATE</name>
        </field>
        <field>
          <id>METRICS_DATE</id>
          <enabled>Y</enabled>
          <name>METRICS_DATE</name>
        </field>
        <field>
          <id>METRICS_CODE</id>
          <enabled>Y</enabled>
          <name>METRICS_CODE</name>
        </field>
        <field>
          <id>METRICS_DESCRIPTION</id>
          <enabled>Y</enabled>
          <name>METRICS_DESCRIPTION</name>
        </field>
        <field>
          <id>METRICS_SUBJECT</id>
          <enabled>Y</enabled>
          <name>METRICS_SUBJECT</name>
        </field>
        <field>
          <id>METRICS_TYPE</id>
          <enabled>Y</enabled>
          <name>METRICS_TYPE</name>
        </field>
        <field>
          <id>METRICS_VALUE</id>
          <enabled>Y</enabled>
          <name>METRICS_VALUE</name>
        </field>
      </metrics-log-table>
    </log>
    <maxdate>
      <connection/>
      <table/>
      <field/>
      <offset>0.0</offset>
      <maxdiff>0.0</maxdiff>
    </maxdate>
    <size_rowset>10000</size_rowset>
    <sleep_time_empty>50</sleep_time_empty>
    <sleep_time_full>50</sleep_time_full>
    <unique_connections>N</unique_connections>
    <feedback_shown>Y</feedback_shown>
    <feedback_size>50000</feedback_size>
    <using_thread_priorities>Y</using_thread_priorities>
    <shared_objects_file/>
    <capture_step_performance>N</capture_step_performance>
    <step_performance_capturing_delay>1000</step_performance_capturing_delay>
    <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
    <dependencies>
    </dependencies>
    <partitionschemas>
    </partitionschemas>
    <slaveservers>
    </slaveservers>
    <clusterschemas>
    </clusterschemas>
    <created_user>-</created_user>
    <created_date>2020/08/10 11:27:32.000</created_date>
    <modified_user>admin</modified_user>
    <modified_date>2020/08/10 11:27:32.000</modified_date>
    <key_for_session_key/>
    <is_key_private>N</is_key_private>
  </info>
  <notepads>
  </notepads>
  <connection>
    <name>C-QDSJZX-QDSJZX-002-1_SRC</name>
    <server>10.132.81.199</server>
    <type>ORACLE</type>
    <access>Native</access>
    <database>/ecology</database>
    <port>1521</port>
    <username>dep</username>
    <password>Encrypted 2be98afc86aa7f2e4cb1cad7fd29da8c3</password>
    <servername/>
    <data_tablespace/>
    <index_tablespace/>
    <attributes>
      <attribute>
        <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>IS_CLUSTERED</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>PORT_NUMBER</code>
        <attribute>1521</attribute>
      </attribute>
      <attribute>
        <code>PRESERVE_RESERVED_WORD_CASE</code>
        <attribute>Y</attribute>
      </attribute>
      <attribute>
        <code>QUOTE_ALL_FIELDS</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
        <attribute>Y</attribute>
      </attribute>
      <attribute>
        <code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
        <attribute>Y</attribute>
      </attribute>
      <attribute>
        <code>USE_POOLING</code>
        <attribute>N</attribute>
      </attribute>
    </attributes>
  </connection>
  <connection>
    <name>C-QDSJZX-QDSJZX-002-1_TRG</name>
    <server>10.132.81.198</server>
    <type>MYSQL</type>
    <access>Native</access>
    <database>qdsjzx_data2</database>
    <port>3310</port>
    <username>dep</username>
    <password>Encrypted 2befccab847d39797bf1dac249d96aaca</password>
    <servername/>
    <data_tablespace/>
    <index_tablespace/>
    <attributes>
      <attribute>
        <code>EXTRA_OPTION_MYSQL.characterEncoding</code>
        <attribute>utf8</attribute>
      </attribute>
      <attribute>
        <code>EXTRA_OPTION_MYSQL.defaultFetchSize</code>
        <attribute>500</attribute>
      </attribute>
      <attribute>
        <code>EXTRA_OPTION_MYSQL.useCursorFetch</code>
        <attribute>true</attribute>
      </attribute>
      <attribute>
        <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>IS_CLUSTERED</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>PORT_NUMBER</code>
        <attribute>3310</attribute>
      </attribute>
      <attribute>
        <code>PRESERVE_RESERVED_WORD_CASE</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>QUOTE_ALL_FIELDS</code>
        <attribute>N</attribute>
      </attribute>
      <attribute>
        <code>STREAM_RESULTS</code>
        <attribute>Y</attribute>
      </attribute>
      <attribute>
        <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
        <attribute>Y</attribute>
      </attribute>
      <attribute>
        <code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
        <attribute>Y</attribute>
      </attribute>
      <attribute>
        <code>USE_POOLING</code>
        <attribute>N</attribute>
      </attribute>
    </attributes>
  </connection>
  <order>
    <hop>
      <from>tableInputStep</from>
      <to>insertUpdateStep</to>
      <enabled>Y</enabled>
    </hop>
    <hop>
      <from>stepsMetricsStep</from>
      <to>setVariableStep</to>
      <enabled>Y</enabled>
    </hop>
  </order>
  <step>
    <name>insertUpdateStep</name>
    <type>TableOutput</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
    <partitioning>
      <method>none</method>
      <schema_name/>
    </partitioning>
    <connection>C-QDSJZX-QDSJZX-002-1_TRG</connection>
    <schema/>
    <table>uf_wllbljm</table>
    <commit>20000</commit>
    <truncate>N</truncate>
    <ignore_errors>N</ignore_errors>
    <use_batch>Y</use_batch>
    <specify_fields>Y</specify_fields>
    <partitioning_enabled>N</partitioning_enabled>
    <partitioning_field/>
    <partitioning_daily>N</partitioning_daily>
    <partitioning_monthly>Y</partitioning_monthly>
    <tablename_in_field>N</tablename_in_field>
    <tablename_field/>
    <tablename_in_table>Y</tablename_in_table>
    <return_keys>N</return_keys>
    <return_field/>
    <fields>
      <field>
        <column_name>ID</column_name>
        <stream_name>ID</stream_name>
      </field>
      <field>
        <column_name>REQUESTID</column_name>
        <stream_name>REQUESTID</stream_name>
      </field>
      <field>
        <column_name>FORMMODEID</column_name>
        <stream_name>FORMMODEID</stream_name>
      </field>
      <field>
        <column_name>MODEDATACREATER</column_name>
        <stream_name>MODEDATACREATER</stream_name>
      </field>
      <field>
        <column_name>MODEDATACREATERTYPE</column_name>
        <stream_name>MODEDATACREATERTYPE</stream_name>
      </field>
      <field>
        <column_name>MODEDATACREATEDATE</column_name>
        <stream_name>MODEDATACREATEDATE</stream_name>
      </field>
      <field>
        <column_name>MODEDATACREATETIME</column_name>
        <stream_name>MODEDATACREATETIME</stream_name>
      </field>
      <field>
        <column_name>CASEID</column_name>
        <stream_name>CASEID</stream_name>
      </field>
      <field>
        <column_name>BLSJ</column_name>
        <stream_name>BLSJ</stream_name>
      </field>
      <field>
        <column_name>BLMS</column_name>
        <stream_name>BLMS</stream_name>
      </field>
      <field>
        <column_name>ZRDW</column_name>
        <stream_name>ZRDW</stream_name>
      </field>
      <field>
        <column_name>JSRY</column_name>
        <stream_name>JSRY</stream_name>
      </field>
      <field>
        <column_name>OPENID</column_name>
        <stream_name>OPENID</stream_name>
      </field>
      <field>
        <column_name>TITLE</column_name>
        <stream_name>TITLE</stream_name>
      </field>
      <field>
        <column_name>LOCATION</column_name>
        <stream_name>LOCATION</stream_name>
      </field>
      <field>
        <column_name>LATITUDE</column_name>
        <stream_name>LATITUDE</stream_name>
      </field>
      <field>
        <column_name>LONGITUDE</column_name>
        <stream_name>LONGITUDE</stream_name>
      </field>
      <field>
        <column_name>NAME</column_name>
        <stream_name>NAME</stream_name>
      </field>
      <field>
        <column_name>TEL</column_name>
        <stream_name>TEL</stream_name>
      </field>
      <field>
        <column_name>CONTENT</column_name>
        <stream_name>CONTENT</stream_name>
      </field>
      <field>
        <column_name>CASEITEM</column_name>
        <stream_name>CASEITEM</stream_name>
      </field>
      <field>
        <column_name>CASEITEMCH</column_name>
        <stream_name>CASEITEMCH</stream_name>
      </field>
      <field>
        <column_name>IMAGES</column_name>
        <stream_name>IMAGES</stream_name>
      </field>
      <field>
        <column_name>LOGINNAME</column_name>
        <stream_name>LOGINNAME</stream_name>
      </field>
      <field>
        <column_name>QBM</column_name>
        <stream_name>QBM</stream_name>
      </field>
      <field>
        <column_name>JBM</column_name>
        <stream_name>JBM</stream_name>
      </field>
      <field>
        <column_name>SQBM</column_name>
        <stream_name>SQBM</stream_name>
      </field>
      <field>
        <column_name>WGBM</column_name>
        <stream_name>WGBM</stream_name>
      </field>
      <field>
        <column_name>SSQ</column_name>
        <stream_name>SSQ</stream_name>
      </field>
      <field>
        <column_name>SSJ</column_name>
        <stream_name>SSJ</stream_name>
      </field>
      <field>
        <column_name>SSSQ</column_name>
        <stream_name>SSSQ</stream_name>
      </field>
      <field>
        <column_name>AREA</column_name>
        <stream_name>AREA</stream_name>
      </field>
      <field>
        <column_name>MODEUUID</column_name>
        <stream_name>MODEUUID</stream_name>
      </field>
      <field>
        <column_name>REQUESTID_</column_name>
        <stream_name>REQUESTID_</stream_name>
      </field>
      <field>
        <column_name>BLFK</column_name>
        <stream_name>BLFK</stream_name>
      </field>
      <field>
        <column_name>FROMREQUESTID</column_name>
        <stream_name>FROMREQUESTID</stream_name>
      </field>
      <field>
        <column_name>AJPJ</column_name>
        <stream_name>AJPJ</stream_name>
      </field>
      <field>
        <column_name>PJSJ</column_name>
        <stream_name>PJSJ</stream_name>
      </field>
      <field>
        <column_name>XGCBR</column_name>
        <stream_name>XGCBR</stream_name>
      </field>
      <field>
        <column_name>QSRQ</column_name>
        <stream_name>QSRQ</stream_name>
      </field>
      <field>
        <column_name>PFRQ</column_name>
        <stream_name>PFRQ</stream_name>
      </field>
      <field>
        <column_name>PFSJ</column_name>
        <stream_name>PFSJ</stream_name>
      </field>
      <field>
        <column_name>AJJD</column_name>
        <stream_name>AJJD</stream_name>
      </field>
      <field>
        <column_name>THYYSM</column_name>
        <stream_name>THYYSM</stream_name>
      </field>
    </fields>
    <attributes/>
    <cluster_schema/>
    <remotesteps>
      <input>
      </input>
      <output>
      </output>
    </remotesteps>
    <GUI>
      <xloc>280</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
  </step>
  <step>
    <name>setVariableStep</name>
    <type>SetVariable</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
    <partitioning>
      <method>none</method>
      <schema_name/>
    </partitioning>
    <fields>
      <field>
        <field_name>stepName</field_name>
        <variable_name>STEPNAME</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>stepId</field_name>
        <variable_name>STEPID</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>inLineNum</field_name>
        <variable_name>INLINENUM</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>outLineNum</field_name>
        <variable_name>OUTLINENUM</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>readLineNum</field_name>
        <variable_name>READLINENUM</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>updateLineNum</field_name>
        <variable_name>UPDATELINENUM</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>writeLineNum</field_name>
        <variable_name>WRITELINENUM</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>rejectLineNum</field_name>
        <variable_name>REJECTLINENUM</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
      <field>
        <field_name>costTIme</field_name>
        <variable_name>COSTTIME</variable_name>
        <variable_type>ROOT_JOB</variable_type>
        <default_value/>
      </field>
    </fields>
    <use_formatting>Y</use_formatting>
    <attributes/>
    <cluster_schema/>
    <remotesteps>
      <input>
      </input>
      <output>
      </output>
    </remotesteps>
    <GUI>
      <xloc>280</xloc>
      <yloc>200</yloc>
      <draw>Y</draw>
    </GUI>
  </step>
  <step>
    <name>stepsMetricsStep</name>
    <type>StepsMetrics</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
    <partitioning>
      <method>none</method>
      <schema_name/>
    </partitioning>
    <steps>
      <step>
        <name>insertUpdateStep</name>
        <copyNr>0</copyNr>
        <stepRequired>N</stepRequired>
      </step>
    </steps>
    <stepnamefield>stepName</stepnamefield>
    <stepidfield>stepId</stepidfield>
    <steplinesinputfield>inLineNum</steplinesinputfield>
    <steplinesoutputfield>outLineNum</steplinesoutputfield>
    <steplinesreadfield>readLineNum</steplinesreadfield>
    <steplinesupdatedfield>updateLineNum</steplinesupdatedfield>
    <steplineswrittentfield>writeLineNum</steplineswrittentfield>
    <steplineserrorsfield>rejectLineNum</steplineserrorsfield>
    <stepsecondsfield>costTime</stepsecondsfield>
    <attributes/>
    <cluster_schema/>
    <remotesteps>
      <input>
      </input>
      <output>
      </output>
    </remotesteps>
    <GUI>
      <xloc>90</xloc>
      <yloc>200</yloc>
      <draw>Y</draw>
    </GUI>
  </step>
  <step>
    <name>tableInputStep</name>
    <type>TableInput</type>
    <description/>
    <distribute>Y</distribute>
    <custom_distribution/>
    <copies>1</copies>
    <partitioning>
      <method>none</method>
      <schema_name/>
    </partitioning>
    <connection>C-QDSJZX-QDSJZX-002-1_SRC</connection>
    <sql>SELECT * FROM ecology.UF_WLLBLJM WHERE MODEDATACREATEDATE > '${MODEDATACREATEDATE}'</sql>
    <limit>0</limit>
    <lookup/>
    <execute_each_row>N</execute_each_row>
    <variables_active>Y</variables_active>
    <lazy_conversion_active>N</lazy_conversion_active>
    <cached_row_meta_active>N</cached_row_meta_active>
    <attributes/>
    <cluster_schema/>
    <remotesteps>
      <input>
      </input>
      <output>
      </output>
    </remotesteps>
    <GUI>
      <xloc>90</xloc>
      <yloc>120</yloc>
      <draw>Y</draw>
    </GUI>
  </step>
  <step_error_handling>
  </step_error_handling>
  <slave-step-copy-partition-distribution>
  </slave-step-copy-partition-distribution>
  <slave_transformation>N</slave_transformation>
  <attributes/>
</transformation>

直接从文件加载 trans

  import cn.hutool.core.io.resource.ClassPathResource;
  ClassPathResource resource = new ClassPathResource("trans/template.ktr");
        String path = resource.getAbsolutePath();
        
        KettleEnvironment.init();
        TransMeta transMeta = new TransMeta(path);
        Trans trans = new Trans(transMeta);
        
        trans.prepareExecution(null);
//        trans.setParameterValue("key","value");
        
        trans.startThreads();
        trans.waitUntilFinished();

字节流 例如字符串 变量

  ClassPathResource resource = new ClassPathResource("trans/template.ktr");
        String xml_str = resource.readUtf8Str();
        InputStream xmlStream = IoUtil.toStream(xml_str, CharsetUtil.CHARSET_UTF_8);

        KettleEnvironment.init();
        TransMeta transMeta = new TransMeta(xmlStream, null, false, null, null);
        Trans trans = new Trans(transMeta);

        trans.prepareExecution(null);
        //        trans.setParameterValue("key","value");
        trans.startThreads();
        trans.waitUntilFinished();