Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Kettleת»»ÖеÄJava´úÂë²½ÖèÓ¦ÓÃÈëÃÅÓëʵս
 
  6374  次浏览      27
 2019-10-10 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ¸öÈË΢ÐŹ«Öںţ¬±¾ÎÄͨ¹ýJMSʵս£¬ÑÝʾÁËÈçºÎͨ¹ýJava´úÂëÀ´À©Õ¹KettleµÄ¹¦ÄÜ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

Ò»¡¢ÎÊÌâ±³¾°

ÔÚʹÓÃKettleµÄ¹ý³ÌÖУ¬ÓпÉÄÜÓöµ½ÏÖÓв½ÖèÎÞ·¨Âú×ãÐèÇóµÄÇé¿ö¡£½â¾ö´ËÀàÎÊÌ⣬ÓÐÖîÈ繺ÂòµÚÈý·½²å¼þ¡¢¿ª·¢²å¼þ¡¢×Ô¶¨ÒåJavaÀàµÈ°ì·¨¡£×îºóÒ»ÖÖ°ì·¨ÒòÆä´ú¼ÛСÇÒÃż÷½ÏµÍ¶ø³ÉΪ×îΪ³£Óõ͍֯·½·¨¡£±¾ÎĽ«½âÊÍJava´úÂë²½ÖèµÄÔ­Àí£¬²¢Í¨¹ýÒ»¸öʵ¼Ê°¸Àý£¬¿ìËÙÕÆÎÕÏà¹ØÈëÃÅ֪ʶ¡£

¶þ¡¢Ô­ÀíÆÊÎö

Java´úÂë²½Ö裬λÓÚKettleת»»µÄºËÐĶÔÏó/½Å±¾Àà±ðÖУ¬ÊôÓÚµäÐ͵ÄÐèÒª±à³Ì»ù´¡²ÅÄÜÕÆ¿ØµÄ²½ÖèÀàÐÍ¡£¶øJava´úÂë²½Ö裬ÊÊÓÃÓÚÊìϤJavaÓïÑԵĿª·¢ÈËÔ±£¬ÓúÃÕâ¸ö²½Ö裬ÐèÒª¶ÔÀà¡¢½Ó¿Ú¡¢¶àÏ̵߳ÈÓïÑÔÏà¹ØÖªÊ¶ÓÐËùÕÆÎÕ£¬²¢ÇÒÐèÒª¶ÔKettleµÄ»ù´¡¿ò¼ÜÓÐËùÀí½â¡£JavaÓïÑԵĻù´¡ÖªÊ¶²»ÔÚ±¾ÎÄÌÖÂÛ·¶Î§£¬ÏÂÃæ½«×ÅÖØ¶ÔKettle¿ò¼ÜµÄºËÐIJ¿·Ö½øÐнâÊÍ¡£

Kettleת»»µÄÖ´ÐУ¬ÓÐÒÔÏÂÈý¸öºËÐĵÄÉúÃüÖÜÆÚ½Úµã£º

1¡¢³õʼ»¯

Kettleת»»ÔÚÖ´ÐÐǰ£¬»áÓÐÒ»¸ö¸÷²½ÖèµÄ³õʼ»¯¶¯×÷£¬Îª²½ÖèÖ´ÐÐǰµÄ×¼±¸¹¤×÷´´Ôì»ú»á¡£ÎªÌá¸ß³õʼ»¯µÄÐÔÄÜ£¬KettleΪÿ¸ö²½ÖèÆôÓÃÒ»¸ö³õʼ»¯Ị̈߳¬´Ó¶ø²¢ÐÐÍê³ÉËùÓв½ÖèµÄ³õʼ»¯¡£³õʼ»¯µÄÖ÷ÒªÄÚÈݾÍÊǵ÷ÓÃÒ»´Î²½ÖèµÄÒÔÏ·½·¨£º

public boolean init( StepMetaInterface meta, StepDataInterfacedata)

