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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ETL ¹¤¾ß¡¢½Å±¾ºÍÊý¾ÝÇ¨ÒÆ
 
×÷ÕߣºÍõ·ÉÅô£¬ËïÔÀ£¬Ö£Ïþ¾ü À´Ô´£ºIBM ·¢²¼ÓÚ£º 2015-04-17
  14126  次浏览      29
 

Ëæ×ÅÐÅÏ¢Á¿µÄ²»¶ÏÔö³¤£¬ÆóÒµÊý¾Ý²Ö¿âµÄÊý¾ÝÁ¿Ò²Ëæ×ÅÈÕ³£Éú²úºÍÒµÎñ´¦ÀíµÄÔö³¤¶ø²»¶ÏÔö¼Ó£¬ÕâËæÖ®¶ÔÊý¾Ý²Ö¿âµÄÐÔÄܺʹ洢ÈÝÁ¿Ìá³öÁ˸ü¸ßµÄÒªÇó¡£IBM DB2 Êý¾Ý¿âÒÔÆäÌØÓеÄÊý¾Ý¿â·ÖÇø¼¼ÊõºÍÊý¾ÝѹËõ¼¼Êõ£¬ÎªÆóÒµÊý¾ÝÁ¿µÄ²»¶ÏÔö³¤ÌṩÁ˳öÖڵĽâ¾ö·½°¸¡£µ±Ç°£¬ÒÑÓкܶàÆóÒµ¿Í»§Ç¨ÒƵ½ IBM DB2 Êý¾Ý¿âÓÃÒÔÊÊÓ¦Æä×ÔÉí²»¶ÏÔö³¤µÄÒµÎñÐèÒª¡£±¾ÎĽ«×ÅÖØ½éÉÜÔÚÊý¾Ý²Ö¿âÇ¨ÒÆÖÐµÄ ETL ¹ý³ÌºÍÊý¾Ý¼ÓÔØµÄÇ¨ÒÆ·½·¨£¬²¢ÇÒÒÔÕæÊµ¿Í»§Ç¨ÒÆÎªÀý£¬Ïò¶ÁÕß½éÉÜÁËÈçºÎͨ¹ýÓë Teradata Automation Server µÄ¼¯³ÉÀ´Íê³ÉÊý¾Ý²Ö¿âµÄ ETL ºÍ LOAD Ç¨ÒÆ¡£

ÒýÑÔ

Ëæ×ÅÐÅÏ¢Á¿µÄ²»¶ÏÔö³¤£¬ÆóÒµÊý¾Ý²Ö¿âµÄÊý¾ÝÁ¿Ò²Ëæ×ÅÈÕ³£Éú²úºÍÒµÎñ´¦ÀíµÄÔö³¤¶ø²»¶ÏÔö¼Ó£¬ÕâËæÖ®¶ÔÊý¾Ý²Ö¿âµÄÐÔÄܺʹ洢ÈÝÁ¿Ìá³öÁ˸ü¸ßµÄÒªÇó¡£IBM DB2 Êý¾Ý¿âÒÔÆäÌØÓеÄÊý¾Ý¿â·ÖÇø¼¼ÊõºÍÊý¾ÝѹËõ¼¼Êõ£¬ÎªÆóÒµÊý¾ÝÁ¿µÄ²»¶ÏÔö³¤ÌṩÁ˳öÖڵĽâ¾ö·½°¸¡£µ±Ç°£¬ÒÑÓкܶàÆóÒµ¿Í»§Ç¨ÒƵ½ IBM DB2 Êý¾Ý¿âÓÃÒÔÊÊÓ¦Æä×ÔÉí²»¶ÏÔö³¤µÄÒµÎñÐèÒª¡£

¶ÔÓÚµäÐ͵ÄÊý¾Ý²Ö¿âµÄÇ¨ÒÆ£¬Ç¨ÒƵŤ×÷Á¿Ö÷Òª¼¯ÖÐÔÚ¶Ô ETL µÄÇ¨ÒÆ£¬ÕýÈçͬÊý¾Ý²Ö¿âµÄ½¨É裬¹¤×÷Á¿¼¯ÖÐÔÚ ETL ¹ý³ÌµÄʵÏÖÒ»Ñù¡£ÏÂÎĽ«×ÅÖØ½éÉÜÓÉ Teradata Êý¾Ý²Ö¿âÇ¨ÒÆµ½ DB2 ÖÐµÄ ETL ºÍ¼ÓÔØ£¨LOAD£©Ç¨ÒƲ¿·Ö¡£±¾ÎÄÒÔÕæÊµ¿Í»§ÎªÀý£¬Ïêϸ½éÉÜÔÚÊý¾Ý²Ö¿âÇ¨ÒÆÖÐµÄ ETL ºÍ¼ÓÔØ£¨LOAD£©µÄÇ¨ÒÆ·½·¨£¬²¢Í¨¹ýʵÀýÀ´½øÒ»²½ËµÃ÷ÈçºÎʵÏÖ´Ó Teradata µ½ DB2 µÄÇ¨ÒÆ¡£¹ØÓÚ Teradata Êý¾Ý²Ö¿âÇ¨ÒÆµÄ¸ÅÊöºÍ Teradata Êý¾Ý²Ö¿âµÄÊý¾Ý¶ÔÏóÇ¨ÒÆ£¬Çë²Î¿¼¡¶´Ó Teradata Ç¨ÒÆµ½ IBM DB2 Êý¾Ý²Ö¿â¡·ÎÄÕÂÒ»¡£

Teradata ×Ô¶¯»¯µ÷¶È¹¤¾ß¼ò½é

¶ÔÓÚµäÐ͵ÄÊý¾Ý²Ö¿âµÄÇ¨ÒÆ£¬ÀýÈç´Ó Teradata µ½ DB2 µÄÇ¨ÒÆ¹ý³Ì£¬Ç¨ÒƵŤ×÷Á¿Ö÷Òª¼¯ÖÐÔÚ¶Ô ETL µÄÇ¨ÒÆ£¬ÕýÈçͬÊý¾Ý²Ö¿âµÄ½¨É裬¹¤×÷Á¿¼¯ÖÐÔÚ ETL ¹ý³ÌµÄʵÏÖÒ»Ñù¡£

