<?xml version="1.0" encoding="UTF-8"?> <transformation> <info> <name>rest-demo</name> <description/> <extended_description/> <trans_version/> <trans_type>Normal</trans_type> <directory>/</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>2021/03/25 19:48:37.180</created_date> <modified_user>-</modified_user> <modified_date>2021/03/25 19:48:37.180</modified_date> <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key> <is_key_private>N</is_key_private> </info> <notepads> </notepads> <connection> <name>163_casic_urban_governance</name> <server>11.100.6.163</server> <type>MYSQL</type> <access>Native</access> <database>casic_urban_governance</database> <port>3306</port> <username>root</username> <password>Encrypted 2be98afc86aa7f2e48818bd79ddc0ff89</password> <servername/> <data_tablespace/> <index_tablespace/> <attributes> <attribute> <code>EXTRA_OPTION_MYSQL.characterEncoding</code> <attribute>utf8</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>3306</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>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>生成随机数</from> <to>读取车辆数据表</to> <enabled>Y</enabled> </hop> <hop> <from>读取车辆数据表</from> <to>日期参数encode</to> <enabled>Y</enabled> </hop> <hop> <from>json转换</from> <to>更新上报时间</to> <enabled>Y</enabled> </hop> <hop> <from>更新上报时间</from> <to>文本文件输出</to> <enabled>Y</enabled> </hop> <hop> <from>日期参数encode</from> <to>REST client</to> <enabled>Y</enabled> </hop> <hop> <from>REST client</from> <to>json转换</to> <enabled>Y</enabled> </hop> </order> <step> <name>REST client</name> <type>Rest</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <applicationType>TEXT PLAIN</applicationType> <method>GET</method> <url/> <urlInField>Y</urlInField> <dynamicMethod>N</dynamicMethod> <methodFieldName/> <urlField>host</urlField> <bodyField/> <httpLogin/> <httpPassword>Encrypted </httpPassword> <proxyHost/> <proxyPort/> <preemptive>N</preemptive> <trustStoreFile/> <trustStorePassword>Encrypted </trustStorePassword> <headers> </headers> <parameters> </parameters> <matrixParameters> </matrixParameters> <result> <name>result</name> <code/> <response_time/> <response_header/> </result> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>544</xloc> <yloc>32</yloc> <draw>Y</draw> </GUI> </step> <step> <name>json转换</name> <type>JsonInput</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <include>N</include> <include_field/> <rownum>N</rownum> <addresultfile>N</addresultfile> <readurl>N</readurl> <removeSourceField>N</removeSourceField> <IsIgnoreEmptyFile>N</IsIgnoreEmptyFile> <doNotFailIfNoFile>Y</doNotFailIfNoFile> <ignoreMissingPath>Y</ignoreMissingPath> <defaultPathLeafToNull>Y</defaultPathLeafToNull> <rownum_field/> <file> <name/> <filemask/> <exclude_filemask/> <file_required>N</file_required> <include_subfolders>N</include_subfolders> </file> <fields> <field> <name>simcardnum</name> <path>$..simcardnum</path> <type>String</type> <format/> <currency/> <decimal/> <group/> <length>-1</length> <precision>-1</precision> <trim_type>none</trim_type> <repeat>N</repeat> </field> <field> <name>recordTime</name> <path>$..recordTime</path> <type>None</type> <format/> <currency/> <decimal/> <group/> <length>-1</length> <precision>-1</precision> <trim_type>none</trim_type> <repeat>N</repeat> </field> </fields> <limit>0</limit> <IsInFields>Y</IsInFields> <IsAFile>N</IsAFile> <valueField>result</valueField> <shortFileFieldName/> <pathFieldName/> <hiddenFieldName/> <lastModificationTimeFieldName/> <uriNameFieldName/> <rootUriNameFieldName/> <extensionFieldName/> <sizeFieldName/> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>688</xloc> <yloc>96</yloc> <draw>Y</draw> </GUI> </step> <step> <name>文本文件输出</name> <type>TextFileOutput</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <separator>;</separator> <enclosure>"</enclosure> <enclosure_forced>N</enclosure_forced> <enclosure_fix_disabled>N</enclosure_fix_disabled> <header>Y</header> <footer>N</footer> <format>DOS</format> <compression>None</compression> <encoding/> <endedLine/> <fileNameInField>N</fileNameInField> <fileNameField/> <create_parent_folder>Y</create_parent_folder> <file> <name>E:\\test.txt</name> <servlet_output>N</servlet_output> <do_not_open_new_file_init>N</do_not_open_new_file_init> <extention>txt</extention> <append>N</append> <split>N</split> <haspartno>N</haspartno> <add_date>N</add_date> <add_time>N</add_time> <SpecifyFormat>N</SpecifyFormat> <date_time_format/> <add_to_result_filenames>Y</add_to_result_filenames> <pad>N</pad> <fast_dump>N</fast_dump> <splitevery/> </file> <fields> </fields> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>480</xloc> <yloc>208</yloc> <draw>Y</draw> </GUI> </step> <step> <name>日期参数encode</name> <type>UserDefinedJavaClass</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <definitions> <definition> <class_type>TRANSFORM_CLASS</class_type> <class_name>Processor</class_name> <class_source>// 生成的代码片段 public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception { if (first) { first = false; } Object[] r = getRow(); if (r == null) { setOutputDone(); return false; } r = createOutputRow(r, data.outputRowMeta.size()); String beginTime= get(Fields.In, "beginTime").getString(r); String endTime= get(Fields.In, "endTime").getString(r); String simcardnum = get(Fields.In, "simcardnum").getString(r); String host=get(Fields.In, "host").getString(r); host=host+"?simCardNum="+simcardnum+"&beginTime="+java.net.URLEncoder.encode(beginTime,"UTF-8")+"&endTime="+java.net.URLEncoder.encode(endTime,"UTF-8"); get(Fields.Out,"beginTime").setValue(r, java.net.URLEncoder.encode(beginTime,"UTF-8")); get(Fields.Out,"endTime").setValue(r,java.net.URLEncoder.encode(endTime,"UTF-8")); get(Fields.Out,"host").setValue(r,host); putRow(data.outputRowMeta, r); return true; } </class_source> </definition> </definitions> <fields> </fields> <clear_result_fields>N</clear_result_fields> <info_steps/> <target_steps/> <usage_parameters/> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>400</xloc> <yloc>32</yloc> <draw>Y</draw> </GUI> </step> <step> <name>更新上报时间</name> <type>ExecSQL</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <connection>163_casic_urban_governance</connection> <execute_each_row>Y</execute_each_row> <single_statement>N</single_statement> <replace_variables>Y</replace_variables> <quoteString>N</quoteString> <sql>update dcms_car_info set recordTime = from_unixtime(?/1000) where simcardnum='?'</sql> <set_params>N</set_params> <insert_field/> <update_field/> <delete_field/> <read_field/> <arguments> <argument> <name>recordTime</name> </argument> <argument> <name>simcardnum</name> </argument> </arguments> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>688</xloc> <yloc>208</yloc> <draw>Y</draw> </GUI> </step> <step> <name>生成随机数</name> <type>RandomValue</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <fields> </fields> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>128</xloc> <yloc>32</yloc> <draw>Y</draw> </GUI> </step> <step> <name>读取车辆数据表</name> <type>TableInput</type> <description/> <distribute>Y</distribute> <custom_distribution/> <copies>1</copies> <partitioning> <method>none</method> <schema_name/> </partitioning> <connection>163_casic_urban_governance</connection> <sql>SELECT simcardnum ,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') as endTime, DATE_FORMAT(date_sub(NOW(),INTERVAL 1 MINUTE),'%Y-%m-%d %H:%i:%s') as beginTime ,'http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo' as host FROM casic_urban_governance.dcms_car_info where unitid in(select UNITID from dcms_dregs_company)</sql> <limit>0</limit> <lookup/> <execute_each_row>N</execute_each_row> <variables_active>N</variables_active> <lazy_conversion_active>N</lazy_conversion_active> <cached_row_meta_active>N</cached_row_meta_active> <row-meta> <value-meta> <type>String</type> <storagetype>normal</storagetype> <name>simcardnum</name> <length>500</length> <precision>-1</precision> <origin>读取车辆数据表</origin> <comments>simcardnum</comments> <conversion_Mask/> <decimal_symbol>.</decimal_symbol> <grouping_symbol>,</grouping_symbol> <currency_symbol/> <trim_type>none</trim_type> <case_insensitive>N</case_insensitive> <collator_disabled>Y</collator_disabled> <collator_strength>0</collator_strength> <sort_descending>N</sort_descending> <output_padding>N</output_padding> <date_format_lenient>N</date_format_lenient> <date_format_locale>zh_CN</date_format_locale> <date_format_timezone>Asia/Shanghai</date_format_timezone> <lenient_string_to_number>N</lenient_string_to_number> </value-meta> <value-meta> <type>String</type> <storagetype>normal</storagetype> <name>endTime</name> <length>24</length> <precision>-1</precision> <origin>读取车辆数据表</origin> <comments>endTime</comments> <conversion_Mask/> <decimal_symbol>.</decimal_symbol> <grouping_symbol>,</grouping_symbol> <currency_symbol/> <trim_type>none</trim_type> <case_insensitive>N</case_insensitive> <collator_disabled>Y</collator_disabled> <collator_strength>0</collator_strength> <sort_descending>N</sort_descending> <output_padding>N</output_padding> <date_format_lenient>N</date_format_lenient> <date_format_locale>zh_CN</date_format_locale> <date_format_timezone>Asia/Shanghai</date_format_timezone> <lenient_string_to_number>N</lenient_string_to_number> </value-meta> <value-meta> <type>String</type> <storagetype>normal</storagetype> <name>beginTime</name> <length>24</length> <precision>-1</precision> <origin>读取车辆数据表</origin> <comments>beginTime</comments> <conversion_Mask/> <decimal_symbol>.</decimal_symbol> <grouping_symbol>,</grouping_symbol> <currency_symbol/> <trim_type>none</trim_type> <case_insensitive>N</case_insensitive> <collator_disabled>Y</collator_disabled> <collator_strength>0</collator_strength> <sort_descending>N</sort_descending> <output_padding>N</output_padding> <date_format_lenient>N</date_format_lenient> <date_format_locale>zh_CN</date_format_locale> <date_format_timezone>Asia/Shanghai</date_format_timezone> <lenient_string_to_number>N</lenient_string_to_number> </value-meta> <value-meta> <type>String</type> <storagetype>normal</storagetype> <name>host</name> <length>87</length> <precision>-1</precision> <origin>读取车辆数据表</origin> <comments>host</comments> <conversion_Mask/> <decimal_symbol>.</decimal_symbol> <grouping_symbol>,</grouping_symbol> <currency_symbol/> <trim_type>none</trim_type> <case_insensitive>N</case_insensitive> <collator_disabled>Y</collator_disabled> <collator_strength>0</collator_strength> <sort_descending>N</sort_descending> <output_padding>N</output_padding> <date_format_lenient>N</date_format_lenient> <date_format_locale>zh_CN</date_format_locale> <date_format_timezone>Asia/Shanghai</date_format_timezone> <lenient_string_to_number>N</lenient_string_to_number> </value-meta> </row-meta> <attributes/> <cluster_schema/> <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> <xloc>256</xloc> <yloc>32</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>