´Ë·½·¨°üº¬Á½¸ö²ÎÊý¡£ÆäÖУ¬metaΪԪÊý¾Ý£¬dataΪÊý¾Ý¡£Èç¹û·µ»Øtrue£¬ÄÇô´ú±í³õʼ»¯³É¹¦£¬·ñÔò´ú±í³õʼ»¯Ê§°Ü¡£ÈκÎÒ»¸ö²½Öè³õʼ»¯Ê§°Ü£¬¶¼»áµ¼ÖÂÕû¸öת»»Í£Ö¹Ö´ÐУ¨ÔÚֹͣǰ£¬»áµ÷ÓÃÿһ¸öת»»µÄ×ÊÔ´ÊÍ·Å·½·¨dispose£©¡£

2¡¢Ö´ÐÐ

Ö´Ðн׶ÎÊÇÿһ¸ö²½ÖèʵÏÖÌØ¶¨¼ÛÖµµÄʱºò¡£ÎªÌá¸ßЧÂÊ£¬KettleΪÿһ¸ö²½Öèµ¥¶ÀÆô¶¯Ò»¸ö¹¤×÷Ïß³ÌÀ´Ö´ÐÐÈÎÎñ¡£Java³ÌÐòÔ±¶¼Á˽⣬Ï̵߳ĺËÐÄ´úÂëÊǸ²¸Çrun·½·¨¡£Îª¼ò»¯Æð¼û£¬ÎÒ½«²»ÖØÒªµÄ´úÂëɾ³ý£¬µÃµ½¹¤×÷Ïß³Ìrun·½·¨ºËÐÄ´úÂ룺

¿ÉÒÔ¿´³ö£¬Ïß³ÌÒ»Ö±ÔÚÖ´Ðв½ÖèµÄprocessRow·½·¨£¬Ö±µ½³öÏÖÒÔÏÂÇé¿öÖ®Ò»£º

¡¤ processRow·½·¨·µ»Øfalse

¡¤ isStopped·½·¨·µ»Øtrue

¡¤ processRow·½·¨Ö´Ðйý³ÌÖгöÏÖÒì³££¬

ÆäÖУ¬µÚÒ»ÖÖÇé¿ö´ú±í¹¤×÷ÒѾ­Õý³£Íê³É£»µÚ¶þÖÖÇé¿ö£¬´ú±í²½Öè±»Ç¿ÖÆÍ£Ö¹£»µÚÈýÖÖÇé¿ö£¬´ú±íÖ´Ðйý³ÌÖгöÏÖ´íÎó£¬Kettle½«µ÷ÓÃstopAll·½·¨£¬´Ó¶øµ¼ÖÂÕû¸öת»»µÄËùÓй¤×÷Ïß³ÌÍ£Ö¹Ö´ÐС£

Ö´Ðз½·¨µÄÉùÃ÷ÈçÏ£º

public boolean processRow( StepMetaInterface meta,StepDataInterfacedata ) throws KettleException;

ÿһ¸ö²½Ö裬¶¼»áÔÚprocessRow·½·¨Öи÷ÏÔÉñͨ¡£Ò»°ãµÄ¹ý³ÌÊÇ£¬´ÓÊäÈëÐм¯ÖÐÄóöÒ»ÐУ¬½øÐÐÌØ¶¨´¦Àí£¬È»ºó½«ÐµÄÐзÅÈëÊä³öÐм¯ÖС£´ÓÊäÈëÐм¯ÖÐÈ¡Êý¾Ý¿ÉÒÔµ÷ÓÃgetRow·½·¨¡£Èç¹ûgetRow·½·¨·µ»ØÖµ²»Îªnull£¬Ôò²½ÖèÓ¦½«¸ÃÐÐÊý¾Ý½øÐд¦Àí£¬²¢µ÷ÓÃputRow·½·¨½«´¦Àí½á¹û´æÈëÊä³öÐм¯£¬È»ºó·µ»Øtrue£¬ÒÔ¼ÌÐøÎªÏÂÒ»ÐÐÊäÈëÊý¾Ý´¦ÀíÌṩ»ú»á¡£Èç¹ûgetRow·½·¨·µ»Ønull£¬´ú±íÊäÈëÐм¯ÒѾ­´¦ÀíÍê±Ï£¬Õâʱ¿ÉÒÔµ÷ÓÃsetOutputDone£¬±êʶ±¾²½ÖèÖ´ÐÐÍê±Ï£¬²¢·µ»Øfalse£¬ÒÔ½áÊø±¾¹¤×÷Ï̵߳ÄÖ´ÐС£