Êý¾Ý²Ö¿â ETL ¹ý³Ì£¨Extraction, Transformation and Load£©Êǽ«Ô­Ê¼Êý¾Ý´ÓÒµÎñÊý¾Ý¿â»òÆäËûÊý¾ÝÔ´½øÐгéÈ¡£¬×ª»»²¢×îÖÕ¼ÓÔØµ½ÓÃÓÚ·ÖÎöµÄÊý¾Ý²Ö¿âÄ£ÐÍÖеĹý³Ì¡£¶ÔÓÚÒ»°ãµÄÊý¾Ý²Ö¿âϵͳ£¬Í¨³£ÎÒÃÇÐèÒª½øÐÐ ETL ת»»£¬ÒòΪÎÒÃÇÐèÒª½«À´×ÔÓÚ²»Í¬Êý¾ÝÔ´µÄԭʼÊý¾Ý½øÐÐÇåÏ´£¬×ª»»ºÍ¾ÛºÏ£¬½«ËüÃÇת»»³ÉÒ×ÓÚ½øÐзÖÎöµÄÊý¾Ý²Ö¿âÊý¾Ý¡£¾ßÌåÀ´½²£¬ETL µÄ²»Í¬½×¶ÎÖ¸£º

1.È¡£¨Extract£©Êǽ«Êý¾Ý´ÓÔ´Êý¾Ýϵͳ³éÈ¡µ½Ä¿±êÊý¾Ý²Ö¿âÖУ¬Í¨³£³éÈ¡¿ÉÄÜ»áÉæ¼°µ½´Ó¶à¸öÔ´Êý¾ÝϵͳÖÐÌáÈ¡Êý¾Ý¡£

2.ת»»£¨Transform£©Êǽ«ÒѾ­³éÈ¡µ½Êý¾Ý²Ö¿âÖиù¾ÝһϵÁлòÕß¶à¸ö²ã´ÎµÄ¹æÔò½øÐÐת»»£¬Ê¹Ëü³ÉΪÊý¾Ý²Ö¿âÄ£ÐÍÄܹ»½ÓÊܵÄģʽ¡£

3.¼ÓÔØ£¨Load£©Êǽ«×ª»»ºóµÄÊý¾Ý×îÖÕ¼ÓÔØµ½ÓÃÓÚ·ÖÎöµÄÊý¾ÝÄ£ÐÍÖС£

¶ÔÓÚ ETL ¹ý³Ì£¬ÆäʵÖÊÉÏÊÇʹÓà SELECT£¬INSERT »òÕß DELETE Óï¾ä½«Êý¾Ý´Ó×îµ×²ãµÄԭʼÊý¾Ý±íת»»ÎªÊý¾Ý²Ö¿âµÄÓÃÓÚ·ÖÎöµÄÊý¾Ý²Ö¿âÄ£Ð͵Ĺý³Ì¡£Í¨³££¬ÎÒÃÇʹÓÃ×Ô¶¯»¯¹¤¾ßÀ´×Ô¶¯»¯ ETL ¹ý³Ì¡£ÆäÒâÒåÔÚÓÚ£¬Ò»µ©ÎÒÃǶ¨ÒåÁËÊý¾ÝµÄ ETL ¹ý³Ì£¬ÄÇô×Ô¶¯»¯¹¤¾ß»áÔÚÿÍí»òÕßÔÚÖ¸¶¨µÄʱ¼äÄÚ£¬½«Ô­Ê¼Êý¾Ý×Ô¶¯µÄÇåÀí²¢×ª»»ÎªÊý¾Ý²Ö¿âµÄÊý¾Ý¸ñʽ£¬²¢×îÖÕµ¼Èëµ½Êý¾Ý²Ö¿âµÄ±íÖй©½ñºó·ÖÎöʹÓá£ÔÚÊý¾Ý²Ö¿â»·¾³µÄ½¨Á¢¹ý³ÌÖУ¬ETL ×Ô¶¯»¯¹¤¾ßµÄºÃ»µ²»µ«ÔÚ¹¹½¨³õÆÚ»á¾ö¶¨Êý¾Ý²Ö¿âÏîÄ¿ÄÜ·ñ˳Àû½øÐУ¬Í¬Ê±Ò²»áÓ°Ï쵽ϵͳµÄºóÆÚά»¤µÄÒ×ÓÃÐÔÉÏ¡£ÔÚ Teradata ¹¹½¨µÄϵͳÖУ¬Æäͨ³£Ê¹Óà Teradata ×Ô¶¯»¯¹¤¾ßºÍ Perl ½Å±¾À´Íê³É ETL ¹ý³Ì¡£

Teradata ×Ô¶¯»¯µ÷¶È¹¤¾ß£¨ETL Automation£©ÊÇÖ¸ÔÚ Teradata Êý¾Ý²Ö¿âÖУ¬Teradata ×Ô¶¯»¯µ÷¶È¹¤¾ßÄܹ»ÈÃÐí¶à×÷ÒµÔÚÖ´ÐÐÌõ¼þÂú×ãʱ×Ô¶¯µÄÈ¥Ö´ÐÐÕâЩ²Ù×÷¡£ÕâÆäÖаüÀ¨ÁË¿ÉÄÜÐèÒª½ÓÊÜһЩÎĵµÀ´×öÊý¾Ý¼ÓÔØ¹¤×÷µÄ×÷Òµ£¬»òÕßÊÇ×öһЩÊý¾ÝÕûºÏµÄ¹¤×÷¡£¶øÕâЩ¹¤×÷ÔÚÖ´ÐÐʱ¿ÉÄÜ»¹»áÓÐÒ»¶¨µÄÌõ¼þÏÞÖÆµÈµÈ¡£

ͼ 1. ETL Automation ¹¤¾ß

ÔÚ ETL Automation »úÖÆµ±ÖÐÌṩÁËͼÐβÙ×÷½çÃæ (GUI) µÄ¼à¿Ø³ÌÐò¡£ÈçÉÏͼ 1 Ëùʾ¡£Í¸¹ý´Ë¼à¿Ø³ÌÐòÄã¿ÉÒÔʵʱ¿´µ½Ä¿Ç°ÔÚ ETL Automation ÖÐÓÐÄÄЩ×÷ÒµÕýÔڵȴý״̬ÖÐ (Pending)£¬ÒÔ¼°ÓÐÄÄЩ×÷ÒµÕýÔÚÖ´ÐÐÖÐ (Running)¡£³ý´ËÖ®Í⣬Ä㻹¿ÉÒÔ͸¹ý¼à¿Ø³ÌÐò¿´µ½ ETL Automation »úÖÆÔÚijЩ״¿öÏÂËù²úÉúµÄÀýÍâʼþ (Event) ÒÔ±ãÄãÄܹ»ÊµÊ±µØ²ÉÈ¡¶ÔÓ¦´ëÊ©¡£

ÔÚ¡¶´Ó Teradata Ç¨ÒÆµ½ IBM DB2 Êý¾Ý²Ö¿â¡·ÏµÁÐÒ»ÖÐÎÒÃÇÒѾ­Ìáµ½£¬ÔÚ´Ó Teradata µ½ DB2 µÄÇ¨ÒÆ¹ý³ÌÖУ¬ÎÒÃÇ¿ÉÒÔ¼ÌÐøÑØÓÃÔ­ Teradata ϵͳÖÐµÄ Teradata Automation ¹¤¾ß¡£Í¬Ê±£¬Ò²¿ÉÒÔʹÓà IBM DataStage »ò SQW À´Íê³ÉÏàÓ¦µÄ¹¦ÄÜ¡£

±¾ÎÄÖ÷Òª×ÅÖØÓÚʹÓüÌÐøÑØÓÃÔ­ÓÐµÄ Teradata Automation ¹¤¾ß¡£Òò´Ë£¬Õâ¾ÍÉæ¼°µ½ÎÒÃÇÐèÒª½øÐÐ DML Ç¨ÒÆ£¬¼´ ETL ¹ý³ÌÖÐ Perl ½Å±¾µÄÇ¨ÒÆ£¬Í¬Ê±Íê³É´Ó Teradata µ½ DB2 µÄÊý¾Ý¼ÓÔØ²¢Çý¶¯ Teradata ×Ô¶¯»¯¹¤¾ß½øÐÐ ETL ¹ý³Ì¡£ÏÂÃæÎÒÃǽ«¾ÍÕâÁ½¸ö·½Ãæ½øÐзֱðµÄÌÖÂÛ¡£

DML Ç¨ÒÆ·½°¸

ÔÚ Teradata Êý¾Ý²Ö¿âÖУ¬ÆäÊý¾Ý²Ö¿â¸÷¸ö²ã´ÎÖ®¼äµÄ ETL ¹ý³ÌÊÇͨ¹ý Perl ½Å±¾À´½øÐеģ¬ÈçÏÂͼ 2 Ëùʾ¡£Perl ½Å±¾Ö÷ÒªÊÇÓÃÓÚÔÚÊý¾Ý²Ö¿âÄÚ²¿¸÷²ã´ÎÖ®¼äµÄÊý¾Ý³éÈ¡¡¢ÇåÀíºÍת»»¡£Í¬Ê±£¬ÎÒÃÇʹÓà Teradata ×Ô¶¯»¯¹¤¾ßÇý¶¯ Perl ½Å±¾½øÐй¤×÷¡£ÀýÈç Staging Çøµ½Öмä²ãµÄ PDM ²ã£¬ÓÉ PDM ²ãµ½ÉϲãµÄ BIC ²ã£¬Æä¶¼ÊÇÓÉ Perl ½Å±¾ÔÚ×Ô¶¯»¯µ÷¶È¹¤¾ß£¨Automation Server£©µÄ¿ØÖÆÏÂÀ´Íê³É¸÷²ã´ÎÖ®¼äµÄÊý¾Ý³éÈ¡ºÍ¼ÓÔØ¡£ÓÉÓÚ Perl ½Å±¾ÖÐÖ÷ҪΪ¶ÔÊý¾Ý¿âµÄ INSERT£¬UPDATE ºÍ DELETE ²Ù×÷£¬ËùÒÔÎÒÃÇÓÖ°Ñ¶Ô Perl ½Å±¾µÄÇ¨ÒÆ³ÆÎª DML£¨Database Manipulation Language£©Ç¨ÒÆ¡£

ͼ 2. µäÐÍÊý¾Ý²Ö¿âÖÐµÄ ETL ¹ý³Ì

¶ÔÓÚÆóÒµÔÚ½øÐÐ DML Ç¨ÒÆÊ±£¬Óöµ½µÄÖ÷ÒªÎÊÌâÊÇ£º

1. ÎÒÃÇÐèÒªÕÒµ½ Teradata DML ÓïÑÔÓë DB2 DML ÓïÑÔµÄÓ³Éä¹ØÏµ¡£¶ÔÓÚ²»Í¬µÄÊý¾Ý¿â³§ÉÌ£¬Æä DML ÓïÑÔÔÚ·ûºÏ±ê×¼ SQL Óï·¨µÄͬʱ£¬×Ü»áÓÐÆäϸ΢µÄ²î±ð¡£Òò´Ë£¬ÎÒÃÇÐèÒªÕÒµ½ Teradata Óë DB2 Êý¾Ý¿âÖ®¼äµÄÓ³Éä¹ØÏµ¡£

2. ¶ÔµäÐ굀 Teradata Êý¾Ý²Ö¿âϵͳÀ´Ëµ£¬Æä°üº¬´óÁ¿µÄ DML ½Å±¾£¬¼´ Perl ½Å±¾¡£

3. ÈçºÎ±£Ö¤µ±Ç° Teradata Êý¾Ý²Ö¿âÏ嵀 DML ½Å±¾Äܹ»ÔÚ DB2 ƽ̨ÏÂÕý³£Ê¹Ó㬲¢ÇÒ±£Ö¤Ç¨ÒƺóµÄ½Å±¾Äܹ»±£³ÖÆäÔ­Óй¦ÄÜ¡£

DML£¨Data Manipulation Language£©½Å±¾Ç¨ÒÆ·½°¸

ΪÁ˱£Ö¤×ª»»ºó DML ½Å±¾×ª»»ºóµÄ¿ÉÓÃÐÔºÍÒ»ÖÂÐÔ£¬ÎÒÃÇʹÓÃÈçÏÂÔ­Ôò½øÐÐת»»£º

1.±£Ö¤Ô­Óй¦ÄܵÄÕýÈ·ÔËÐÐ

2.DML ½Å±¾ºÍÆäËû³ÌÐòÁ÷³Ì¾¡Éٸıä

3.DML ½Å±¾»òÆäËûÎļþ¾¡Á¿ÉÙ½øÐÐÐÞ¸Ä

4.ת»»¹ý³Ì¿ÉÒÔģʽ»¯

Ô­ÓÐ Teradata ϵͳʹÓà Perl ½Å±¾µÄ ETL ¹ý³Ì¸ù¾Ý²»Í¬µÄÓ¦ÓÃÓÐÒÔÏ 2 ÖÖµäÐÍ·½Ê½¡£µÚÒ»ÖÖ·½Ê½ÊÇʹÓÃÔÚ ETL µÄ Perl ½Å±¾ÖÐǶÈë SQL Óï¾äµÄ·½Ê½À´Íê³É¸÷²ãÖ®¼äµÄ ETL ¹ý³Ì¡£ÈçÏÂͼ 3 Ëùʾ¡£

ͼ 3. Perl ½Å±¾ÖÐǶÈë SQL µÄ·½Ê½