3¡¢×ÊÔ´ÊÍ·Å

´ÓÉÏÊö¹¤×÷Ï̵߳ĺËÐÄ´úÂë¿ÉÒÔ¿´³ö£¬²»¹Ü¹¤×÷Ïß³ÌÊÇÕý³£Ö´ÐÐÍê±Ï»¹ÊÇÒì³£Ö´ÐÐÍê±Ï£¬×îÖÕ»áµ÷ÓÃdispose·½·¨¡£¸Ã·½·¨ÉùÃ÷ÈçÏ£º

public void dispose( StepMetaInterface meta, StepDataInterfacedata);

²½ÖèÓ¦¸ÃÔÚÐèҪʱ¸²¸Ç´Ë·½·¨£¬²¢ÊÍ·ÅÏà¹Ø×ÊÔ´¡£

Á˽âÉÏÊöÔ­Àíºó£¬×«Ð´JavaÀಽÖèÖеĴúÂëʱ½«ÐØÓгÉÖñ¡£×ÛÉÏËùÊö£¬Ò»°ãÇé¿öÏÂÖØÐ´processRow·½·¨¼´¿ÉÂú×ãÐèÇó£¬Èç¹ûÓõ½ÁËÒ»Ð©ÖØÁ¿¼¶µÄ×ÊÔ´£¬×îºÃÔÚinit·½·¨Öгõʼ»¯£¬²¢ÔÚdispose·½·¨ÖÐÊÍ·Å¡£

ÓÉÓÚKettleʹÓÃJanino¿ò¼ÜΪ×Ô¶¨ÒåJavaת»»²½ÖèÀද̬¶¨ÒåÁËÀàÃû£¬²¢Ö¸¶¨¸¸ÀàΪTransformClassBase£¬ËùÒÔÔÚ׫д´úÂëʱ£¬Ö»ÐèÒªÌṩÀàµÄÄÚÈݼ´¿É£¬ÎÞÐèclassÉùÃ÷¡£

¼ÈÈ»×Ô¶¯½¨Á¢Á˸¸À࣬ÄÇô¸¸ÀàµÄ³ÉÔ±¡¢·½·¨¶¼¿ÉÒÔÔÚ´úÂëÖÐÖØÓ᣸¸Àà³£ÓõijÉÔ±°üÀ¨ÒÔÏÂÈý¸öʵÀý£º

parent£º´ú±íÈÝÆ÷¶ÔÏó

meta£º´ú±íÈÝÆ÷ÔªÊý¾Ý¶ÔÏó

data£º´ú±íÈÝÆ÷Êý¾Ý¶ÔÏó

³£Óõķ½·¨°üÀ¨£º

getRow£º´ÓÊäÈëÐм¯ÖÐȡһÐÐÊý¾Ý

putRow£º´æÒøÐÐÊý¾Ýµ½Êä³öÐм¯

stopAll£ºÍ£Ö¹ËùÓй¤×÷Ïß³Ì

setOutputDone£º±ê¼Ç±¾²½Ö蹤×÷Íê³É

logBasic£ºÊä³ö»ù±¾ÈÕÖ¾

logError£ºÊä³ö´íÎóÈÕÖ¾

getInputRowMeta£ºµÃµ½ÊäÈëÐеÄÔªÊý¾Ý

createOutputRow£º´´½¨Ò»¸öÊä³öÐÐÊý¾Ý