µÚ¶þÖÖ·½Ê½Êǽ«µ÷ÓõײãÊý¾Ý¿âµÄ½Ó¿Ú½øÐзâ×°£¬ÉϲãµÄ ETL ½Å±¾Í¨¹ýµ÷ÓõײãµÄ Perl ³ÌÐòÀ´Ö´ÐÐ SQL Óï¾ä¡£ÈçÏÂͼ 4 Ëùʾ¡£

ͼ 4. Perl ½Å±¾µ÷Óõײ㺯ÊýÖ´ÐÐ SQL Óï¾ä

ʵ¼ÊÉÏ£¬ÎÞÂÛÊDzÉÓÃǶÈëʽµÄ SQL µÄ Perl ½Å±¾£¬»¹ÊÇÔÚµ×²ã½øÐÐÁ˺¯Êý·â×°¡£¶ÔÓÚ DB2 µÄÇ¨ÒÆÀ´Ëµ£¬ÎÒÃDZ¾ÖÊÉÏ»¹ÊÇÒª½« ETL µÄ Perl ½Å±¾ÖÐºÍ Teradata Ïà¹ØµÄÃüÁîºÍ SQL Óï¾ä£¬ ת»»Îª DB2 Ö§³ÖµÄÓï¾ä¡£

Ç¨ÒÆ·½°¸ÊµÏÖϸ½Ú

¶ÔÓÚÔ­ TD ϵͳ²»Í¬µ÷Ó÷½Ê½£¬ËüÃǵijÌÐòÁ÷³ÌÒ²ÓÐËù²»Í¬¡£ÔÚÈ·¶¨×ª»»²ßÂÔǰ£¬ÎÒÃÇÐèÒªÁ˽âÔ­ TD ϵͳÖв»Í¬ Perl ½Å±¾ºÍ Teradata SQL µÄµ÷Ó÷½Ê½¡£

1. µ×²ãÊý¾Ý¿â½Ó¿Ú½øÐзâ×°

ͼ 5. Perl ½Å±¾µ÷Óõײ㺯Êý·½Ê½

ÿһ¸ö Perl ½Å±¾»áÈ¥µ÷Óà data_process.pm ÖÐµÄ run_bteq_command() º¯Êý£¬ÈçÉÏͼ 5 Ëùʾ¡£´Ëº¯Êý»á±»µ÷ÓÃÓÃÀ´Ö´ÐÐÍⲿµÄÒ»¸ö SQL Îļþ¡£¶ÔÓÚ´ËÖÖ·½Ê½Ö´ÐÐµÄ perl SQL£¬ ÎÒÃÇÐèÒª¶Ô run_bteq_command º¯ÊýºÍÏà¹ØµÄ SQL Îļþ½øÐÐÐ޸쬽« Teradata SQL תΪ DB2 Ö§³ÖµÄ SQL¡£

2. ¶ÁÈ¡×ÔÉí Perl ½Å±¾ÖеÄǶÈë SQL

ͼ 6. Perl ½Å±¾µ÷ÓÃǶÈë SQL µÄ·½Ê½

ÓÉÉÏͼ 6 ¿É¼û£¬Perl ½Å±¾»áµ÷Óýű¾ÖÐµÄ run_bteq_command È¥Ö´ÐÐǶÈëÔڴ˺¯ÊýÖÐµÄ SQL Óï¾ä¡£Òò´ËÎÒÃÇÐèÒª¶ÔÆäÖеÄǶÈëµÄ SQL ½øÐиÄд£¬½«Ïà¹ØµÄ Teradata SQL ת»»³É DB2 SQL¡£

ÓÉÓÚ Teradata µÄ SQL ÔÚijЩϸ½ÚÉÏºÍ DB2 µÄ SQL Ó¦ÓÃÓÐϸ΢µÄÇø±ð£¬Òò´ËÎÒÃÇÐèÒª¶ÔÕâЩÓб仯µÄ SQL ½øÐиÄд£¬ÏÂ±í¸ø³öÁ˳£ÓÃµÄ SQL Óï¾äÔÚ Teradata ºÍ DB2 ÉϵĶÔÓ¦±í¡£ÓÉÓÚÆª·ùÓÐÏÞ£¬ ÕâÀï½öÁгöÄÇЩµäÐ͵Äת»»Óï¾ä£¬±íÖеÄÀ¶É«×ÖÌåΪ Teradata Óë DB2 Ëù²»Í¬µÄ SQL Óï·¨¡£

±í 1. SELECT / INSERT / UPDATE Óï¾ä¶ÔÓ¦±í

±í 2. CREATE TABLE Óï¾ä¶ÔÓ¦±í

±í 3. ³£Óú¯Êý¶ÔÓ¦±í

ÖµµÃÒ»ÌáµÄÊÇ£¬¶ÔÓÚÔÚʵ¼ÊÏîÄ¿ÖеľßÌåת»»²ßÂÔÀ´Ëµ£¬¼´ÈçºÎÓÉ Teradata SQL ת»»Îª DB2 Ö§³ÖµÄ SQL£¬ÎÒÃÇÓиü¼Ó¾ßÌåµÄÎĵµÖ¸µ¼¿Í»§½øÐÐת»»¡£Í¬Ê±£¬ ÎÒÃÇÒ²ÌṩÁËÕë¶Ô²»Í¬µ÷Ó÷½Ê½µÄ DB2 Ï嵀 perl SQL Ä£°å¡£ÕâÀïÓÉÓÚÆª·ùÏÞÖÆ¾Í²»Ò»Ò»ÁоÙÁË¡£

Êý¾ÝɨÃè¼ÓÔØ·½°¸½éÉÜ

ÈçÔÚ¡¶´Ó Teradata Ç¨ÒÆµ½ IBM DB2 Êý¾Ý²Ö¿â¡·ÏµÁÐÎÄÕÂÒ»ÖÐËùÌáµ½µÄ£¬Êý¾ÝÇ¨ÒÆÊÇÕû¸öÊý¾Ý¿âÇ¨ÒÆÖзdz£ÖØÒªµÄÒ»»·¡£ÎÒÃÇÐèÒª±£Ö¤Ô­ Teradata ÖеÄÊý¾Ý±»ÎÞËðµÄ£¬¿ìËÙµÄ×°ÔØµ½ Êý¾Ý²Ö¿â¡£Òò´ËÎÒÃÇÌṩÁËÊý¾ÝɨÃèºÍ¼ÓÔØµÄͨÓóÌÐò£¬À´Íê³É Teradata Êý¾Ý¿âµ½ DB2 µÄÊý¾ÝÇ¨ÒÆ¹¤×÷¡£±¾½Ú»á×öÏêϸµÄ½éÉÜ¡£

Êý¾ÝɨÃè¼ÓÔØµÄÄ¿µÄ²»Í¬ÓÚ DML ½Å±¾£¬¼´ÔÚÉÏÎÄÌáµ½µÄ Perl ½Å±¾Ç¨ÒÆ¡£Óë DML ÓÃÔÚ´¦ÀíÊý¾Ý²Ö¿âÄÚ²¿µÄת»»ºÍ¼ÓÔØ²»Í¬£¬Êý¾ÝɨÃèºÍ¼ÓÔØÊÇÓÃÓÚ½«ÍⲿÊý¾ÝÔ´ÖеÄÊý¾Ý£¬ È罫ҵÎñÊý¾Ý¿âÖеÄÊý¾Ý£¨Teradata£¬Oracle ÖеÄÊý¾Ý£©¼ÓÔØµ½Êý¾Ý²Ö¿âµÄ±íÖУ¬¼´ÔÚ ETL ¹ý³ÌÖÐÎÒÃÇÌáµ½µÄÊý¾Ý³éÈ¡¹ý³Ì¡£Èçͼ 2 ÖÐÓÉ OLTP ¼ÓÔØµ½ Staging Çø¡£Í¬Ê±£¬ ÎÒÃÇʹÓÃɨÃè³ÌÐò¶¨Ê±É¨ÃèÓÉÒµÎñÊý¾Ý¿âÖÐÐ¶ÔØµÄÎļþ£¬²¢ÇÒɨÃè³ÌÐò»á¸ù¾ÝÔ¤ÏÈÉ趨µÄʱ¼ä£¬Ã¿Íí¡¢Ã¿Ô»òÕßÔÚÖ¸¶¨µÄʱ¼äÇý¶¯ Teradata ×Ô¶¯»¯²âÊÔ¹¤¾ßÍê³ÉÓÉÒµÎñÊý¾Ý¿â µ½Êý¾Ý²Ö¿âµÄÊý¾Ý¼ÓÔØ¡£

ʵ¼ÊÉÏ£¬¶ÔÓÚÍⲿÊý¾ÝµÄɨÃèºÍ¼ÓÔØ£¬ÎÒÃÇÒ²ÊÇʹÓÃµÄ Perl ½Å±¾À´Íê³ÉÍⲿÊý¾ÝµÄ¼ÓÔØ¹ý³Ì¡£Ëù²»Í¬µÄÊÇ£¬ÔÚÕâÀïÎÒÃDz¢²»Ïñ DML ½Å±¾ÄÇÑù¶Ô¹ýÈ¥ÒÑÓÐµÄ Perl ½Å±¾½øÐÐÇ¨ÒÆ£¬ ¶øÊÇʹÓÃͨÓõļÓÔØ£¨Load£©ºÍɨÃ裨Scan£©¹¤¾ßÀ´½øÐÐÍⲿÊý¾ÝµÄ¼ÓÔØ¡£´Ë¹¤¾ßÊÇÓÉ IBM Öйú Avalanche ÍŶӿª·¢£¬ÆäÓÃÓÚ½«ÍⲿÊý¾Ý³éÈ¡µ½Êý¾Ý²Ö¿âÄÚ²¿µÄ±íÖУ¨Èç Staging Çø»ò PSA Çø£©£¬ ͬʱ´Ë¹¤¾ß¿ÉÒÔÇý¶¯ Teradata ×Ô¶¯»¯¹¤¾ß½øÐÐ×Ô¶¯µÄÊý¾Ý¼ÓÔØ¡£Æä¾ßÓкܸߵÄÄ£¿é»¯ºÍ¿É¶¨ÖÆÐÔ£¬¿ÉÕë¶Ô²»Í¬µÄÐèÇóºÍ¼ÓÔØ·½Ê½½øÐпìËٵ͍֯£¬Ê¹´Ë¼ÓÔØºÍɨÃè³ÌÐòÄÜÊÊÓ¦µ±Ç°µÄÐèÒª¡£ ´Ë¹¤¾ßĿǰÒѾ­ÔÚijµçÐÅÐÐÒµµÄÏîĿʵ¼ùµÃµ½Ó¦Ó㬲¢È¡µÃÁ˷dz£ºÃµÄÇ¨ÒÆ³É¹û¡£

·½°¸½éÉÜ

ÔÚÊý¾Ý²Ö¿âµÄijһÊý¾Ý²ãÉÏ£¬Teradata ½«Õâ¸ö²ãÃæÉÏËùÓÐµÄ±í°´ÕÕÖ¸¶¨£¨¹Ì¶¨£©µÄʱ¼äж³ÉÎı¾Îļþ´«µÝµ½ DB2 ËùÔÚµÄϵͳÉÏ¡£¶ÔÓÚ DB2 Êý¾Ý²Ö¿âϵͳ£¬¾ÍµÈÓڵõ½ÁËÕâЩÊý¾ÝÎļþ£¬ ²¢°ÑËüÃÇ×°ÔØµ½½á¹¹ÏàͬµÄ DB2 Êý¾Ý¿â±íÖС£ÔÚÕâ¸ö²ãÃæÒÔÉϵIJ¿·Ö£¬Ôòͨ¹ýÇ¨ÒÆµ½ DB2 »·¾³Ï嵀 ETL ½Å±¾£¬¸ù¾ÝÏ໥µÄÒÀÀµ¹ØÏµ£¬¾­¹ý²ã²ã´¦Àí£¬×îºóʹµÃÕû¸öÊý¾Ý²Ö¿âµÄÊý¾ÝµÃ µ½¸üУ¬Ö§³ÖÁË·ÖÎöÓ¦ÓõÄÔËÐС£

ͨ³££¬¶ÔÓÚÊý¾Ý²Ö¿âϵͳ£¬ÆäÐèÒª´ÓÒµÎñϵͳÖгéȡijÈÕ»òijÔµÄÒµÎñÊý¾Ý£¬²¢½«ÆäÒÔÈ«Á¿»òÕßÔöÁ¿µÄ·½Ê½¼ÓÔØµ½Êý¾Ý²Ö¿âÖС£¼òµ¥µÄÁ÷³ÌÈçÏÂͼ 7 Ëùʾ¡£

ͼ 7. Êý¾ÝɨÃè¼ÓÔØ·½°¸