Æäʵ£¬³£Óõķ½·¨£¨ÈçÏÂͼ1Ëùʾ£©£¬»ù±¾É϶¼ÔÚ²½ÖèÊôÐÔ¶Ô»°¿ò×ó²àCode SnippitsÖС£Ò»°ãÇé¿öÏ£¬¿ÉÒÔË«»÷ÆäÖеÄMain½Úµã£¬´ÓprocessRow·½·¨µÄÖØÐ´¿ªÊ¼£¬ÐèÒªÆäËû´úÂëʱ£¬ÔÚ×ó²àÕÒµ½¶ÔÓ¦´úÂë¿é£¬Ë«»÷¼´¿É¼ÓÈë¡£

Èý¡¢°¸Àý·ÖÏí

±¾ÎÄʹÓÃÒ»¸öKettle¼¯³ÉJMSµÄ°¸ÀýÀ´½øÐÐʵսÑÝÁ·¡£¼ÙÉèÐèÒªÁ½¸öת»»£ºÒ»¸öת»»ÃûΪSend£¬ÊµÏÖ´ÓÎı¾ÎļþÊäÈëÁ÷¶ÁÈ¡Êý¾Ý£¬²¢·¢Ë͵½ActiveMQµÄ¶ÓÁУ»ÁíÍâÒ»¸öת»»ÃûΪReceive£¬ÊµÏÖ´Ó¶ÓÁжÁÈ¡Êý¾Ý£¬²¢·¢Ë͵½Îı¾ÎļþÊä³öÁ÷¡£Á½¸öת»»½ØÍ¼ÈçÏ£º

ÓÉÓÚÁ½¸öת»»ÖÐÓõ½µÄÎı¾ÎļþÊäÈë¡¢Êä³ö¶¼·Ç³£¼òµ¥£¬ÕâÀïÖ»×ö¼òµ¥ÃèÊö¡£Sendת»»ÖУ¬S01¶ÁÈ¡±¾µØÎı¾Îļþ£¬°üº¬Á½¸öStringÀàÐ͵Ä×Ö¶ÎID¡¢MENU_NAME¡£Receiveת»»ÖУ¬S02Êä³öÎļþµ½×ª»»ËùÔÚĿ¼£¬½ö°üº¬Ò»¸öÃûΪMENU_NAMEµÄStringÀàÐÍ×ֶΡ£

ÏÂÎÄ×ÅÖØÃèÊöÁ½¸öJava´úÂë²½Öè¡£µÚÒ»¸ö²½ÖèÊÇSendת»»ÖеÄS02£¬ÆäÖ÷Òª´úÂë×¢ÊÍÈçÏ£º

µÚ¶þ¸ö²½ÖèÊÇReceiveת»»ÖеÄS01²½Öè¡£Ö÷Òª´úÂë×¢ÊÍÈçÏ£º

×¢Ò⣬ÓÉÓÚ±¾ÎÄʹÓÃÁËActiveMQ×÷ΪJMS·þÎñÆ÷£¬ËùÒÔΪ±£Ö¤ÊµÀýÄܹ»Õý³£ÔËÐУ¬ÐèÒª×ÔÐÐÏÂÔØ·þÎñÆ÷°²×°³ÌÐò£¬²¢½«¶ÔÓ¦jarÎļþ¿½±´µ½KettleµÄlibĿ¼Ï£¨±¾ÀýʹÓÃactivemq-all-5.8.0.jar£©¡£´úÂëÖУ¬ÐèÒªµÄimportÖ¸ÁîÈçÏ£º

import java.util. * ;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

ËÄ¡¢×ܽá

±¾ÎÄÔھ߱¸³ÌÐòÔ±±³¾°ÖªÊ¶µÄÊý¾Ý¹¤³ÌʦÔÚÔËÓÃKettle½øÐж¨ÖÆ¿ª·¢Ê±£¬¿ÉÒԲο¼¡£

   
6374 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