ÆäÖУ¬ÒµÎñÊý¾Ý¿â¼´¿ÉÒÔÊÇ DB2 Êý¾Ý¿â£¬Ò²¿ÉÒÔÊÇ Teradata Êý¾Ý¿â¡£ÆäÊý¾Ý¶¨ÆÚµÄ£¨Ã¿Ìì»òÕßÿÔ£©Ï·¢µ½·þÎñÆ÷ÉϵÄÖ¸¶¨Ä¿Â¼¡£Ã¿Ì죬ÔÚ×Ô¶¯µ÷¶È³ÌÐò£¨Automation Server£© µÄµ÷¶ÈÏ£¬Í¨¹ýÎÒÃǵÄͨÓüÓÔØ³ÌÐò£¬½«Êý¾ÝÒÔÔöÁ¿¡¢È«Á¿»òÕ߯äËû×Ô¶¨ÒåµÄ·½Ê½¼ÓÔØµ½Êý¾Ý²Ö¿âÖС£Ö®ºóÊý¾Ý¾­¹ý ETL ´¦Àí£¬×îÖÕ¿ÉÒÔͨ¹ýÊý¾Ý²Ö¿âµÄÕ¹ÏÖ³ÌÐò¶ÔÍâÕ¹ÏÖÐÅÏ¢¡£

¼ÓÔØÊµÏÖģʽ

Èç¡¶´Ó Teradata Ç¨ÒÆµ½ IBM DB2 Êý¾Ý²Ö¿â¡·ÏµÁÐÎÄÕÂÒ»ÖÐÌáµ½µÄ£¬ÔÚ ETL ¹¤¾ßºÍ Perl ½Å±¾Ç¨Òƹý³ÌÖУ¬ÎÒÃÇ¿ÉÒÔÑ¡Ôñ 2 ÖÖ·½Ê½£º

·½Ê½Ò»£¬¼ÌÐøÑØÓà Teradata Automation ¹¤¾ß£¬¹¤×÷ÖØµãÊÇÇ¨ÒÆ´óÁ¿µÄ Perl ½Å±¾¡£

·½Ê½¶þ£¬·ÅÆú Teradata Automation ¹¤¾ß£¬Ê¹Óà IBM DataStage »ò SQW£¬¹¤×÷ÖØµãÊDZàдÐ嵀 ETL ½Å±¾À´ÊµÏÖÒµÎñÂß¼­¡£

¸ù¾Ý¿Í»§µÄ¾ßÌåÐèÇóºÍϵͳµÄʵ¼ÊÇé¿ö£¬ÎÒÃÇ¿ÉÒÔÑ¡ÔñʹÓõÚÒ»ÖÖ·½Ê½»òÕßµÚ¶þÖÖ·½Ê½¡£ÔÚ±¾½ÚÖУ¬ÎÒÃÇ×ÅÖØ½éÉܲÉÓõÚÒ»ÖÖ·½Ê½£¬¼´»¹ÑÓÐøÊ¹Óà Teradata Automation ¹¤¾ßµÄ·½Ê½À´×öºóÆÚµÄ¼ÓÔØºÍ ETL ¹ý³Ì£¬ÕâÑùÎÒÃÇ¿ÉÒÔ±£Ö¤¶ÔÔ­ÓÐϵͳ½øÐнÏСµÄ±ä»¯£¬¼´¿ÉÍê³É´Ó Teradata µ½ DB2 µÄÇ¨ÒÆ¡£

Òò´Ë£¬¶ÔÓÚÎÒÃǵļÓÔØ³ÌÐòÀ´Ëµ£¬Ëü°üÀ¨Á½¸ö²¿·Ö¡£

ɨÃè³ÌÐò£ºËüÓÃÀ´¶¨ÆÚɨÃè´ÓÒµÎñÊý¾Ý¿âÏÂÔØµÄÊý¾ÝÎļþ£¬²¢Í¨Öª Teradata Automation ¹¤¾ßºÎʱ½øÐмÓÔØ¡£

¼ÓÔØ³ÌÐò£º¼ÓÔØ³ÌÐòÌṩÁË×î»ù±¾µÄÔöÁ¿£¬È«Á¿µÈ¼ÓÔØÄ£Ê½£¬¿ÉÒÔ¸ù¾ÝÐèÒªÔÚ Teradata Automation ¹¤¾ßÖнøÐÐÈÎÒâÅäÖá£Í¬Ê±£¬Æä»¹Ìṩ¸øÁ˿ͻ§¿ÉÒÔ×Ô¶¨Òå¼ÓÔØÄ£Ê½µÄ·½·¨¡£

ɨÃè³ÌÐò

¸ù¾ÝÐèÇó£¬ÎÒÃǽøÐÐɨÃè³ÌÐòµÄÉè¼Æ£¬Õâ¸ö³ÌÐòÊÇÎÒÃÇÊý¾Ý²Ö¿âµÄÈë¿Ú¿ØÖƳÌÐò¡£ÔòɨÃè³ÌÐò»á£º

1 £®É¨Ãè³ÌÐò»á¶¨ÆÚµÄȥɨÃèÊý¾ÝÏ·¢ºóÉú³ÉµÄ±êʶÎļþ¡£µ±Ä³Ìì»òÕßijÔµÄÊý¾ÝÍê³ÉÏ·¢ºó£¬Ôò´Ë±íʾÎļþ»áÉú³ÉÔÚ¸ÃÏ·¢ÎļþµÄÎļþ¼ÐÖС£É¨Ãè³ÌÐò»áͨ¹ý ftp µÄ·½Ê½È¥É¨Ãè¸÷¸öÔ¶³Ì·þÎñÆ÷ÉϵıêʶÎļþ¡£

2 £®µ±É¨Ãè³ÌÐòÆô¶¯ºó£¬É¨Ãè³ÌÐò»áÿÌìÆô¶¯Ò»´Î£¬ÓɲÙ×÷ϵͳ×Ô¶¯ÔÚÁ賿Æô¶¯¡£µ±È»£¬´ËɨÃè³ÌÐòµÄÆô¶¯ÆµÂÊÎÒÃÇ¿ÉÒÔ×ÔÐнøÐÐÉèÖ᣸óÌÐòÆô¶¯µÄʱºò¿ÉÒÔ½«ÒµÎñÈÕÆÚ×÷Ϊ²ÎÊý£¬Ê¹µÃ¸ÃɨÃè³ÌÐòÖ»¸ºÔðɨÃèµ±ÌìÐèÒª×°ÔØµÄÊý¾Ý±êʶÎļþ¡£ÎªÁ˰²È«Æð¼û£¬¸Ã³ÌÐòÔÚÆô¶¯Ê±»á¼ì²éÊÇ·ñ»¹ÓÐǰһÌìµÄɨÃè³ÌÐòÔÚÔËÐС£Èç¹ûÓÐǰһÌìµÄɨÃè³ÌÐòÔÚÔËÐУ¬Ôò±¨´í²¢Í˳ö¡£

3 £®µ±É¨Ãè³ÌÐòɨÃ赽ij¸öÊý¾ÝÎļþ±êʶ´æÔÚ£¬¼´±íÃ÷´ËÊý¾ÝÎļþÒѾ­Ï·¢³É¹¦£¬ÔòɨÃè³ÌÐò¾Í»áͨ¹ý SOCKET ÏûϢ֪ͨ Teradata Automation ³ÌÐò¿ªÊ¼´ËÊý¾ÝµÄ¼ÓÔØ¹¤×÷¡£Õâʱ£¬Teradata Automation »á¸ù¾Ý×ÔÉíÅäÖõļÓÔØ·½Ê½£¬È¥µ÷ÓüÓÔØ³ÌÐò½«ÏàÓ¦µÄÊý¾Ý¼ÓÔØµ½Éú²ú±íÖС£

¼ÓÔØ³ÌÐò

ͼ 8. Êý¾Ý¼ÓÔØÊ¾Àý

Êý¾Ý¼ÓÔØ¹ý³ÌÈçÉÏͼ 8 Ëùʾ¡£ÔÚ¼ÓÔØ³ÌÐòÖУ¬ÎÒÃÇʹÓÃÈçϵÄһЩԭÔò½øÐÐÉè¼Æ¡£

1.Ò×À©Õ¹µÄÊý¾Ý¼ÓÔØÄ£Ê½

ÔÚ¼ÓÔØ³ÌÐòÖУ¬ËùÓеÄÊý¾Ý¼ÓÔØ£¬ºÍÊý¾Ý¿âÏà¹ØµÄ LOAD£¬INSERT£¬DELETE µÈ²Ù×÷£¬´´½¨ÁÙʱ±íµÄ²Ù×÷µÈ¾ù½øÐÐÁË·â×°¡£ËùÓÐͨÓõIJÙ×÷¶¼±»·âװΪ¿ÉÒÔ±»µ¥¶Àµ÷ÓõijÌÐò¡£Èç³ÌÐò 1 Ëùʾ¡£

Çåµ¥ 1. ʾÀý´úÂë Base_Load.pm

# ¼ÓÔØÄ£Ê½¿ÉÒÔʹÓõÄͨÓú¯Êý

sub Create_Temp_Table (...)

sub Load_Temp_Data (...);

sub Transfer (...);

...

ÎÒÃÇÖ»ÐèÔÚÍⲿ¶¨ÒåµÄ²»Í¬µÄ¼ÓÔØÄ£Ê½ÖУ¬ÈçÔöÁ¿¼ÓÔØ£¬È«Á¿¼ÓÔØµÈʵÏÖÖУ¬µ÷ÓÃÕâЩ×î»ù±¾µÄº¯Êý¾Í¿ÉÒÔʵÏÖ²»Í¬µÄ¼ÓÔØÄ£Ê½£¬Òò´Ë´ïµ½Á˼ÓÔØÄ£Ê½µÄ¿ÉÀ©Õ¹ÐÔ¡£

2.Íⲿµ÷Ó÷½Ê½ºÍ¼ÓÔØ¿ØÖƱí

¼ÓÔØ³ÌÐò¶ÔÍâÌṩͳһµÄµ÷ÓÃ½Ó¿Ú Table_Load.pl <Table_ID>£¬Èç Automation Server ¿ÉÒÔͨ¹ý´Ë½Ó¿ÚÃüÁîµ÷Óò»Í¬µÄ Load ³ÌÐò½øÐÐÊý¾Ý¼ÓÔØ¡£¶ÔÓÚ²»Í¬µÄ±í£¬²ÉÓúÎÖÖ¼ÓÔØ¿ØÖÆ·½Ê½µÈÐÅÏ¢£¬ ÎÒÃǶ¼Í¨¹ýά»¤¼ÓÔØ¿ØÖƱíÀ´½øÐпØÖƺ͵÷Õû¡£

3.³ö´í´¦ÀíºÍÊý¾ÝÒ»ÖÂÐÔ

¼ÓÔØ³ÌÐò¿ÉÒÔÌṩ³ö´í´¦ÀíºÍÊý¾ÝÒ»ÖÂÐÔά»¤¡£Õë¶Ô²»Í¬µÄ¼ÓÔØ·½Ê½£¬ÔÚ¼ÓÔØÊ±£¬Ê×ÏȽøÐÐÊý¾ÝÒ»ÖÂÐÔά»¤¡£µ±¶ÁÈ¡Êý¾ÝÎļþµ½ÁÙʱ±íʧ°Ü£¬³ÌÐò»áÍ˳ö¡£¼ÓÔØÊý¾Ýµ½Éú²ú±íÖÐʧ°Ü£¬ Êý¾ÝÒ»ÖÂÐÔ»Ö¸´£¬³ÌÐòÍ˳ö¡£

4.Ô´´úÂë×éÖ¯½á¹¹

Ô´´úÂë×éÖ¯½á¹¹ÈçÏÂͼ 9 Ëùʾ¡£ÆäÖУ¬table_load.pl ÌṩÁËÉÏÃæÎÒÃÇÌáµ½µÄͳһµ÷Óýӿڣ¬table_load.pl »á¸ù¾Ý¼ÓÔØ¿ØÖƱíÖеÄÐÅÏ¢À´½øÒ»²½µÄµ÷Óò»Í¬µÄ¼ÓÔØÄ£Ê½£¬ÈçÔÚ±¾ÀýÖУ¬ Load_w.pl ¶ÔӦȫÁ¿¼ÓÔØ£¬Load_a.pl ¶ÔÓ¦ÔöÁ¿¼ÓÔØ£¬ÒÔ¼° Load_m.pl£¬Load_x.pl ÒÔ¼° Load_x.pl µÈ¼ÓÔØ½Å±¾£¬ËüÃÇ·Ö±ð¶ÔÓ¦×ÅÀ­Á´¼ÓÔØ£¬Ïêµ¥¼ÓÔØºÍ¶©µ¥¼ÓÔØ¡£Õâ 3 ÖÖ¼ÓÔØ·½Ê½ÊǸù¾ÝÏîÄ¿ µÄʵ¼ÊÇé¿öÒÔ base_load.pm Ϊ»ù´¡¶ø¸ù¾Ý¿Í»§ÐèÇó¶¨Òå³öµÄÌØ¶¨¼ÓÔØ·½Ê½¡£Êµ¼ÊÉÏ£¬ËùÓв»Í¬µÄ¼ÓÔØ½Å±¾¾ùÊÇ¿ÉÒÔͨ¹ý base_load.pm ÖеÄͨÓú¯Êý×éºÏµ÷Óöø³É¡£

ͼ 9. Ô´´úÂë×éÖ¯½á¹¹

5.Ô´´úÂëʾÀýÈçÏÂËùʾ

Çåµ¥ 2. ʾÀý´úÂë Table_Load.pl

 # ----- ¶ÁÈ¡¿ØÖƱíÐÅÏ¢ -------
 sub Get_Table_Ctl { 
 ... 
 } 

 #---- ¸ù¾Ý²»Í¬¼ÓÔØÄ£Ê½£¬´Ó DAT ÎļþÖÐ LOAD ÐÅÏ¢ ----- 
 sub Table_Load { 
	
	 # 1. È«¸²¸Çģʽ
	 if ($load_type eq "W") {  
		 print "### Calling load_W.pl ###\n"; 
		 $rc = system("perl load_W.pl $Target_DB_Name $Target_Usr ..."); 
	 } 
	
	 # 2. ´¿¸½¼Óģʽ
	 elsif ($load_type eq "A") { 
		 print "### Calling load_A.pl ###\n"; 
		 $rc = system("perl load_A.pl $Target_DB_Name $Target_Usr ..."); 
	 } 
	
	 # 3. À­Á´Ä£Ê½
	 elsif ($load_type eq "M") { 
		 print "### Calling load_M.pl ###\n"; 
		 $rc = system("perl load_M.pl $Target_DB_Name $Target_Usr ..."); 
	 } 
	
	 # 4. »°·ÑÏ굥ģʽ
	 elsif ($load_type eq "X") { 
		 print "### Calling load_X.pl ###\n"; 
		 print "$Target_DB_Name $Target_Usr ..." ); 
	 } 
	
	 # 5. »°·Ñ¶©µ¥Ä£Ê½
	 elsif ($load_type eq "D") { 
		 print "### Calling load_D.pl ###\n"; 
		 $rc = system("perl load_D.pl $Target_DB_Name $Target_Usr ..."); 
	 }

Çåµ¥ 3. ʾÀý´úÂë Table_A.pl

#----------- ¿ªÊ¼½øÐÐÔöÁ¿¼ÓÔØ -------------- 
 print "### START TO LOAD TABLE ${SCHEMA}.${TABNAME} AT ".&getNow()." ###\n"; 

 # 1. ½øÐмÓÔØÇ°µÄÊý¾ÝÒ»ÖÂÐÔά»¤
 &Recover_Transfer_Load_A(); 

 # 2. ɾ³ýÁÙʱ¼ÓÔØ±í
 &Drop_Temp_Table($DBNAME_TARGET, $USER_TARGET, ...); 

 # 3. ´´½¨ÁÙʱ¼ÓÔØ±í£¬Èç¹ûʧ°Ü£¬Ôò¼Ç¼µ½ Log Îļþ²¢Í˳ö
 $rc = &Create_Temp_Table($DBNAME_TARGET, $USER_TARGET, ...); 
 if ($rc eq 2 || $rc eq 4 || $rc eq 8) { 
	 print "Failure on create temporary table ${SCHEMA_TMP}.${TABNAME_TMP}\n"; 
	 print "Waiting for re-run current job\n"; 
	 exit 1; 
 } 

 #4. ½«Êý¾ÝÎļþÖеÄÊý¾Ý¼ÓÔØµ½ÁÙʱ±íÖУ¬Èç¹ûʧ°Ü£¬ÇåÀíÁÙʱ±í²¢Í˳ö
 $rc = &Load_Temp_Data($DBNAME_TARGET, $USER_TARGET, ...); 
 if ($rc eq 2 || $rc eq 4 || $rc eq 8) { 
	 &Drop_Temp_Table($DBNAME_TARGET, $USER_TARGET, ...); 
	 print "Failure on loading into temporary table ${SCHEMA_TMP}.${TABNAME_TMP}\n"; 
	 print "Waiting for re-run current job\n"; 
	 exit 1; 
 } 

 #5. ½«ÁÙʱ±íÖеÄÊý¾Ý¼ÓÔØµ½ÕýʽµÄÉú²ú±íÖУ¬Èç¹ûʧ°Ü£¬Ôò¶ÔÉú²ú±íÊý¾Ý½øÐÐÒ»ÖÂÐÔά»¤
 $rc = &Transfer($DBNAME_TARGET, $USER_TARGET, ..."); 
 if ($rc eq 2 || $rc eq 4 || $rc eq 8) { 
	 &Recover_Transfer_Load_A(); 
	 &Drop_Temp_Table($DBNAME_TARGET, $USER_TARGET, ...); 
	 print "Failure on transfer data into table ${SCHEMA}.${TABNAME}\n"; 
	 print "Waiting for re-run current job\n"; 
	 exit 1; 
 } 

 #6. ¶ÔÉú²ú±íÖ´ÐÐ RUNSTATS ²Ù×÷
 &Runstats($DBNAME_TARGET, $USER_TARGET, ...); 

 #7. ɾ³ýÁÙʱ±í
 &Drop_Temp_Table($DBNAME_TARGET, $USER_TARGET, ...); 

 #-------- ½áÊø½øÐÐÔöÁ¿¼ÓÔØ --------- 
 print "### FINISH TO LOAD TABLE ${SCHEMA}.${TABNAME} AT ".&getNow()." ###\n"; 

 exit 0;

½áÊøÓï

±¾ÎÄÊÇ¡¶´Ó Teradata Ç¨ÒÆµ½ IBM DB2 Êý¾Ý²Ö¿â¡·ÏµÁÐÖеĵڶþƪÎÄÕ£¬±¾ÎĽéÉÜÁË´Ó Teradata Ç¨ÒÆµ½ DB2 Êý¾Ý¿âʱËùÐèÒª½øÐÐµÄ DML Ç¨ÒÆ·½·¨ºÍÊý¾Ý¼ÓÔØÊµÏÖ¡£ÔÚ±¾ÎÄÖÐÌáµ½µÄ·½·¨ÒѾ­ÔÚÕæÊµµÄÇ¨ÒÆÏîÄ¿Öеõ½ÑéÖ¤£¬²¢±»Ö¤Ã÷ÊÇÐÐÖ®ÓÐЧµÄ¡£ÏÞÓÚ±¾ÎÄÆª·ù£¬±¾ÎIJ»ÄÜ¶Ô DML Ç¨ÒÆ·½·¨ºÍÊý¾Ý¼ÓÔØ½øÐÐÏêϸµÄ½éÉÜ£¬ÕâÀïÖ»ÄÜ¾ÍÆäÕûÌå·½·¨½øÐÐÌÖÂÛ£¬¾ßÌåµÄϸ½ÚÎÊÌâÁô´ý¶ÁÕß½øÒ»²½Ë¼¿¼¡£

   
14126 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí