datastage¾­Ñé×ܽá - ͼÎÄ ÏÂÔØ±¾ÎÄ

Dastage¾­Ñé×ܽá

Ŀ¼

1 ÈçºÎÖØÐÂÆô¶¯DataStage·þÎñÆ÷, ²½ÖèÈçÏÂ: ........................................................................ 4 2 DataStage¿ª·¢¾­Ñé»ýÀÛ: ...................................................................................................... 4 2.1 Ä£°å¿ª·¢...................................................................................................................................... 4 2.2 ͨ¹ýSERVER SHARED CONTAINERÔÚPARALLEL JOBÖÐÌí¼ÓSERVER JOB STAGE ....................................... 4 2.3 È¥³ý²»ÐèÒªµÄ×Ö¶Î ...................................................................................................................... 4 2.4 TRANSFORMER STAGEµÄʹÓà ........................................................................................................... 4 2.5 LOOK UP/JOIN ¿ÕÖµ´¦Àí ............................................................................................................... 5 2.6 DATASTAGEÖÐĬÈϺÍÒþʽÀàÐÍת»»Ê±×¢ÒâµÄÎÊÌâ ...................................................................... 5 2.7 ÅäÖÃÒ»¸ö INPUT»òOUTPUT,¾ÍVIEW DATAÒ»ÏÂ,²»ÒªµÈµ½RUNʱÔÙ»ØÍ·ÕÒERROR ......................... 5 2.8 DATAÐÍÊý¾ÝÊDZȽÏÂé·³µÄ .......................................................................................................... 5 2.9 ÐÐÁл¥»»Ö®HORIZONTAL PIVOT£¨PIVOT STAGE£© ............................................................................. 6 2.10 ÐÐÁл¥»»Ö®VERTICAL PIVOT ......................................................................................................... 6 2.11 ORACLE EE STAGEÔÚVIEWÊý¾Ýʱ³öÏֵĴíÎó¼°½â¾ö·½·¨ ........................................................ 8 2.12 DATASTAGE SAP STAGEµÄʹÓà ....................................................................................................... 9 2.13 COLUM IMPORT STAGEµÄʹÓà ........................................................................................................ 9 2.14 COLUM EXPORT STAGEµÄʹÓà ...................................................................................................... 11 2.15 GOT ERROR: CANNOT FIND ANY PROCESS NUMBER FOR STAGES IN JOB JOBNAME½â¾ö ............................ 12 2.16 UNABLE TO CREATE RT_CONFIGNNN .............................................................................................. 13 2.17 ²é¿´JOBºÍCLIENTµÄ¶ÔÓ¦µÄºǫ́½ø³Ì .................................................................................... 13 2.18 Ç¿ÖÆÉ±ËÀDS½ø³Ì ................................................................................................................... 13 2.19 ²é¿´SERVER ENGINEµÄ½ø³Ì ...................................................................................................... 14 2.20 ²é¿´SERVER LOCKS ..................................................................................................................... 14 2.21 ¹ØÓÚUNIXϵͳÏÂÎÞ·¨Æô¶¯·þÎñµÄ½â¾ö°ì·¨........................................................................ 15 2.22 LOCKED BY OTHER USER ................................................................................................................. 16 2.23 DATASTAGE JOB LOGµÄ´¦Àí ......................................................................................................... 16 2.24 һЩBASICÓïÑÔÖд¦Àí×Ö·û´®µÄº¯Êý .................................................................................. 16 2.25 BASIC³ÌÐòÖÐʹÓõ½µÄһЩÓ﷨֪ʶ ................................................................................... 17 3

DSÖг£¼ûÎÊÌâ¼Ç¼ .......................................................................................................... 21 3.1 ȨÏÞ¹ÜÀíÎÊÌâ ............................................................................................................................ 21 3.2 JOB MAY BE BEING MONITORED»òÕßÊÇCLEANUPÎÊÌâ ....................................................................... 21 3.3 ɾ³ýÎļþµÄÎÊÌâ ........................................................................................................................ 21 3.4 SEQUENCEµ÷¶È³öÏֵĴíÎóÎÊÌâ ................................................................................................. 22 3.17 ×Ö·û¼¯ÎÊÌâ ............................................................................................................................. 22 3.18 VERSIONCONTROLµÄÎÊÌâ ............................................................................................................ 22 3.19 SEQUENCEµ÷²»ÆðJOBµÄÎÊÌâ................................................................................................... 23 3.20 SEQUENCEµ÷¶Èʧ°ÜµÄÎÊÌâ ....................................................................................................... 23 3.21 DS·¢ËÍÓʼþµÄÅäÖÃÎÊÌâ ........................................................................................................ 24 3.22 Ëæ»ú´íÎóÎÊÌâ ......................................................................................................................... 25

Individual 2007-10 1 / 64

Dastage¾­Ñé×ܽá

3.23 DSÖеÄÈÕÆÚÎÊÌâ .................................................................................................................... 25 3.24 DSÁ¬½ÓORACLEÎÊÌâ ................................................................................................................ 26 3.25 ÔÚSEQUENCE FILE STAGEÖеĿÕÖµ´¦ÀíÎÊÌâ .............................................................................. 26 3.26 ÔÚDSÖÐʹÓÃORACLE ENTERPRISE STAGE±ØÐëµÄȨÏÞ ................................................................. 26 3.27 DSÖÐÈ¥³ý¡®»Ø³µ·û¡¯µÄÎÊÌâÒÔ¼°´ÓCHARÀàÐÍת±ä³ÉÕûÐ͵ķ½·¨ .................................... 26 3.28 ´Óºǫ́¿´JOBÁбíµÄ·½·¨ ..................................................................................................... 27 3.29 DATASTAGEºÍÊý¾Ý¿âµÄÁ¬½Ó·½·¨ ............................................................................................. 27 3.30 ÔÚDATASTAGEÖÐʹÓû·¾³±äÁ¿µÄÎÊÌâ ..................................................................................... 27 3.31 ICONV ºÍ OCONV ...................................................................................................................... 28 3.32 ÔÚMERGEÖÐʹÓÃÌØÊâ×Ö·û ..................................................................................................... 28 4 5 6 7 8 9 10 11 12

²¿·Ö³£ÓÃStage µÄʹÓÃ˵Ã÷ ............................................................................................ 28 dsjob Ó﷨˵Ã÷: .............................................................................................................. 30 ÈçºÎ´ÓDataStage·þÎñÆ÷µ¼³öËù¿ª·¢µÄJOBSÁбí ....................................................... 31 ²é¿´µ±Ç°·þÎñÆ÷״̬ÐÅÏ¢µÄ·½·¨: ..................................................................................... 35 ÈçºÎÔÚÁ½Ì¨»úÆ÷Ö®¼ä½øÐÐFTPÎļþ ................................................................................. 35 ÈçºÎ»ñµÃJobstatus ,²½ÖèÈçÏÂ: ....................................................................................... 37 dsjob ¨Crun µÄÓ÷¨ ...................................................................................................... 38 ÈçºÎÔÚºǫ́ÔËÐкÍÍ£Ö¹Ò»¸öJOB ................................................................................. 39 DS Oracle EE Stage ÅäÖÃ........................................................................................... 41

11.1 °²×°ORACLE¿Í»§¶Ë ................................................................................................................. 41 11.2 Ìí¼ÓORACLEÓû§µ½DSADM GROUP×éÑ¡Ïî ............................................................................... 41 11.3 ÅäÖÃDATASTAGE·þÎñÆ÷DSENVÎļþ .......................................................................................... 41 11.4 ÅäÖÃTNSNAMES.ORA ................................................................................................................... 42 11.5 ÖØÆðDATASTAGE·þÎñ ................................................................................................................ 42 11.6 ÅäÖÃOACLE STAGE³éÈ¡µÄSELECTȨÏÞ ...................................................................................... 42 11.7 OACLE EE STAGEÅäÖýáÊø ........................................................................................................ 43 13

DS ODBC µÄÅäÖà ........................................................................................................ 43

12.1 ÐÞ¸Ä$DSHOME /DSENV ............................................................................................................ 43 12.2 ÐÞ¸Ä$DSHOME/.ODBC.INI, À´ÌṩÊý¾Ý¿âÁ¬½ÓÐÅÏ¢; ............................................................. 43 12.3 ÐÞ¸Ä$DSHOME/UVODBC.CONFIG, À´Ö¸¶¨DSN(DATA SOURCE NAME). ........................................... 44 14 15

ETLϵͳÀ©Õ¹ ............................................................................................................... 45 Remote Shell (rsh)µÄÅäÖà ........................................................................................... 45

14.1 ´´½¨²¢ÅäÖà .RHOSTSÎļþ ...................................................................................................... 45 14.2 ÐÞ¸Ä/ETC/HOSTS.EQUIVÎļþ ...................................................................................................... 46 16

dsadminÃüÁîµÄʹÓà ................................................................................................... 46

15.1 DSADMINÃüÁîµÄʹÓà .............................................................................................................. 46

Individual 2007-10 2 / 64

Dastage¾­Ñé×ܽá

17 18 19

ÈçºÎÆô¶¯JobMonApp ................................................................................................. 48 DS.TOOLS ................................................................................................................... 48 uvsh³£ÓÃÃüÁî .............................................................................................................. 51

18.1 LOGTO PROJECTNAME --------µÇ¼һ¸ö¹¤³Ì ............................................................................... 51 18.2 DS.TOOLS ---------½øÈëDS¹¤¾ß ................................................................................................ 51 18.3 LIST DS_JOBS --------ÏÔʾËùÓеÄJOB¼°JOBµÄ·ÖÀàCATEGORY .............................................. 51 18.4 LIST DS_JOBS WITH NAME=JOBNAME ------ÏÔʾij¸öÌØ¶¨JOBµÄÐÅÏ¢ ..................................... 51 18.5 LIST.READU EVERY -----ÁгöËùÓеÄËø¼°ËøµÄÓµÓÐÓû§USERNAME ..................................... 51 18.6 UNLOCK USER USERNO ALL ----½âËøÓû§Ëø×¡µÄJOBS ................................................................ 51 18.7 LIST.INDEX ----- Áгö×ÊÁÏ¿âµÄË÷Òý ........................................................................................ 52 20

Usage AnalysisÀ´½øÐÐÓ°Ïì·ÖÎö ................................................................................ 52

19.1 ÈçºÎÆô¶¯USAGE ANALYSIS .......................................................................................................... 52 19.2 USAGE ANALYSISÖÐSELECT COLUMNSµÄʹÓà ................................................................................ 53 19.3 USAGE ANALYSISÖÐVIEW HTMLµÄʹÓà ....................................................................................... 54 19.4 USAGE ANALYSISÖÐLOCATE IN MANAGERµÄʹÓà ............................................................................ 55 19.5 USAGE ANALYSIS¿ÉʹÓõÄSOURCEÀàÐÍ ...................................................................................... 56 21

DS Message Handlers ................................................................................................ 57

20.1 MESSAGE HANDLERSµÄÁ½ÖÖ¼¶±ð ................................................................................................. 57 20.2 MESSAGE HANDLERSµÄÈýÖÖ¶¯×÷ÖÖÀà ......................................................................................... 58 20.3 MESSAGE HANDLERSµÄÎļþ¸ñʽ ................................................................................................. 58 22

DS Parallel Routine .................................................................................................... 59

21.1 PARALLEL ROUTINE×¢ÒâÊÂÏî ....................................................................................................... 59 21.2 PARALLEL ROUTINE´´½¨Á÷³Ì ....................................................................................................... 59 21.3 PARALLEL ROUTINEʾÀý ............................................................................................................... 60 23

uvconfigÎļþÖвÎÊýÐ޸ķ½·¨ ..................................................................................... 62

22.1 ÐÞ¸ÄÎļþUVCONFIGÖеIJÎÊý .................................................................................................. 62 22.2 ÔËÐÐUVREGEN............................................................................................................................ 62 22.3 ÖØÆôDS·þÎñ ........................................................................................................................... 62 22.4 УÑé ......................................................................................................................................... 62 24

&PH& ........................................................................................................................... 62

23.1 CD \\&PH\\& »ò CD ¡®&PH&¡¯ ........................................................................................................ 62 25 26

DB2Ö§³ÖµÄÊý¾Ý¸ñʽ .................................................................................................... 63 DB2ÖÐLoadÓï·¨ºÍ»ù±¾Ê¹Óà ...................................................................................... 64

Individual 2007-10 3 / 64

Dastage¾­Ñé×ܽá

1 ÈçºÎÖØÐÂÆô¶¯DataStage·þÎñÆ÷, ²½ÖèÈçÏÂ:

1.01

Æô¶¯DataStage Server µÄÃüÁîÒªÔÚ$DSHOME/bin Ŀ¼Ï½øÐÐ. Æô¶¯Ö®Ç°ÒªÇжÏËùÓÐÓë·þÎñÆ÷¶ËµÄÁ¬½Ó:

1. µÇ½DataStage ·þÎñÆ÷,ÊäÈë: $DSHOME/bin 2. ¹Ø±ÕDataStage ·þÎñÆ÷ ./uv ¨Cadmin ¨Cstop

3. ¼ì²é·þÎñÆ÷ÉÏÊÇ·ñ»¹Óнø³Ìû¹Øµô£¬·ñÔò·þÎñÆ÷ÎÞ·¨Æô¶¯ÆðÀ´£¬netstat -a | grep ds 4. ÖØÆð·þÎñÆ÷ ./uv ¨Cadmin ¨Cstart.

Note: ¹Ø±ÕDataStage ·þÎñÆ÷ºó,½¨Òé¹ý30 sec ÔÙÖØÆð·þÎñÆ÷.

2 DataStage¿ª·¢¾­Ñé»ýÀÛ:

2.1 Ä£°å¿ª·¢

²¢ÐÐJOBÖÐÄ£°åµÄ¿ª·¢¿ÉÒÔ×î´ó³Ì¶ÈµÄÖØÓò¢ÐÐJOBµÄ¹¹¼þ,½Úʡʱ¼ä

1. ʹÓÃJOB²ÎÊý(PARAMETER)¿ÉÒÔÔÚÔËÐÐʱÌṩ²ÎÊýµÄÖµ,Ôö¼ÓÁé»îÐÔ,¿ÉÒÔÔÚ

²»Í¬µÄ»·¾³´¦Àí²»Í¬µÄÊý¾Ý;ʹÓÃJOB PARAMETER ¿ÉÒÔÔÚͬһʱ¼äʹÓò»Í¬²ÎÊýÔËÐÐͬһ¸öJOB

2. Shared Container ¹²ÏíÈÝÆ÷¿ÉÒÔÔÚ¶à¸öJOBÖй²ÏíÏàͬµÄÂß¼­,µ±Ò»¸öJOB

±àÒëʱ¹²ÏíÈÝÆ÷±»Ç¶Èë.

2.2 ͨ¹ýServer Shared ContainerÔÚParallel JobÖÐÌí¼ÓServer Job Stage

ÔÚDesignerÖд´½¨Ò»¸öserver shared container£¬Ìí¼ÓÐèÒªµÄServer job stage£¬ÔÙ°Ñserver shared containerÌí¼Óµ½parallel job²¢Á¬½Óµ½ÆäËûparallel stage.

2.3 È¥³ý²»ÐèÒªµÄ×Ö¶Î

µ±´ÓÊý¾Ý¿âÖжÁÈ¡Êý¾Ýʱ,Òª¾¡¿ÉÄÜÔçµÄÈ¥³ý²»ÐèÒªµÄ×Ö¶Î,Ö»¶ÁÈ¡ÐèÒªµÄ×Ö¶Î,¶ø²»ÊÇÕû¸ö±í,ÕâÑù¿ÉÒÔÌá¸ßÊý¾Ý¶ÁȡЧÂÊ.

2.4 Transformer StageµÄʹÓÃ

1. É÷ÓÃTransformer Stage,ÒòΪËü¿ÉÄܽµµÍJOBµÄÔËÐÐЧÂÊ,ÓÐЩ¹¦ÄÜÄܺϲ¢³É

Ò»¸öµ¥¶ÀµÄSTAGEµÄ²»ÒªÓöà¸öSTAGE,ÒªÓÃÆäËûµÄSTAGEÀ´´úÌæTransformer Stage ÄÜÍê³ÉµÄÈÎÎñ.

2. Transformer Stage µÄÊý¾ÝÁ÷³ÌÊÇÏȾ­¹ýconstraintµÄ¹ýÂË,È»ºóÔÙ¾­¹ý

Derivation´¦Àí

3. ¶ÔÓÚÈ·¶¨ÀàÐ͵IJÙ×÷,ʹÓÃÆäËûSTAGE ±ÈʹÓÃTRANSFORMER »á¸üºÃ:

(1) ¶ÔÈçÏÂÇé¿ö,ʹÓÃCopy Stage ½«±ÈTransformer Stage ¸üºÃ

©~ÔÚ½çÃæÉÏÌṩһ¸öJOB Éè¼ÆÕ¼Î»·û ©~ÖØÐÂÃüÃû×Ö¶Î

Individual 2007-10 4 / 64

Dastage¾­Ñé×ܽá

©~ɾ³ý×Ö¶Î

©~ImplicitÀàÐͱ任

(2) ʹÓÃFilter Stage »òÕß Switch Stage À´°ÑÊäÈë¼Ç¼°´ÕÕÏÞÖÆ±íʽ·Ö

³É¶à¸öÊä³ö·ÖÖ§.

(3) ʹÓÃModify Stage À´explicit ÀàÐͱ任ºÍNull´¦Àí

©~Modify Stage Ò²¿ÉÖØÐÂÃüÃû×Ö¶Î ©~±£³Ö(keep)»òɾ³ý(drop)×Ö¶Î

©~Ò²¿ÉÔö¼ÓÐÂ×Ö¶Î,²¢ÎªÐÂÔö×ֶθ³Öµ,µ«¸³Öµ·½Ê½ÒªÒÔ×Ö¶Î=×Ö¶Î ÐÎʽ,ÀýÈç: new_columnname = old_columnname; µ«new_columnname =¡±hf¡±ÕâÑù¸³ÖµÊÇ´íÎóµÄ ©~NullµÄ´¦Àí

destinationColum=handle_null(sourceColum,Value)

destinationColum=make_null(sourceColum,Value),Õâ¸öʹÓÃÖÐÓÐÎÊÌâ,²»´¦Àí¿ÕÖµ

2.5 Look up/join ¿ÕÖµ´¦Àí

1. µ±Ê¹ÓÃLookup Failure = Contunue ʱ,Òª°Ñ reference link µÄ·ÇÖ÷¼üÉèÖóÉ

Nullable,¼´Ê¹reference data ÊǷǿյÄ,Ò²ÒªÉèÖóÉNullable,ÕâÑùÄܹ»È·±£Lookup °Ñ¿ÕÖµ·ÖÅä¸øÃ»ÓÐÆ¥ÅäµÄ²Î¿¼·ÇÖ÷¼ü

2. Èç¹û²Î¿¼·ÇÖ÷¼üûÓÐÉèÖóÉNullable ,½«»á·¢Éúʲô:Lookup ½«»á·ÖÅäÒ»¸öĬ

ÈÏÖµ¸øÃ»ÓÐÆ¥ÅäµÄµÄÐÐ:

Integer ĬÈÏֵΪ0 Varchar/char ĬÈÏֵΪ¿Õ×Ö·û´®(0³¤¶ÈµÄ)

2.6 DataStageÖÐĬÈϺÍÒþʽÀàÐÍת»»Ê±×¢ÒâµÄÎÊÌâ

µ±´ÓÔ´ÏòÄ¿±êÓ³ÉäÊý¾Ýʱ£¬Èç¹ûÀàÐͲ»Ò»Ö£¬¶ÔÓÚÓÐЩÀàÐÍÎÒÃÇÐèÒªÔÚmodify»òtransfomer stageÖÐͨ¹ýº¯Êý½øÐÐת»»£¬¶ÔÓÚÓÐЩϵͳ»á×Ô¶¯Íê³ÉÀàÐÍת»»£¬ÔÚÀàÐÍת»»¹ý³ÌÖУ¬×¢ÒâÒÔϼ¸µã£º

1 Ôڱ䳤µ½¹Ì¶¨³¤¶È×Ö·û´®µÄĬÈÏת»»ÖУ¬parallel jobsÓÿոñ£¨ASCII 20£©×Ö ·ûÀ´Ìî³äÊ£Ó೤¶È(»·¾³±äÁ¿APT_STRING_PADCHARµÄĬÈÏÖµÒ²Êǿոñ£¨ASCII 20£©,¾ßÌåÔÚÄĸöstageÌî³äµÄ²»Öª.

2 ͨ¹ý»·¾³±äÁ¿APT_STRING_PADCHAR¿ÉÒԸıäĬÈϵÄÌî³ä×Ö·ûnull£¨ASCII 0£©¡£

3 ÓиöPadString º¯Êý¿ÉÒÔÓÃÀ´ÓÃÖ¸¶¨µÄ×Ö·ûÀ´Ìî³äÒ»¸ö±ä³¤µÄ×Ö·û´®µ½Ö¸¶¨µÄ³¤¶È¡£Õâ¸öº¯ÊýµÄ²ÎÊý²»ÄÜʹ¹Ì¶¨³¤¶È×Ö·û´®£¬Èç¹ûÊǹ̶¨³¤¶ÈµÄÏÈת»¯Îª±ä³¤¡£

2.7 ÅäÖÃÒ»¸ö input»òoutput,¾Íview dataÒ»ÏÂ,²»ÒªµÈµ½runʱÔÙ»ØÍ·ÕÒerror 2.8 DataÐÍÊý¾ÝÊDZȽÏÂé·³µÄ

ÒòΪDatastageÖеÄÈÕÆÚ¸ñʽΪtimestamp,µ±È»ÄãÒ²¿ÉÒÔ°ÑËüµÄÈÕÆÚ¸ñʽ¸ü¸ÄΪdateÐÍ£¬µ«¾­³£»á³öÏÖ´íÎó¡£¶ÔÓÚoracleÊý¾Ý¿âÔ´±íºÍÄ¿±ê±í£¬²»ÐèÒª¶ÔdateÐÍÊý¾Ý×öÈκÎת»»£¬Ö±½ÓʹÓÃĬÈϼ´¿É£¬µ«¶ÔÓÚinformixµÈһЩÊý¾Ý¿â£¬ÔòÐèҪʹÓÃoconv£¬iconvº¯Êý½øÐÐת»»£¬²¢ÔÚoutputÖÐÏàÓ¦µÄÐÞ¸Äoutput sqlÖеÄÈÕÆÚ¸ñʽ

Individual 2007-10 5 / 64

Dastage¾­Ñé×ܽá

2.9 ÐÐÁл¥»»Ö®Horizontal Pivot£¨Pivot Stage£©

ÁбäÐÐ,¼´¿í±í±äÕ­±í,×ֶαäÉÙÁË,¼Ç¼Êý±ä¶àÁË£¬Ç£Éæµ½ColumnÊýÁ¿µÄ±ä»¯£»×¢ÒâÒªÔÚPivot-?OutputµÄDerivationÖÐдÉÏת»»×ֶεÄÀ´Ô´×Ö¶Î,×Ö¶ÎÖ®¼äÓöººÅ¸ô¿ª Àý×Ó£º

PIVOT Input¼Ç¼ÈçÏ£º

Id col1 col2 col3

2 Rootpath Workdate EdsDbname 3 Rootpath Workdate AsdmDbname PIVOT Output¼Ç¼ÈçÏ£º Id colum 2 Rootpath 2 Workdate 2 EdsDbname 3 Rootpath 3 Workdate

3 AsdmDbname

2.10 ÐÐÁл¥»»Ö®Vertical Pivot

Pivot StageÊÇ¿í±í±äÕ­±í£¬Ò²¼´£ºHorizontal Pivot£»Êµ¼ÊÓ¦ÓÃÖл¹»áÇ£Éæµ½Õ­±í ¿í±í£¬¼´Vertical PivotµÄÓ¦Óá£ÀýÈ磺 ÊäÈëInput¼Ç¼ÈçÏ£º Id Column 2 Rootpath 2 Workdate 2 EdsDbname 3 Rootpath 3 Workdate 3 AsdmDbname

ÎÒÃÇÏëÒªµÄÊä³öOutput¼Ç¼ÊÇÕâÑùµÄ£º Id NewCol 2 Rootpath£¬Workdate£¬EdsDbname 3 Rootpath£¬Workdate£¬AsdmDbname

½â¾ö·½·¨ÈçÏ£º

Server JobµÄ×ö·¨£º

Sequence File---? Transform---? Hash File Ô´±í½á¹¹£º Id varchar 10 Column varchar 10

Define Transform as follows

Individual 2007-10 6 / 64

Dastage¾­Ñé×ܽá

Stage Variables£º currentKey

Initial value = \ Derivation = L1.Id newRecord

Initial value = \

Derivation = if currentKey=lastKey Then newRecord:\lastKey

Initial value = \

Derivation = currentKey L2 Deriviations L2.key = L1.Id

L2.line = newRecord

Ä¿±ê±í½á¹¹£º

Id varchar 10 (marked as the key) Newcol varchar 200

£¨×¢Ò⣺Stage VariableµÄÓÐÏȺó˳ÐòµÄ£¬ËüÊǰ´ÕÕÏȺó˳ÐòÀ´¸³ÖµµÄ,ËùÒÔlastKeyÒªÔÚnewRecordºóÃæ£©

Èç¹û°ÑNewcolµÄÖµ·ÅÔÚ²»Í¬µÄ×Ö¶ÎÖУ¬¸ñʽÈçÏ£º

Id Col1 Col2 Col3

2 Rootpath Workdate EdsDbname 3 Rootpath Workdate AsdmDbname

½â¾ö·½·¨ÊÇ£º°ÑNewColmµÄÖµ¶Á³öÀ´¸³¸øÒ»¸öStage Variable£¬È»ºóʹÓÃField(NewCord, \£¬Field(NewCord, \µÈµÈ£¬°ÑÖµ¸³¸øÃ¿¸öColm¡£

Parallel JobµÄ×ö·¨£º£¨°´ÕÕSERVER JOBµÄ×ö·¨£¬È»ºó¸Ä³É´®Ðз½Ê½Ò²ÄÜʵÏÖ£© 1. ʹÓÃSort Stage¶ÔKey Column£º Id ½øÐзÖÇøºÍÅÅÐò£»²¢ÉèÖÃCreate Key Change

Column=True£¨×÷ÓÃÊǵÚÒ»Ìõ¼Ç¼»á±êʶΪ1£¬ÆäËü0£©£¬²úÉúKeyChange Column£»

ÔËÐгöÀ´µÄ½á¹ûÈçÏ£º Id Column KeyChange

-- ---------- ---------- 2 Rootpath 1 2 Workdate 0 2 EdsDbname 0 3 Rootpath 1 3 Workdate 0 3 AsdmDbname 0

2. ÔÚTransform StageÀï´´½¨Stage Variable; ´´½¨±äÁ¿ºó£¬¸ù¾ÝKeyChangeµÄÖµÀ´ÉèÖñäÁ¿µÄÖµ£»È磺´´½¨±äÁ¿svBuildColum£¬

¸³Öµ£ºif DSLink12.keyChange=1 then DSLink12.Column else svBuildColumn : \ÔËÐгöÀ´µÄ½á¹ûÈçÏ£º

Individual 2007-10 7 / 64

Dastage¾­Ñé×ܽá

Id Column KeyChange svBuildColum

-- ---------- ---------- ------------------------------------------------ 2 Rootpath 1 Rootpath 2 Workdate 0 Rootpath $Workdate 2 EdsDbname 0 Rootpath $Workdate $EdsDbname 3 Rootpath 1 Rootpath 3 Workdate 0 Rootpath $Workdate 3 AsdmDbname 0 Rootpath $Workdate $AsdmDbname

3. ʹÓÃRemove_Duplicates Stage£¬¸ù¾ÝKey Colum£ºIdÈ¥³ýÖØ¸´ÐУ¬²¢Retain Last; ÔËÐеĽá¹ûÈçÏ£º

Id svBuildColum

----- ---------------------------------------------- 2 Rootpath $Workdate $EdsDbname 3 Rootpath $Workdate $AsdmDbname

4. Èç¹û°ÑsvBuildColumµÄÖµ·ÅÔÚ²»Í¬µÄ×Ö¶ÎÖУ¬Ê¹ÓÃField(NewCord, \£¬

Field(NewCord, \µÈµÈ£¬°ÑÖµ¸³¸øÃ¿¸öColm. ×îºó½á¹ûÈçÏ£º

Id Col1 Col2 Col3

2 Rootpath Workdate EdsDbname 3 Rootpath Workdate AsdmDbname 2.11 Oracle EE StageÔÚVIEWÊý¾Ýʱ³öÏֵĴíÎó¼°½â¾ö·½·¨

´íÎóÐÅÏ¢ÈçÏ£º

##I TOSH 000002 04:05:22(001) orchgeneral: loaded ##I TOSH 000002 04:05:22(002) orchsort: loaded ##I TOSH 000002 04:05:22(003) orchstats: loaded

>##E TOSH 000205 04:05:22(004) PATH search failure:

>##E TOSH 000000 04:05:22(005) Error loading \Could not load \: The specified module could not be found.

>##E TOSH 000000 04:05:22(006) Could not locate operator definition, wrapper, or Unix command for \please check that all needed libraries are preloaded, and check the PATH for the wrappers

>##E TCOS 000029 04:05:22(007) Creation of step finished with status = FAILED

½â¾ö·½·¨£º

running 7.5x2 EE on the Windows platform

1. cd to your C:\\Ascential\\DataStage\\PXEngine\\install

2. type sh

3. ORACLE_HOME=\ 4. export ORACLE_HOME

5. APT_ORCHHOME=\ 6. export APT_ORCHHOME 7. sh install.liborchoracle

Individual 2007-10 8 / 64

Dastage¾­Ñé×ܽá

then you will see the message on the screen; Installing Oracle Drvie

Using C:/Your_Oracle_Client as ORACLE_HOME Installing drive for Oracle version 9i or 10g Oracel installation is complete.

Reboot the machine after above is done

2.12 DataStage SAP StageµÄʹÓÃ

¼û¸½¼þ£º

E:\\¸öÈËѧϰ\\DataStage SAP StageµÄ

2.13 Colum Import StageµÄʹÓÃ

½«Ò»¸ö×Ö¶ÎÖеÄÊý¾ÝÊä³öµ½¶à¸ö×Ö¶ÎÖÐ, Íê³É·Ö¸îµ¥¸ö×Ö¶ÎÊý¾Ýµ½¶à¸ö×ֶεÄÄ¿µÄ;

ÊäÈëÊý¾ÝӦΪ¶¨³¤»òÕßÓпÉÒÔ±»Ê¶±ðµÄ¿É·Ö¸îµÄ½çÏÞ£¬±ØÐëÊÇString»òÕßBinaryÀàÐ͵ģ¬Êä³öÊý¾Ý¿ÉÒÔÊÇÈκÎÊý¾ÝÀàÐÍ;

Individual 2007-10 9 / 64

Dastage¾­Ñé×ܽá

×ֶηָîºó£º

Individual 2007-10 10 /

64

Dastage¾­Ñé×ܽá

2.14 Colum Export StageµÄʹÓÃ

ÓëColumn Import StageÏà·´£¬½«¶à¸öÀàÐͲ»Í¬µÄ×ֶκϲ¢³ÉÒ»¸östring»òÕßbinaryÀàÐ͵Ä×Ö¶Î

Individual 2007-10 11 /

64

Dastage¾­Ñé×ܽá

ºÏ²¢×ֶκó£º

2.15 Got ERROR: Cannot find any process number for stages in Job Jobname½â¾ö

µ±ÎÒÃÇÓÃDirectorÀ´ClearUp Resources »ò Clear Status File ʱºò£¬»á³öÏÖÉÏÃæµÄ´íÎóÌáʾ£» Ô­ÒòÊÇ£º

incorrect permissions settings.

Following correct settings were done to solve the problem: -rwsr-x--x 1 root dstage 1519616 Nov 13 2003 dsdlockd -rwsr-x--x 1 root dstage 1499136 Nov 13 2003 dslictool -rwsr-x--x 1 root dstage 3678208 Nov 13 2003 dstskup

Individual 2007-10 12 /

64

Dastage¾­Ñé×ܽá

-rwsr-x--x 1 root dstage 1519616 Nov 13 2003 list_readu -rwsr-x--x 1 root dstage 1486848 Nov 13 2003 upduvtrans -rwsr-x--x 1 root dstage 53248 Nov 13 2003 uv

-rwsr-x--x 2 root dstage 3796992 Nov 13 2003 uvbackup -rwsr-x--x 1 root dstage 49152 Nov 13 2003 uvdls

-rwsr-x--x 2 root dstage 3796992 Nov 13 2003 uvrestore -rwsr-x--x 1 root dstage 16384 Nov 13 2003 uvsetacc

Settings for all the above was found to be incorrect. dsadm was the owner instead of root and also permissions were incorrect.

2.16 Unable to create RT_CONFIGnnn

Ôì³ÉÕâÖÖÎÊÌâµÄ×îÆÕ±éµÄÁ½¸öÔ­ÒòÊÇ£º

Is the file system on which your project directory exists full£» Do you have write permission to your project directory

2.17 ²é¿´jobºÍclientµÄ¶ÔÓ¦µÄºǫ́½ø³Ì

$ps -fu dsadm

UID PID PPID C STIME TTY TIME CMD

dsadm 11779 11776 0 09:02:02 ? 0:14 phantom DSD.StageRun loadDataDayAg. loadupdIRCashIVDayAg.xfm 3 0/0

dsadm 1761 1760 2 08:56:27 ? 23:16 phantom DSD.RUN

Batch::MasterControlOrderDetail. 0 ParameterFile=/var/opt/dat ǰÕßÊÇJob stage thread£¬ºóÕßÊÇJob main thread

dsadm 29865 29863 0 Oct 25 ? 2:57 dsapi_slave 8 7 0 £¨User client database slave£©

2.18 Ç¿ÖÆÉ±ËÀDS½ø³Ì Cd $DSHOME/bin list_readu

ps ¨Cef | grep username

Individual 2007-10 13 /

64

Dastage¾­Ñé×ܽá

2.19 ²é¿´Server EngineµÄ½ø³Ì

$netstat -a|grep uv or $netstat -a|grep dsrpc

*.uvrpc *.* 0 0 24576 0 LISTEN------Daemon listener ...... ...................ESTABLISHED------Clients attached

$ ipcs ------Shared memory usage

$ ps -ef |grep uni------Engine daemon

root 12970 1 0 Oct 09 ? 0:11 /opt/Ascential/DataStage/unishared/unirpc/unirpcd-----Engine daemon

2.20 ²é¿´Server Locks

$ cd `cat /.dshome` $ . ./dsenv

$ bin/uvsh------DSEngine command prompt ÉÏÃæµÄ²Ù×÷µÈͬÓÚDataStage

Adminitratot--->Projects(tab)--->Command(button) >DS.TOOLS

Individual 2007-10 14 /

64

Dastage¾­Ñé×ܽá

Verb \ >LOGTO yourprojectname >DS.TOOLS

Which would you like? ( 1 - 6 ) ?5 Which would you like? ( 1 - 11 ) ?4 >LISTU----Users in DataStage

>LIST.READU----List lock table command ÉÏÃæ²Ù×÷µÈͬÓÚ$DSHOME/bin/list_readu >QUIT

ͬÑù£¬Ôڲ鿴job pid¼°locksÒ²¿ÉÒÔͨ¹ýdatastage director--->Jobs--->Clearup Resources 4,DataStage Filesystem Mount Points $ cd `cat /.dshome` $ df -k .

5,DataStage Engine Daemon $ cd /etc/rc2.d $ more S999ds.rc

2.21 ¹ØÓÚUNIXϵͳÏÂÎÞ·¨Æô¶¯·þÎñµÄ½â¾ö°ì·¨ ÔÚÕï¶ÏÆô¶¯Ê§°ÜµÄÔ­Òò֮ǰ£¬ÏÈ˵˵ÈçºÎÍ£Ö¹·þÎñ¡£

ÆôÍ£·þÎñµÄÃüÁî´ó¼Ò¶¼ÖªµÀ£¬Òª×¢ÒâµÄÊÇÍ£Ö¹·þÎñ֮ǰӦÏÈÈ·±£ÎÞclientÁ¬½Ó¡¢ÎÞ¶Ë¿ÚÁ¬½Ó:

1. ʹÓÃps -ef|grep ds ²é¿´clientÁ¬½ÓÇé¿ö£¬Èç¹û»¹ÓÐclientÁ¬½Ó£¬ÄãÓÖÎÞ·¨²éÕÒÊÇË­,

¼±ÐèÖØÆô£¬¿ÉÒÔͨ¹ýdirector½«ËùÓеÄÁ¬½Ólog off

2. ʹÓÃnetstat -a|grep dsrpc ²é¿´ÍøÂ·Á¬½Ó×´¿ö£¬È·±£Ö»ÓÐlisten״̬ ÕâÑù£¬½«·þÎñÍ£Ö¹£¬»áºÜ˳ÀûµÄÖØÆô·þÎñ¡£

µ±Ö´ÐÐÍêÖØÆôÃüÁîºó£¬Ê¹ÓÃps -ef|grep dsrpcd ²é¿´·þÎñÊÇ·ñÆô¶¯£¬Èç¹û´Ë·þÎñûÓÐÆô¶¯£¬²é¿´£º

1. ps²é¿´ÓÐÎÞclientÁ¬½Ó£¬É±µô½ø³Ì¡£

2. netstat²é¿´ÍøÂçÇé¿ö£¬ÓÐÎÞFIN_WAIT_2 or CLOSE_WAITµÈµÄtcp״̬£¬Èç¹ûÓУ¬

ÔòʹÓÃndd ÃüÁîµ÷ÕûdatastageµÄ¶Ë¿ÚÁ¬½Ó£¬ ·½·¨ÈçÏ£¨Èçhp-unix£©£º

²éÕÒ½ø³ÌºÅ£ºndd -get /dev/tcp tcp_status |grep -e state -e FIN_WAIT_2 ¶Ï¿ªÁ¬½Ó£¬ÊͷŶ˿ڣºndd -set /dev/tcp tcp_discon 0x+½ø³ÌºÅ

Individual 2007-10 15 /

64

Dastage¾­Ñé×ܽá

Èç¹ûÉÏÊöÇé¿ö¶¼ºËʵºó£¬ÈÔÆô¶¯Ê§°Ü

ÇëʹÓà \À´Æô¶¯·þÎñ£¬ÔÚ dsrpcd.log ÎļþÖп´µ½Æô¶¯ÈÕÖ¾ÐÅÏ¢£¬¸ù¾Ýʵ¼ÊÇé¿ö½â¾ö¡£

2.22 Locked by other user

Æô¶¯DataStag Director £¬Job---->Clearup Resources,ÔÚÕâ¸ö²Ù×÷´°¿ÚÖУ¬Ê×ÏÈÑ¡Ôñ´°¿Úϲ¿ \ÖеÄ\Äã¿ÉÒÔ¿´µ½´°¿ÚÏÔʾÁËËùÓÐlockµÄÐÅÏ¢£ºPID£££­£­£­£­Lock Type£­£­£­£­Item Id¡£ÔÚItem IdµÄÁбíÀïÕÒµ½ÄãÐèÒªÖØÐ´ò¿ªµÄjob/routineºÍÆä¶ÔÓ¦µÄPID££Öµ¡£È»ºóÑ¡ÔñÉϰ벿·Ö\ÖеÄ\All\Êó±êÑ¡ÖиղŲ鵽µÄPID£££¬È»ºóLogOut¡£ Èç¹û²»Ê¹ÓÃDiretor£¬Äã¿ÉÒÔÔÚDS administratorÖÐʹÓÃ\»òÕß\command£¬Í¬Ñù»áÁгöËùÓеÄlockÐÅÏ¢¡£That's Ok!

2.23 dataStage Job LogµÄ´¦Àí

ÈçºÎÔÚ²Ù×÷ϵͳ²ãÃæÉÏ£¬Ê¹ÓÃcommandµÄµ½job log£¿

ÔÚ²Ù×÷ϵͳÖÐÎÒÃÇ¿ÉÒÔʹÓÃengine(UNIX DSEngine)/bin ϵÄÃüÁ dsjob -log [-info | -warn]

dsjob -logsum [-type] [-max ] [-userid]

dsjob -lognewest [-userid] []

event type = INFO|WARNING|FATAL|REJECT|STARTED|RESET|BATCH

dsjob -logdetail [useid] ¿ÉÒԱ༭shell»òÕßbatÎļþ£¬½«ËùÓеÄjob logÊä³ö¡£ ÔÚdatastageÄÚ²¿ÓÐÆäÏàÓ¦µÄfunction£º DSGetLogEntry DSGetLogSummary DSGetNewestLogId

2.24 һЩBASICÓïÑÔÖд¦Àí×Ö·û´®µÄº¯Êý

Individual 2007-10 16 /

64

Dastage¾­Ñé×ܽá

a

ʹÓÃðºÅ\£º\×÷Ϊ×Ö·û´®Á¬½ÓµÄ·ûºÅ¡£

ÀýÈ磺\µÈ¼ÛÓÚ×Ö·û´® \ ʹÓÃÖÐÀ¨ºÅ[ ]À´È¡³öij¸ö×Ö·û´®µÄ×Ó´®£¬ÆäÓï·¨ÈçÏ£º

expression [ [ start, ] length ]

ÀýÈ磺strA=\ÄÇôstrA[1,3]µÄÒâ˼¾ÍÊÇ´ÓÐòºÅΪ1µÄ×Ö·û¿ªÊ¼£¬Ò»¹²È¡³öÈý¸ö×Ö·û£¬Æä½á¹û¾ÍÊÇ\¡£BASICÓïÑÔÖÐÊý×é»òÕß×Ö·û´®µÄµÚÒ»¸öÔªËØµÄÐòºÅÊÇ1¡£

b

c

Count (string, substring)ÓÃÀ´¼ÆËã×Ö·û´®ÖеÄij¸ö×Ó´®³öÏֵĴÎÊý¡£

ÀýÈ磺¼ÆËã×Ö·û´®\ÖеÄ×Ó´®\³öÏֵĴÎÊý£¬arrCnt = Count(\\£¬ÄÇôarrCnt¾ÍµÈÓÚ2¡£

Len (string) ÓÃÀ´¼ÆËã×Ö·û´®Öаüº¬µÄ×Ö·ûµÄ¸öÊý¡£ ÀýÈ磺Len(\µÄÖµ¾ÍÊÇ3¡£

TRIMF (string) ÓÃÀ´É¾µô×Ö·û´®Êײ¿µÄ¿Õ¸ñ¡£ TRIMB (string) ÓÃÀ´É¾µô×Ö·û´®Î²²¿µÄ¿Õ¸ñ¡£ ÀýÈ磬×Ö·û´®strA=\£¬ÆäÊ×β¸÷Óжà¸ö¿Õ¸ñ¡£¾­¹ýstrA= TRIMF (strA)ºÍstrA= TRIMB (strA)ÕâÑùµÄ´¦Àí¾Í¿ÉÒÔ³ýµô×Ö·û´®Ê×βµÄËùÓпոñÁË£¬Æä½á¹ûÊÇ\¡£ Index (string, substring, instance) ÓÃÀ´µÃµ½×Ö·û´®ÖеÄij¸ö×Ó´®µÄλÖá£ÆäÖÐinstance±íʾÕâ¸ö×Ó´®ÊÇÔÚÕû¸ö×Ö·û´®ÖÐÊǵڼ¸´Î³öÏÖ¡£

ÀýÈ磺×Ö·û´®Îª\£¬Òª¼ÆËã×Ó´®\µÚ¶þ´Î³öÏÖÔÚ×Ö·û´®ÖеÄλÖá£Index (\µÄ½á¹û¾ÍÊÇ5¡£

d

e

f

2.25 BASIC³ÌÐòÖÐʹÓõ½µÄһЩÓ﷨֪ʶ

(1). BASICÓïÑÔÓÐËÄÖÖ·ûºÅÓÃÀ´±ê¼Ç×¢ÊÍ£¬·Ö±ðÊÇREM£¬*£¬! £¬$*¡£ÀýÈ磬

*Initial. Validate the input parameters.

ÕâÒ»ÐÐÒÔ\ÐǺſªÍ·£¬¾Í±íʾÕâÒ»ÐÐÄÚÈÝÊdzÌÐòµÄ×¢ÊÍ¡£

(2). Ìõ¼þÅжÏÓï¾ä£¬ÆäÓï·¨½á¹¹ÈçÏ£º

If condition Then statements End

[Else statements End]

ÆäÖÐcondition¿ÉÒÔÊÇÒ»¸öÊý×Ö£¬Ò²¿ÉÒÔÊÇÒ»¸ö±È½Ï¹ØÏµÊ½¡£µ±Ìõ¼þÎªÕæÊ±£¬³ÌÐòÖ´ÐÐThenºóÃæµÄ±í´ïʽ£»µ±Ìõ¼þΪ¼Ùʱ£¬Ôò»áÖ´ÐÐElseºóÃæµÄ±í´ïʽ¡£ÔÚBasicÓïÑÔÖУ¬Âß¼­¹ØÏµÔËËã·ûÊÇÕâÑùµÄ£º

? AND (»òÕß·ûºÅ &)£¬±íʾÂß¼­ÓëµÄ¹ØÏµ¡£

Individual 2007-10 17 /

64

Dastage¾­Ñé×ܽá

? ?

ÀýÈ磺

OR (»òÕß !)£¬±íʾÂß¼­»òµÄ¹ØÏµ¡£ NOT£¬±íʾÂß¼­·ÇµÄ¹ØÏµ¡£

If bitCount > arrCnt Then

Ans=\ Call DSLogWarn(Ans,\ GoTo ExitFunc End

ÓÉBitValueת»¯¶øÀ´µÄ¶þ½øÖÆÊýµÄλÊý´óÓÚ×Ó´®µÄ¸öÊýʱ£¬¾ÍÔÚÈÕÖ¾ÐÅÏ¢ÖиæËßÓû§BitValueµÄÖµºÍOriStrµÄÖµÊDz»¿ÉÄÜÒ»Ò»¶ÔÓ¦µÄ£¬ÊäÈëµÄÊý¾ÝÓдíÎó¡£

If BitValue >= 0 AND Count(BitValue, \ mask=Oconv(BitValue, \End Else

Ans=\ Call DSLogWarn(Ans,\ GoTo ExitFunc End

µ±ÊäÈë±äÁ¿BitValueµÄÖµ´óÓÚÁãÇÒ²»ÊÇСÊýµÄʱºò£¬¾Í°ÑËüת»¯Îª¶þ½øÖƵÄÊý£»·ñÔòΪÓû§Ìá³ö¾¯¸æÐÅÏ¢²¢ÇÒÀ뿪Õâ¸öº¯Êý¡£

(3). ʹÓÃBASIC×Ô´øµÄһЩ¹¦Äܺ¯Êý¡£

Oconv(expression, conversion)

ÆäÖÐexpression±íʾһ¸ö×Ö·û´®£¬conversionÔò±íʾÕâ¸ö×Ö·û´®µÄÊä³ö¸ñʽ¡£ Oconv(\µÄ¹¦ÄÜÊǰÑÊ®½øÖÆÊý\£¬×ª»¯Îª¶þ½øÖÆÊý\£»¶ø Oconv(\µÄ¹¦ÄÜÊǰÑÊ®½øÖÆÊý\µÄСÊýµã×óÒÆÒ»Î»£¬×ª»¯Îª\¡£ DSLogInfo (Message, CallingProgName)ºÍDSLogWarn (Message, CallingProgName) µÄ¹¦ÄÜÊ®·ÖÏàËÆ£¬¶¼ÊÇÔÚÖ´ÐÐServer JobµÄʱºò£¬ÊäÈëһЩ±ØÒªµÄÈÕÖ¾ÐÅÏ¢£¬°ïÖúÓû§Á˽â³ÌÐòµÄÖ´ÐÐÇé¿ö¡£ÆäÖÐMessageΪÊä³öµÄÈÕÖ¾ÐÅÏ¢µÄÄÚÈÝ£¬CallingProgName¾ÍÊǵ÷ÓÃÕâ¸öº¯ÊýµÄ³ÌÐòÃû¡£Çø±ðÔÚÓÚDSLogInfoÊä³öµÄ½ö½öÊÇÆÕͨµÄÈÕÖ¾ÐÅÏ¢£¬¶øDSLogWarnÔòÊÇÊä³öһЩ¾¯¸æµÄÐÅÏ¢¸øÓû§¡£

ÀýÈ磺

Ans=\Call DSLogWarn(Ans,\

Call DSLogInfo(\

(4). Á½ÖÖÑ­»·Ìõ¼þÓï¾ä

a). For¡­NextÓï¾ä£¬Æä»ù±¾Óï·¨ÈçÏ£º

For variable = start To end [Step increment] [loop.statements] Next [variable]

ÆäÖÐstart To end¶¨ÒåÁ˱äÁ¿±ä»¯µÄÇø¼ä£»¶øincrement¶¨ÒåÁËÿ´Î±äÁ¿Ôö¼ÓµÄÖµ£¬µ±startµÄÖµ´óÓÚendµÄÖµ£¬incrementµÄÖµ¿ÉÒÔÊǸºÊý¡£

For num = 1 To arrCnt - bitCount mask = \

Individual 2007-10 18 /

64

Dastage¾­Ñé×ܽá

Next num

Èç¹û¶þ½øÖÆÊýµÄλÊýСÓÚ×Ó´®µÄ¸öÊý£¬ÔòÔÚ¶þ½øÖÆÊýmaskµÄÇ°Ãæ²¹ÉÏ\¡£±ÈÈ磬OriStrÖÐÓÐÈý¸ö×Ó´®\£¬BitValueµÄֵΪ2£¬°ÑÊ®½øÖƵÄÊý\ת»¯Îª¶þ½øÖƵÄÊý\¡£Õâʱ£¬¶þ½øÖÆÊýµÄλÊýСÓÚ×Ó´®µÄ¸öÊý£¬¾ÍÐèÒªÔÚ¶þ½øÖÆÊýÇ°Ãæ²¹ÉÏ\£¬Ê¹Æä±ä³É\²ÅÄܺÍÈý¸ö×Ó´®Ò»Ò»¶ÔÓ¦ÆðÀ´¡£

b). Loop¡­RepeatÓï¾ä£¬Æä»ù±¾Óï·¨ÈçÏ£º

Loop

[statements]

[While | Until condition Do] [statements] Repeat

ÆäÖУ¬Loop¶¨ÒåÁËÑ­»·µÄ¿ªÊ¼£¬Repeat¶¨ÒåÁËÑ­»·µÄ½áÊø¡£

While condition Do µÄº¬ÒåÊÇ£¬µ±Ìõ¼þÎªÕæµÄʱºòÖ´ÐÐÑ­»·ÌåÖеĴúÂë¡£µ±Ìõ¼þΪ¼ÙµÄʱºò£¬Í˳öÑ­»·¡£ Until condition Do µÄº¬ÒåÕýºÃÏà·´£¬µ±Ìõ¼þΪ¼ÙµÄʱºòÖ´ÐÐÑ­»·ÌåÖеĴúÂë¡£µ±Ìõ¼þÎªÕæµÄʱºòÔòÍ˳öÑ­»·¡£ ÀýÈ磺

pos = 1 start = 1 Ans=\ Loop

While pos <= arrCnt Do

idx = Index(proStr,separator,pos)

If mask[pos,1] = \

subStr = proStr[start,idx - start]

subStr=trim(subStr)

*make sure every substring matches the specified pattern If subStr match \ Ans=Ans:\ End Else

Ans=\ Call DSLogWarn(Ans,\ GoTo ExitFunc End

End

start = idx+1 pos+=1

Individual 2007-10 19 /

64

Dastage¾­Ñé×ܽá

Repeat

Õâ¶Î´úÂëµÄ¹¦ÄÜÊÇ´ÓÊäÈëµÄ×Ö·û´®ÖаÑÿһ¸ö×Ó´®·ÖÀë³öÀ´£¬È»ºóÅжÏÿһ¸ö×Ó´®¶ÔÓ¦µÄ¶þ½øÖÆÊýÖеÄÖµÊÇ·ñΪ\¡£Èç¹ûÆä¶ÔÓ¦µÄÊýÊÇ\£¬¾ÍÖ±½Ó½øÐÐÏÂÒ»¸öÑ­»·È¥´¦ÀíÏÂÒ»¸ö×Ó´®¡£Èç¹ûÆä¶ÔÓ¦µÄÊýÊÇ\Ôò¼ÌÐøÅжÏÕâ¸ö×Ó´®ÊÇ·ñ·ûºÏÃüÃûµÄ¹æÔò£¬Èç¹û·ûºÏ¾Í°Ñ×Ó´®Ìí¼Óµ½Êä³ö×Ö·û´®ÖУ»Èç¹û²»·ûºÏ¹æÔò¾ÍÔÚÈÕÖ¾ÐÅÏ¢ÖÐÌáʾÓû§ÊäÈëµÄ×Ö·û´®ÓдíÎó£¬Ö®ºóÌø³öÑ­»·¡£

ÔÚÑ­»·Óï¾äÖпÉÒÔʹÓÃÁ½¸öÓÃÀ´¿ØÖÆÑ­»·µÄ¹Ø¼ü×ÖContinueºÍExit£ºContinueÓÃÀ´½áÊø±¾´ÎÑ­»·£¬½øÐÐÏÂÒ»´ÎÑ­»·£»¶øExitµÄ¹¦ÄÜÊÇÍ˳öµ±Ç°Ñ­»·¡£ (5). һЩBASICÓïÑÔÖд¦Àí×Ö·û´®µÄº¯Êý¡£

? ?

ʹÓÃðºÅ\£º\×÷Ϊ×Ö·û´®Á¬½ÓµÄ·ûºÅ¡£

ÀýÈ磺\µÈ¼ÛÓÚ×Ö·û´® \ ʹÓÃÖÐÀ¨ºÅ[ ]À´È¡³öij¸ö×Ö·û´®µÄ×Ó´®£¬ÆäÓï·¨ÈçÏ£º expression [ [ start, ] length ]

ÀýÈ磺strA=\ÄÇôstrA[1,3]µÄÒâ˼¾ÍÊÇ´ÓÐòºÅΪ1µÄ×Ö·û¿ªÊ¼£¬Ò»¹²È¡³öÈý¸ö×Ö·û£¬Æä½á¹û¾ÍÊÇ\¡£BASICÓïÑÔÖÐÊý×é»òÕß×Ö·û´®µÄµÚÒ»¸öÔªËØµÄÐòºÅÊÇ1¡£

? Count (string, substring)ÓÃÀ´¼ÆËã×Ö·û´®ÖеÄij¸ö×Ó´®³öÏֵĴÎÊý¡£

ÀýÈ磺¼ÆËã×Ö·û´®\ÖеÄ×Ó´®\³öÏֵĴÎÊý£¬arrCnt = Count(\£¬ÄÇôarrCnt¾ÍµÈÓÚ2¡£

? ?

Len (string) ÓÃÀ´¼ÆËã×Ö·û´®Öаüº¬µÄ×Ö·ûµÄ¸öÊý¡£ ÀýÈ磺Len(\µÄÖµ¾ÍÊÇ3¡£

TRIMF (string) ÓÃÀ´É¾µô×Ö·û´®Êײ¿µÄ¿Õ¸ñ¡£ TRIMB (string) ÓÃÀ´É¾µô×Ö·û´®Î²²¿µÄ¿Õ¸ñ¡£

ÀýÈ磬×Ö·û´®strA=\£¬ÆäÊ×β¸÷Óжà¸ö¿Õ¸ñ¡£¾­¹ýstrA= TRIMF (strA)ºÍstrA= TRIMB (strA)ÕâÑùµÄ´¦Àí¾Í¿ÉÒÔ³ýµô×Ö·û´®Ê×βµÄËùÓпոñÁË£¬Æä½á¹ûÊÇ\¡£

? Index (string, substring, instance) ÓÃÀ´µÃµ½×Ö·û´®ÖеÄij¸ö×Ó´®µÄλÖá£ÆäÖÐinstance±íʾÕâ¸ö×Ó´®ÊÇÔÚÕû¸ö×Ö·û´®ÖÐÊǵڼ¸´Î³öÏÖ¡£

ÀýÈ磺×Ö·û´®Îª\£¬Òª¼ÆËã×Ó´®\µÚ¶þ´Î³öÏÖÔÚ×Ö·û´®ÖеÄλÖá£Index (\\µÄ½á¹û¾ÍÊÇ5¡£

(6). ¶ÁÕß¿´µ½´úÂëÖеÄÕâÒ»ÐÐsubStr match \£¬Ò²Ðí»á¾õµÃÃÔ»ó£¬ÏÂÃæ¾ÍÖØµã½²½âÒ»ÏÂBASICÓïÑÔÖеÄģʽƥÅ乿Ôò(Pattern Matching)¡£ ±í1. DataStage BASICÓïÑÔÖеÄģʽƥÅ乿Ôò ģʽÃû ¡­ 0X nX 0A nA 0N nN 'string' ~ º¬Òå ÈÎÒâÀàÐÍÈÎÒâ¸öÊýµÄ×Ö·û ÈÎÒâÀàÐÍÈÎÒâ¸öÊýµÄ×Ö·û n¸öÈÎÒâÀàÐ͵Ä×Ö·û ÈÎÒâ¸öÊýµÄ×Öĸ n¸ö×Öĸ ÈÎÒâ¸öÊýµÄÊý×Ö n¸öÊý×Ö µ¥ÒýºÅ»òÕßË«ÒýºÅÖаüº¬µÄ¾ßÌå×Ö·û´® ²»Æ¥ÅäijÖÖģʽ Individual 2007-10 20 /

64

Dastage¾­Ñé×ܽá

\ģʽ¾ÍÊÇÏÞÖÆ×Ö·û´®Ö»Äܰüº¬°Ë¸ö×Ö·û£¬²¢ÇÒǰÎå¸ö×Ö·û±ØÐëÊÇ×Öĸ£¬µÚÁù¸ö×Ö·ûÊÇÏ»®Ïß\£¬×îºóÁ½¸ö×Ö·û±ØÐëÊÇÊý×Ö¡£×Ö·û´®\ÄÜÆ¥ÅäÉÏÕâÖÖģʽ£¬¶ø×Ö·û´®\»òÕß\¶¼²»Âú×ãÕâÖÖ¸ñʽҪÇó¡£

Èç¹û¹æÔò±ä³É\£¬Õâ¸öģʽ¾ÍÊÇÏÞÖÆ×Ö·û´®µÄǰÎå¸ö×Ö·û±ØÐëÊÇ×Öĸ£¬µÚÁù¸ö×Ö·ûÊÇÏ»®Ïß\£¬¶ø×îºóÁ½¸ö×Ö·û±ØÐëÊÇ·ÇÊý×ÖµÄ×Ö·û£¬ÀýÈ磺\ÄܺÍÕâ¸ö¹æÔòÆ¥ÅäÉÏ¡£Õâʱ£¬×Ö·û´®\²»ÔÙ·ûºÏйæÔòµÄÒªÇó£¬×Ö·û´®\Ò²²»ÄÜÂú×ãÒªÇó¡£

(7)£®¶Ô±àдºÃµÄ´úÂë½øÐбàÒë¡£Óû§Ö»ÐèÒªµã»÷ͼ8ÖеıàÒë(Compile)°´Å¥¼´¿É£¬±àÒëµÄ½á¹û³öÏÖÔÚNew Server Routine±à¼­´°¿ÚÖÐCode±êÇ©Ò³ÃæµÄϲ¿ÇøÓòÄÚ¡£Ê¹ÓñàÒëÆ÷¶Ô³ÌÐò½øÐбàÒë²»½ö¿ÉÒÔ°ïÖúÓû§¼ì²é³ÌÐòÖÐDZÔÚµÄÓï·¨´íÎ󣬸üÖØÒªµÄÊÇ£¬±àÒë³É¹¦ºóµÄÔ´´úÂ뽫ת»¯Îª¿ÉÖ´ÐеĶÔÏó´úÂë(object code)¡£

3 DSÖг£¼ûÎÊÌâ¼Ç¼

3.1 ȨÏÞ¹ÜÀíÎÊÌâ

DATASTAGE¿ª·¢È¨ÏÞÉÏ´¦Àí£¬·ÇDSTAGE×éÓû§ÎÞ·¨µÇ½DS£¬Èç¹û½«Æä·ÅÈëDSTAGE×飬ÓÉÓÚDSÊǸù¾Ý×éÀ´¿ØÖÆÈ¨ÏÞËùÒÔ»áÔì³É¿ÉÒÔ·ÃÎÊÆäËûproject¡£ÈçºÎ´¦Àí·ÇDSTAGE×éµÄÓû§ÊÚȨ£¬ÈÃÆäÖ»·ÃÎÊ×Ô¼ºµÄproject £¿ ´ð£º

ÏȽ¨Á¢Ò»¸ö×飬ÔÚ½¨Á¢Ò»¸öuser,½«¸ÃÓû§·ÅÔÚ¸Ã×éÖУ¬È»ºó¸ø../Ascential/DataStageĿ¼ÏµÄDSEngineºÍPXEngine.751.1¡¢PXEngine.751.2¡¢PXEngine¡¢DSParallel¡¢ScratchĿ¼°üÀ¨Æä×ÓĿ¼¸³£·£·£·È¨ÏÞ£¬ÊÕ»ØprojectĿ¼ÏÂµÄÆäËûÏîÄ¿µÄ¿É¶ÁȨÏÞ¡£¼ÙÉè¸ÃÓû§Ö»ÄÜ·ÃÎÊtrainingÕâÏîÄ¿£¬ÄÇô¸ø¸ÃÏîÄ¿¸³¿É¶ÁдȨÏÞ¡£

Ìí¼ÓdatastageÓû§£º ½øÈësmit 3.2 job may be being monitored»òÕßÊÇcleanupÎÊÌâ

ÔÚdatastageÖÐÓÐÒ»¸öjobÃûΪN_Cv_DataStore_TT_PART_LEND_ITEMºÍN_Cv_ServiceLink_TT_SGM_PT_ADVANCERATE²»¿ÉÒÔ±àÒ룬±¨job may be being monitored,µ«ÊÇÕÒ²»µ½Èκνø³ÌÔÚµ÷ÓøÃjob. ´ð£º

ÔÚDirectorÖÐÑ¡ÖиÃJob£¬µ½²Ëµ¥ÖÐÑ¡ÔñJob--Clear Status File¼´¿É½â¾ö¡£

3.3 ɾ³ýÎļþµÄÎÊÌâ

»áÓÐÒªÊÖ¶¯ÇåÀíÈÕ־״̬ÎļþµÄÇé¿ö³öÏÖ

Cannot get exclusive access to executable file for job I_Cv_DOL_TM_ORG_TYPE - job may be being monitored. Ôõô½â¾ö£¿ ´ð£º

Individual 2007-10 21 /

64

Dastage¾­Ñé×ܽá

Èç¹ûÇå³ý²»³É¹¦£¬¿ÉÒÔʹÓøü¸ßȨÏÞµÄÓû§½øÐÐÇå³ý¡£

3.4 sequenceµ÷¶È³öÏֵĴíÎóÎÊÌâ

ÊÖ¶¯±àÒëÏà¹ØJOBºó£¬ÓеÄJOBµÄʧ°ÜÒòΪÏÂÃæÕâ¸ö´íÎó¡£ GC job ÏÔʾFINISH µ«SC JOBÏÔʾ finish(see log) ÀïÃæµÄ´íÎóÌáʾÊÇ£º

I_Ss_Source_DOL..JobControl (fatal error from @Coordinator): Sequence job will abort due to previous

unrecoverable errors¡£

a. CNTR_WDolTmOrgTypeCif,0: Unable to run job - -2. ´ð£º

ÊÇÓÉÓÚϵͳ×ÊÔ´²»¹»ÒýÆð£¬½¨Òé¼õÉÙ²¢ÐÐÔËÐеÄjob¸öÊý ¡£

3.17 ×Ö·û¼¯ÎÊÌâ

DataStageÈ«¾Ö×Ö·û¼¯ÉèΪUTF-8£¬³éÈ¡Oracle GB2312×Ö·û¼¯µÄÊý¾ÝÔ´¡¢SQL Server GB2312×Ö·û¼¯µÄÊý¾ÝÔ´¼°GB2312×Ö·û¼¯µÄCSV¸ñʽÎı¾ÎļþʱÎÞ·¨Õý³£´¦Àí £¿ ´ð£º

²ÉÓÃGBK×Ö·û¼¯ ¡£ 3.18 VersionControlµÄÎÊÌâ

½«¿ÉÒÔÕý³£ÔËÐеÄJOBÌá½»µ½VersionControlºó£¬ÔÙ´ÓVersionControlÌá½»µ½167ÉÏÔËÐУ¬³ÌÐò±¨NLS Mapping errorµÄWarning,ÖÐÎÄ×Ö·û»á±äΪÂÒÂë¡£ ÀýÈ磺167ÉϵÄJOB N_Tr_EDS_TI_SWA_CLAIMS_ORIGIN_02

167ÉϵŤ³ÌSGMEDWÓë¶ÔÓ¦µÄVersionControl¹¤³ÌVERSION_EDSµÄNLS¶¼ÒѾ­ÉèÖóÉÒ»Ö¡£

ERROR LOG:

N_Tr_EDS_TI_SWA_CLAIMS_ORIGIN_02.0.CNTR_WEdsTiSwaClaimsOriginLdf.SF_TI_SWA_CLAIMS_ORIGIN_LDF.LK01: nls_map_buffer_out() - NLS mapping error, row 1 (approx), row = \\\\\\ \

\ 0. 0.00 8.070200000 0.00 \\\\\\\\\\CHANGE OIL\\ 00000000. 00000000. \\ 00006476. 00010416. 0.00 0.00 \\91.19 735.93 \´ð£º

Á½Õß°æ±¾²»Ò»ÖÂÔì³ÉµÄ£¬¿ª·¢»úÆ÷ÉÏDATASTAGE°æ±¾Îª7.5.1AÉý¼¶µ½7.5.2°æ±¾¾ÍûÎÊÌâÁË¡£

Individual 2007-10 22 /

64

Dastage¾­Ñé×ܽá

3.19 sequenceµ÷²»ÆðJOBµÄÎÊÌâ

Sequence Job µ÷²»ÆðÏà¹ØµÄ JOB

´íÎóÌáʾ£º I_Ss_Source_Fo08..JobControl (@Fo08_TM_VEHICLE_PRODUCT): Controller problem: Error calling DSRunJob(I_Gc_Fo08_TM_VEHICLE_PRODUCT), code=-99 [General repository interface 'other error'] ´ð£º

´¦Àí·½·¨£º±àÒëÖØÅÜ ¡£

3.20 sequenceµ÷¶Èʧ°ÜµÄÎÊÌâ

Sequence Job ×Ô¶¯Ê§°Ü

´íÎóÌáʾÈçÏ£º Job control process (pid 835698) has failed ´¦Àí·½·¨£º±àÒëÖØÅÜ

3.21 ÓÃstageµ÷Óô洢¹ý³ÌÔËÐÐʧ°ÜµÄÎÊÌâ

ÎÊÌâÃèÊö£º×î³õÓÃetlmainÕʺÅÔÚÊý¾Ý¿âÖд´½¨ÁËÒ»¸ö´æ´¢¹ý³Ì£¬È»ºóÓÃstageÀ´µ÷ÓúÜÕý³££»ºóÀ´etlmainÕâ¸öÕʺű»É¾³ýµôÁË£¬È»ºóÔÚÓÃÆäËûÕʺÅÀ´µ÷ÓÃÕâ¸ö´æ´¢¹ý³ÌµÄʱºò¾Í±¨ÈçϽØÍ¼ÉϵĴíÎó(¾¡¹ÜÆäËûÕʺŶÔÕâ¸ö´æ´¢¹ý³ÌÓµÓеÄȨÏÞºÍetlmainÒ»Ñù)£¡

Individual 2007-10 23 /

64

Dastage¾­Ñé×ܽá

½â¾ö·½·¨£º

Óõ±Ç°´æÔÚµÄÕʺÅÖØÐ±àÒëetlmain´´½¨µÄÏà¹Ø´æ´¢¹ý³Ì(Ëùν±àÒëÆäʵ¾ÍÊÇɾ³ýÖØ½¨)£¬È»ºóÔÙµ÷ÓþÍûÓÐÎÊÌâÁË¡£½¨ÒéÔÚ´´½¨´æ´¢¹ý³ÌµÄʱºòÓø߼¶±ðÕʺÅÈ¥´´½¨£¬ÀýÈçrootÕʺţ¬ÒòΪ´æ´¢¹ý³ÌµÄÊôÖ÷ÕʺÅÒ»µ©±»É¾³ý£¬ÄÇô´æ´¢¹ý³ÌÒ²¾ÍÐèÒªÖØ½¨ÁË£¡ 3.22 DS·¢ËÍÓʼþµÄÅäÖÃÎÊÌâ

DSÖз¢ËÍÓʼþÐèÒª×öÄÄЩÅäÖã¿ ´ð£º

DataStage·¢ËÍÓʼþµÄ»úÖÆÔÚwindowsƽ̨ºÍUnixƽ̨ÊDz»ÏàͬµÄ¡£

ÔÚwindowsƽ̨£¬datastageÄÚÖÃÁËÒ»¸öС³ÌÐò½Ðdssmtpmail.exe,ͨ¹ý´Ë³ÌÐò¿ÉÒÔ·¢ËÍÓʼþ¡£ ÔÚUNIXƽ̨DataStageͨ¹ýµ÷ÓÃ/usr/lib/sendmailÀ´·¢ËÍÓʼþ¡£

½â¾ö·½·¨£ºÐ轫SGMµÄSMTP·þÎñÆ÷µØÖ·¼ÓÈëETLµÄ·þÎñÆ÷µÄSMTPµØÖ·ÁбíÖÐ

ÀýÈç,ÔÚAIX»·¾³ÖеÄÅäÖÃÈçÏ£º DataStage ·¢ÓʼþÉèÖÃ

/etc/mail/ sendmail.cf ²ÎÊý

Individual 2007-10 24 /

64

Dastage¾­Ñé×ܽá

DSsmtp:[210.75.71.180] dssendmail_template.txt

* On UNIX to run sendmail, the template looks like this (doesn't require a section): #! /bin/sh

/usr/lib/sendmail -t <

Subject: %subject% Server: %server% %body%

3.23 Ëæ»ú´íÎóÎÊÌâ

DataStage Sequence³ÌÐòËæ»ú´íÎ󣬴íÎóÊÇÕÒ²»µ½/tmpĿ¼ÏµĸÃJOBµÄÁÙʱÎļþ£¬ÖØÐ±àÒëºóÕý³£Run,´íÎóÃèÊö:

I_Tr_EDS_TM_DOL_BRAND.#0.CNTR_WEdsTmDolBrandLdf_ins.LK05-Input.LK01: ds_ipcopen() - Error in open(/tmp/ade.SGMEDW.I_Tr_EDS_TM_DOL_BRAND.#0.CNTR_WEdsTmDolBrandLdf_ins.LK05-Input) - No such file or directory

½â¾ö·½·¨£º

ĿǰÐÞ¸ÄÁËÒÔϲÎÊý£¬Á¬ÐøÁ½Ììδ·¢ÏÖËæ»ú´íÎó£º

1.APT_MONITOR_SIZE to 100000 and APT_MONITOR_TIME to 5 2.¿ÉÄÜÊÇÒòΪÔÚParallel JobÖÐʹÓÃÁËServer Share Containerµ¼Öµģ¬ ´ò¿ªProject Property

È·±£ÒѾ­Ñ¡ÔñEnable row buffer,²¢ÇÒÑ¡ÔñInter process ×îÖÕÈ·ÈϵÄÔ­Òò£º

1.Default.appÉèÖõIJ¢ÐнڵãÊýΪ4£¬ÄǶÔÓÚÒ»¸öStage¾Í»áÆð4¸ö½ø³Ì£¬stage¹ý¶à»áµ¼ÖÂ×ÊÔ´ºÄ¾¡ ½â¾ö·½°¸£º

1.¾¡Á¿½µµÍ²¢·¢¶È

2.Ê×ÏȲÉÓÃ1¸ö½ÚµãÔËÐУ¬´ýÎȶ¨ºóÖð²½Ôö¼Ó½ÚµãÊý£¬Ò²¿É¶Ô¸´ÔÓJOB½øÐÐ 3.24 DSÖеÄÈÕÆÚÎÊÌâ

ÔÚDatastage7.5.1AÖУ¬ÈÕÆÚ³éÈ¡ÎÊÌ⣬ÀýÈ磬ʱ¼äÎÊÌ⣬'2006-04-12'µÈÈÕÆÚÔÚdatastageÖбäΪ '2006-04-11' ´ð£º

ÎÊÌâÔ­Òò£º

dsenv µÄTZÉèÖò»ÄÜʹÓñðÃûBEIST£¬È±Ê¡ÖµÎªGMT0Õâ±íʾ¸ñÁÖ±ê׼ʱ¼ä ½â¾ö·½·¨£º

Datastage dsenv²ÎÊýTZ=\GMT-8±íʾµÄ¾ÍÊDZ±¾©Ê±¼ä

Individual 2007-10 25 /

64

Dastage¾­Ñé×ܽá

3.25 DSÁ¬½ÓoracleÎÊÌâ

DATASTAGE +oracle 10g ¿Í»§¶ËÁ¬½Ówindowsƽ̨ÏÂoracle 10GÊý¾Ý¿âʧ°Ü£¬±¨plug_in³õʼ»¯Ê§°Ü¡£ ´ð£º

Ô­Òò£ºÎ´½«ETLÕË»§¼ÓÈëµ½DBAȨÏÞ×éÖС£¼ÓÈëÒÔºó¾Í½â¾öÁË¡£

3.26 ÔÚSequence File StageÖеĿÕÖµ´¦ÀíÎÊÌâ

ÔÚʹÓÃSequence File Stage, ,¸øCHARÐ͵ȹ̶¨³¤¶ÈµÄ×ֶθ³¿Õֵʱ»á±¨´í ¡£

ÀýÈçÔÚÍùÒ»¸ö¿ÉÒÔΪNULL²¢ÇÒÀàÐÍÊÇCHAR(20)µÄ×Ö¶ÎFI_CARLINE ÖÐдNULLÊý¾Ýʱ»á±¨ÈçÏÂÐÅÏ¢£º

Sequential_File_8: When checking operator: When validating export schema: At field \µ«ÊÇÈç¹ûÊÇvarcharÀàÐ͵ľÍûÓÐÎÊÌâ¡£ ½â¾ö·½·¨£º

ÔÚDataStage AdministratorÖеÄÕâ¸öProjectµÄUser DefinedÖÐÌí¼ÓÒ»¸ö²ÎÊýAPT_IMPEXP_ALLOW_ZERO_LENGTH_FIXED_NULL ÀàÐÍΪstring²¢ÇÒÖµÉèΪ0 ¾Í¿ÉÒÔÁË¡£¡¾×¢Ò⣺ÊÇÊý×ÖÖеÄ0¡¿

3.27 ÔÚDSÖÐʹÓÃOracle Enterprise Stage±ØÐëµÄȨÏÞ Oracle Enterprise Stage±ØÐëÓÐÒÔÏÂȨÏÞ²ÅÄÜʹÓà Have SELECT privilege on: ? DBA_EXTENTS ? DBA_DATA_FILES ? DBA_TAB_PARTITONS ? DBA_TAB_SUBPARTITONS ? DBA_OBJECTS

? ALL_PART_INDEXES ? ALL_PART_TABLES ? ALL_INDEXES

? SYS.GV_$INSTANCE (Only if Oracle Parallel Server is used)

3.28 DSÖÐÈ¥³ý¡®»Ø³µ·û¡¯µÄÎÊÌâÒÔ¼°´ÓcharÀàÐÍת±ä³ÉÕûÐ͵ķ½·¨

ÔÚdatastageÖУ¬´ÓcharÀàÐͱä³ÉÕûÐÍÓÿÉÒÔstringToDecimalÕâ¸öº¯Êý£¬²»ÄÜÓÃAsInteger£¬¸ü²»ÄÜÖ±½Óת ¡£

ÔÚdatastageÖкÍSQL serverÖС®»Ø³µ¡¯ÊÇÓÃchar(10)À´±íʾµÄ£¬ÔÚORACLEÖÐÊÇÓÃCHR(10)À´±íʾµÄ¡£

ÔÚdatastageÖÐÒª°Ñ×Ö¶ÎÖеĻسµÌæ´úµô¾ÍÓà Ereplace(LK01.col_num,CHAR(10),' ') replace(replace(deliverer_phone,CHR(13),''),CHR(10),'') deliverer_phone ÆäÖÐdeliverer_phoneÊDZíʾÐèÒª´¦ÀíµÄ×Ö¶Î,×¢ÒâºóÃæÒªÓøö±ðÃû£¡

Individual 2007-10 26 /

64

Dastage¾­Ñé×ܽá

3.29 ´Óºǫ́¿´JOBÁбíµÄ·½·¨

ÔõÑù²éѯһ¸ö¹¤³ÌÀïµÄJOBÁÐ±í£¿ ·½·¨Ò»£º cd $DSHOME cd bin

dsjob -ljobs ¹¤³ÌÃû£¨SGMEDS01£© | grep ds > Òª´æ·ÅµÄÎļþĿ¼£¨/SGMEDWETL/tmp/tangning.txt£© ·½·¨¶þ£º uvsh

LOGTO SGMEDS01

SELECT NAME FROM DS_JOBS WHERE NAME LIKE '%SAP%' ·½·¨Èý£º

½øÈë´æ·ÅJOBµÄλÖã¬Òª²ú¿´Ä³¸öprojectµÄJOBÐÅÏ¢¾Í½øµ½ÏàÓ¦µÄprojectÏÂÃæ

ÓÃdssh¡°SELECT * FROM DS_JOBS WHERE NAME=¡¯ I_Tr_TRC_TI_TRC_ASC¡¯¡±

»òÕßÊÇuvsh ¡°SELECT * FROM DS_JOBS WHERE NAME=¡¯ I_Tr_TRC_TI_TRC_ASC¡¯¡± ¶¼¿ÉÒÔʵÏÖ²éѯ¡£ÈçÏÂͼËùʾ£º

3.30 DatastageºÍÊý¾Ý¿âµÄÁ¬½Ó·½·¨

DatastageºÍÊý¾Ý¿âÓÐÁ½ÖÖ·½·¨Á¬½Ó£º

Ò»ÖÖÊÇͨ¹ýODBCÁ¬½Ó£¬Õâ¸ö¿ÉÒԲ鿴.odbc.iniÎļþÀï²é¿´ ÁíÒ»ÖÖ·½·¨ÊÇͨ¹ý¿Í»§¶ËÁ¬½Ó£¬¾ÍÏóÊÇoracleµÄtnsnames.oraÎļþ»¹ÓÐdb2µÄdirectoryÒ»Ñù¡£ ´Óºǫ́²é¿´·þÎñÆ÷ÅäÖÃÁËÄÄЩdb2¿Í»§¶ËÓÃdb2 list db directory 3.31 ÔÚdatastageÖÐʹÓû·¾³±äÁ¿µÄÎÊÌâ

ÔÚdatastageÖÐÈç¹ûÓõ½ÁË»·¾³±äÁ¿µÄ»°£¬ÄÇôÕâ¸ö»·¾³±äÁ¿Ò»¶¨Ò²ÒªÔÚ/$dshome/dsenv ÖÐÅäÖÃһϣ¬È»ºóÖØÆôdatastage·þÎñÆ÷ÒÔºó ²Å»áÉúЧ£¡

ÀýÈ磺ÔÚdsadmÓû§Ï嵀 .profile ÎļþÖÐÅäÖÃÁËÒ»¸ö»·¾³±äÁ¿ export ETLPATH=/SGMEDWETL/dsdata/projects ÄÇôͬÑùÎÒÃÇÒ²ÒªÔÚ/$dshome/dsenv ÖÐÅäÖÃһϠexport ETLPATH=/SGMEDWETL/dsdata/projects

Individual 2007-10 27 /

64

Dastage¾­Ñé×ܽá

ÎÞÂÛÊÇÔÚdatastage µÄroutines ÖÐÓõ½Õâ¸ö»·¾³±äÁ¿»¹ÊÇÓÃÒ»¸östageµ÷ÓÃshell³ÌÐò¶¼ÒªÕâÑù×ö£¬Ö»ÒªÊÇͨ¹ýdatastage À´Óõ½Õâ¸ö»·¾³±äÁ¿£¬ÄÇô¶¼ÒªÔÚÁ½¸öÎļþÖÐÅäÖã¡

3.32 IConv ºÍ OConv

IConv ½«Ò»¸ö×Ö·ûÐ͵ÄÈÕÆÚת»»³ÉÒ»¸ö¹ú¼ÊÊý×Ö£¬ÊÇÌìÊý £» OConv ½«Ò»¸öÈÕÆÚµÄ¡®ÌìÊý¡¯×ª»»³ÉÒ»¸ö¾ßÓиñʽµÄ×Ö·û´®£» ÀýÈ磺 IConv£¨¡°12-31-1967¡±£¬¡°D-DMY[2,2,4]¡± £© -----¡·0 IConv£¨¡°12311967¡± £¬¡°D4 DMY[2,2,4]¡±£© -----¡·0 IConv£¨¡°12-31-67¡± £¬¡°D2-MDY[2,2,2]¡±£© -----¡·0

OConv£¨0£¬¡°D-DMY[2,2,4]¡±£©----¡·¡°12-31-1967¡± OConv£¨IConv£¨¡°12311967¡± £¬¡°D4 DMY[2,2,4]¡±£©£¬¡±D/YDM[4,2,A10]¡°£©-----¡·¡±1967/31/December\

3.33 ÔÚMergeÖÐʹÓÃÌØÊâ×Ö·û

ÔÚÓï¾äÖмäÒªÊÇÐèÒª¼Ó×Ö·ûµÄ»°ÒªÓÃÏÂÃæµÄ·½·¨£º

Merge into (SELECT \\* FROM ##SCHEMA##.TD_ASC_PART WHERE VALID=1 AND ASC_CODE<>'\\'SGM\\'')

×¢ÒâÓï¾äÖÐµÄ '\\'SGM\\'' ±¾ÉíÓ¦¸ÃÊÇ¡®SGM¡¯

×¢Ò⣺ÓÃÀ´ÅжÏÊÇ·ñÆ¥ÅäµÄ×Ö¶ÎÖµ²»ÄÜΪNULL£¬Èç¹ûÓÐΪNULLµÄ¿ÉÒÔÓÃһϷ½·¨À´Ì滻һϣº ÀýÈ磺

Èô×Ö¶ÎÊÇ×Ö·ûÐεģºcoalesce(ah.STORAGE_CODE,'\\'1\\'')=coalesce(sh.STORAGE_CODE,'\\'1\\'') Èô×Ö¶ÎÊÇÊý×ÖÐεģºVALUS£¨ah.STORAGE_CODE,1£©£½VALUS£¨sh.STORAGE_CODE,1£©

×¢ÊÍ: ÈçºÎ°ÑË«ÒýºÅ°üº¬µ½echoÃüÁîµÄ×Ö·û´®ÖÐ,ÒýºÅÊÇÒ»¸öÌØÊâ×Ö·û,ËùÒÔ±ØÐëҪʹÓ÷´Ð±¸Ü \\ À´Ê¹shell

ºöÂÔËüµÄÌØÊ⺬Òå!ÀýÈçÄãÏ£ÍûÊä³ö×Ö·û´®: \ÄÇôֻÐèÒªÔÚÒýºÅÇ°Ãæ¼ÓÉÏ·´Ð±¸Ü \\ ¾Í¿ÉÒÔÁË

echo \ \

4 ²¿·Ö³£ÓÃStage µÄʹÓÃ˵Ã÷

StageÃû³Æ Transformer ˵Ã÷ ¶ÔÈκÎÐèҪת»»µÄÊäÈëµÄÊý¾Ý¼¯ºÏ½øÐÐת»»,²¢½«Êý¾Ý´«Êäµ½ÆäËû»î¶¯µÄStage ÖлòÒ»¸ö½«Êý¾ÝдÈëÊý¾Ý¿â»òÎļþµÄStage ÓÃÀ´²¢ÐÐÖ´Ðиü¸´ÔÓµÄÅÅÐò²Ù×÷ Individual 2007-10 28 /

Sort 64

Dastage¾­Ñé×ܽá

Merge Join ½«Ò»¸ö»ò¶à¸öÅÅÐòµÄ¸üÐÂÊý¾Ý¼¯ºÏºÏ²¢³ÉÒ»¸öÅÅÐòµÄÖ÷Êý¾Ý¼¯ºÏ ÔÚÒ»¸ö»ò¶à¸öÊäÈëÊý¾Ý¼¯ºÏÉÏÖ´ÐÐÁ¬½Ó²Ù×÷²¢Êä³öÒ»¸ö½á¹ûÊý¾Ý¼¯,Á¬½Ó²Ù×÷Ö§³Ö:Inner, Left Outer, Right Outer ºÍ Full Outer Join ¶ÔÓÚÊäÈëµÄÊý¾Ý¼Ç¼½øÐзÖ×é²¢ÇÒ¼ÆËãÿһ×éµÄºÏ¼ÆºÍ×Ü¼Æ ¶Ô¶à¸ö±í½øÐÐ×óÍâÁ¬½Ó²Ù×÷ °Ñ¶à¸öÊý¾Ý¼¯ºÏ²¢³ÉÒ»¸ö´óµÄÊý¾Ý¼¯,ÇÒ±í½á¹¹ÒªÏàͬ ɾ³ýÖØ¸´µÄ¼Ç¼ »ùÓÚÓû§Ö¸¶¨µÄÔ¼Êø(¡°where ×Ó¾ä),½«ÊäÈëÊý¾Ýת»»µ½²»Í¬µÄÊä³öÊý¾Ý¼¯(Link),¶ÔÓÚ¹ýÂ˼ǼÊǷdz£ÓÐЧµÄ Ï൱ÓÚCÓïÑÔÖÐSwitch¹¦ÄÜ,ͨ¹ýselectorÀ´Ñ¡¶¨×Ö¶Î,caseÀ´Ö¸¶¨Öµ,×î¶à128¸öoutput, 1¸öreject link ¿½±´Ò»¸öÊäÈëÊý¾Ý¼¯µ½¶à¸öÊä³öÊý¾Ý¼¯;¶øÇÒ²»ÐèÒªÐÞ¸Ä ×¥È¡Á½¸öÊäÈëÊý¾Ý¼¯£¬±íÏÖΪǰºÍºó£¬²¢ÇÒ»ñÈ¡ºóÃæµÄÊý¾Ý·Êä³öÒ»¸ö¼Ç¼±íÏÖÒѾ­¸Ä±äµÄÊý¾Ý¼¯. ÐÐÁл¥»» ½«¼Ç¼×Ö¶ÎÖµÏÔʾµ½×÷ÒµÈÕÖ¾»ò·Ö¿ªµÄoutput link,¾ÍÏóCopy Stage½«ÊäÈëµÄÊý¾Ý¿½±´µ½Ò»¸ö»ò¶à¸öÊä³öÊý¾Ý¼¯. IBM DB2 UDB ·ÃÎÊ ? ´ÓÊý¾Ý¿â¶ÁÈ¡Êý¾Ý»ò½«Êý¾ÝдÈëDB2Êý¾Ý¿â ? ˳ÐòÖ´Ðлò²¢ÐÐÖ´ÐÐ ? Ö§³ÖDB2µÄHASH·ÖÇø ? Ö§³ÖWRITE,UPSERTºÍLOADµÄд·½·¨ ? Ö§³Ö±í,×Ô¶¯²úÉúSQLºÍÓû§¶¨ÒåSQL¶Á·½·¨ OracleÊý¾Ý¿â·ÃÎÊ ? ´ÓORACLEÊý¾Ý¿â¶ÁÈ¡Êý¾Ý»ò½«Êý¾ÝдÈëÊý¾Ý¿â ? ˳ÐòÖ´Ðлò²¢ÐÐÖ´ÐÐ ? Ö§³ÖLOADºÍUPSERTд·½·¨ ? Ö§³ÖTABLEºÍQUERY¶Á·½·¨ TeradataÊý¾Ý¿â·ÃÎÊ ? ´ÓTERADATAÊý¾Ý¿â¶ÁÈ¡Êý¾ÝºÍ½«Êý¾ÝдÈëÊý¾Ý¿â ? FastExport: Table, Auto-generated SQL, User-generater SQL ? FastLoad: Create, Append, Replace, Truncate ? ˳ÐòÖ´ÐкͲ¢ÐÐÖ´ÐÐ ? Ö§³ÖTUF6.1, TTU7.0 Informix XPS Êý¾Ý¿â·ÃÎÊ ? ´ÓINFORMIX XPSÊý¾Ý¿â¶ÁÈ¡Êý¾Ý»ò½«Êý¾ÝдÈëÊý¾Ý¿â Individual 2007-10 29 / Aggregator Lookup Funnel Remove Duplicates Filter Switch Copy Change Capture Pivot Peek Surrogate_Key_Generator ÓÃÓÚ²úÉúÒ»¸ö´úÀí¼ü DB2 Oracle Teradata Informix XPS 64

Dastage¾­Ñé×ܽá

? ˳ÐòÖ´Ðлò²¢ÐÐÖ´ÐÐ ODBC ʹÓÃODBC ·ÃÎÊÊý¾Ý¿â 5 dsjob Ó﷨˵Ã÷:

µÇ½DataStage·þÎñÆ÷,ÊäÈë:cd $DSHOME/bin;ÔÚÊäÈëdsjob »Ø³µ,½øÈëdsjobÃüÁî;

Command Syntax:

dsjob [-file | [-server ][-user ][-password ]] []

Valid primary command options are: -run -stop -lprojects -ljobs

-linvocations -lstages -llinks

-projectinfo -jobinfo -stageinfo -linkinfo -lparams -paraminfo -log -logsum -logdetail -lognewest -report -jobid -import ÃüÁî˵Ã÷ Óï·¨ ÃüÁî -run -stop -lprojects -ljobs -lstages -llinks 64

ÔËÐÐJOB,Ò²¿É»ñµÃJOBSTATUS Í£Ö¹JOBÔËÐÐ ÏÔʾ·þÎñÆ÷ÉϵÄËùÓй¤³ÌÃû ÏÔʾһ¸ö¹¤³ÌÉϵÄËùÓÐJOBÃû ÏÔʾһ¸öJOBÖÐËùÓеÄstageÃû ÏÔʾһ¸östageÖк¬ÓеÄLINKÃû dsjob ¨Crun dsjob ¨Crun ¨Cjobstatus dsjob ¨Cstop dsjob ¨Clprojects dsjob -ljobs dsjob -lstages [-useid] dsjob -llinks [-useid] Individual 2007-10 30 / Dastage¾­Ñé×ܽá

-projectinfo -jobinfo -stageinfo -lparams -paraminfo -log -lognewest ÏÔʾһ¸ö¹¤³ÌµÄÐÅÏ¢,°üÀ¨·þÎñÆ÷Ãû,¹¤³ÌÃû ÏÔʾһ¸öJOBµÄÐÅÏ¢,°üÀ¨Job Status, dsjob -jobinfo [-useid] Job Start Time, Invocation ListµÈ ÏÔʾStage µÄÐÅÏ¢,°üÀ¨Stage Type, dsjob In Row Number, Stage NameµÈ ÏÔʾһ¸öJOBÖеIJÎÊýÁбí ÏÔʾ²ÎÊýµÄÐÅÏ¢ ÏòJOBÈÕÖ¾ÖÐдÐÅÏ¢,¿ÉÒÔдһ¸öINFOÐÅÏ¢,»òÕßÒ»ÌõWARNINGÐÅÏ¢ »ñµÃ×îеÄÈÕÖ¾ID dsjob -projectinfo -stageinfo dsjob -paraminfo [-useid] dsjob -lparams [-useid] [-useid] dsjob -log [-info | -warn] dsjob -lognewest [-useid] [] event type = INFO | WARNING | FATAL | REJECT | STARTED | RESET | BATCH dsjob -logdetail [-useid] [] dsjob -report [-useid] [report type>] report type = BASIC | DETAIL | XML dsjob -import DSXfile [ [-OVERWRITE] -JOB[S] | jobname ...] | [-LIST] -logdetail -report ¸ù¾ÝÈÕÖ¾ID,À´»ñµÃÈÕÖ¾µÄÏêϸÐÅÏ¢ µÃµ½Ò»¸öJOB×î½üµÄ״̬±¨¸æÐÅÏ¢,°üÀ¨:JOBÔËÐÐʱ¼ä,½áÊøÊ±¼ä,ºÄʱ,JOBÖеÄSTAGE,LINKÐÅÏ¢µÈ. -import ÏòÒ»¸ö¹¤³Ìµ¼ÈëJOB 6

ÈçºÎ´ÓDataStage·þÎñÆ÷µ¼³öËù¿ª·¢µÄJOBSÁбí

²½ÖèÈçÏ£º

1. µÇ½DataStage·þÎñÆ÷,ÊäÈëµÇ½ÕÊ»§,½øÈëϵͳ;

Individual 2007-10 31 /

64

Dastage¾­Ñé×ܽá

2. ÊäÈëÃüÁî: cd $DSHOME,½øÈëDSEngineÒýÇæ;

3. ÊäÈëcd bin,½øÈëbinĿ¼

Individual 2007-10 32 /

64

Dastage¾­Ñé×ܽá

4. ÊäÈëdsjob,½øÈëdsjobÃüÁî°ïÖú

Individual 2007-10 33 /

64

Dastage¾­Ñé×ܽá

5. ÊäÈëdsjob -ljobs SGMDM05 > /SGMEDWETL/tmp/hf_jobs,°ÑPROJECTΪ

SGMDM05ϵÄJOB·Åµ½Ä¿Â¼/SGMEDWETL/tmpϵÄhf_jobsÎļþÀï;

Status code = 0?±íʾµ¼³ö³É¹¦

ÊäÈëcd /SGMEDWETL/tmp,½øÈë¸ÃĿ¼,ÓÃÃüÁîmore hf_jobs,²é¿´µ¼³öµÄJOBS

Individual 2007-10 34 /

64

Dastage¾­Ñé×ܽá

Èç¹ûÏë°Ñ·þÎñÆ÷µÄhf_jobsµ¼µ½±¾µØ»úÆ÷ÉÏ,¿ÉÒÔʹÓÃFTPµ½±¾µØ,Ò²¿ÉÒÔʹÓõÚÈý·½¹¤¾ßÈç: filezilla.

7 ²é¿´µ±Ç°·þÎñÆ÷״̬ÐÅÏ¢µÄ·½·¨:

1. cd $DSHOME/bin 2. uv ¨Cadmin ¨Cinfo ÈçÏÂͼ£º

8 ÈçºÎÔÚÁ½Ì¨»úÆ÷Ö®¼ä½øÐÐFTPÎļþ

¼ÙÉè°Ñ»úÆ÷167ÉϵÄÎļþ/SGMEDWETL/tmp/hf_jobs FTP µ½»úÆ÷33ÉÏ.

1. µÇ½µ½33»úÆ÷, ÊäÈëÃüÁî:ftp 210.75.71.167, ½øÈë167»úÆ÷,ÊäÈë167µÄµÇ½ÕÊ»§½ø

Èë167ϵͳ;

Individual 2007-10 35 /

64

Dastage¾­Ñé×ܽá

2. ÊäÈëtype binary,ÉèÖô«ÊäʱËùÓõÄ×Ö·û¼¯,binary±íʾ¶þ½øÖÆ

3. ÊäÈëÃüÁî:get /SGMEDWETL/tmp/hf_jobs /SGMEDWETL/tmp/hf_jobs_ftp,

Individual 2007-10 36 /

64

Dastage¾­Ñé×ܽá

/SGMEDWETL/tmp/hf_jobs ±íʾremotefile; /SGMEDWETL/tmp/hf_jobs_ftp ±íʾlocalfile 4. ÊäÈëquitÍ˳öFTP.

9 ÈçºÎ»ñµÃJobstatus ,²½ÖèÈçÏÂ:

1. µÇ½µ½DataStage ·þÎñÆ÷,ÊäÈëÃüÁî: cd $DSHOME/bin ½øÈëbin Ŀ¼;

2. ÊäÈëÃüÁî: dsjob ¨Crun;

Individual 2007-10 37 /

64

Dastage¾­Ñé×ܽá

10 dsjob ¨Crun µÄÓ÷¨

dsjob -run

[-mode ] [-param =] [-warn ] [-rows ] [-wait]

[-opmetadata ] [-disableprjhandler] [-disablejobhandler] [-jobstatus] [-userstatus] [-local] [-useid]

Èç¹ûÎÒÃÇÏë²é¿´JOB: N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_02µÄ״̬,ÊäÈë: dsjob ¨Crun ¨Cjobstatus SGMEDW N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_02 »Ø³µÔËÐиÃÃüÁîʱ,¶ÔÓ¦µÄJOB: N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_02 »áÅÜÆðÀ´,µÈJOB ÅÜÍêÁ˻᷵»ØÒ»¸öÕûÐÍÖµ,Õâ¸öÖµ¾ÍÊÇjobstatus

Jobstatus=1 jobÔËÐгɹ¦,¶øÇÒûÓÐWARNING;

Individual 2007-10 38 /

64

Dastage¾­Ñé×ܽá

Jobstatus=2 jobÔËÐгɹ¦,µ«ÊÇÓÐWARNING; Jobstatus=3 jobÔËÐÐʧ°Ü.

11 ÈçºÎÔÚºǫ́ÔËÐкÍÍ£Ö¹Ò»¸öJOB

ÎÒÃÇ¿ÉÒÔʹÓÃÃüÁîÔÚºǫ́Æô¶¯ºÍÍ£Ö¹Ò»¸öJOB,ÔËÐÐÒ»¸öJOB ¿ÉÓà dsjob ¨Crun ÃüÁî; Í£Ö¹Ò»¸öJOB ¿ÉÓà dsjob ¨Cstop ÃüÁî.

? ÔËÐÐJOB,²½ÖèÈçÏÂ:

1. µÇ½DataStage ·þÎñÆ÷,ÊäÈë $DSHOME/bin ½øÈëbin Ŀ¼; 2. ÊäÈëdsjob ,½øÈëdsjobÃüÁî;

3. ÊäÈë: dsjob -run SGMEDW N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_02, »Ø³µ

ÔËÐÐ,¾Í»áÔËÐÐSGMEDW ProjectϵÄJOB

N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_02.

Individual 2007-10 39 /

64

Dastage¾­Ñé×ܽá

JOBÔËÐгɹ¦µÄ»°,»áÏÔʾ: Status code = 0?

? Í£Ö¹JOB,²½ÖèÈçÏÂ

1. ²½ÖèͬÔËÐÐJOBµÄ1,2 Á½²½;

2. ÊäÈëÃüÁî: dsjob -stop SGMEDW N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_01,

»Ø³µÔËÐÐ, ¾Í»áÍ£Ö¹SGMEDW ProjectϵÄJOB

N_Tr_ASDM_TF_PT_VHCL_MODEL_DISTRIBUTION_month_01µÄÔËÐÐ(Èç¹û¸ÃJOBÕýÔÚÔËÐеϰ)

Individual 2007-10 40 /

64

Dastage¾­Ñé×ܽá

12 DS Oracle EE Stage ÅäÖÃ

1°²×°Oracle¿Í»§¶Ë

2Ìí¼ÓOracleÓû§µ½dsadm group×éÑ¡Ïî 3ÅäÖÃDS·þÎñÆ÷dsenvÎļþ 4ÅäÖÃtnsnames.oraÎļþ 5ÖØÆðDS·þÎñÆ÷

6 ÅäÖÃOracle Stage³éÈ¡µÄSelectȨÏÞ 7 Oracle EE StageÅäÖýáÊø

11.1 °²×°Oracle¿Í»§¶Ë

±¾²¿·ÖÇëDBAЭÖúÍê³É¡£

ÔÚDataStage·þÎñÆ÷Éϰ²×°Oracle¿Í»§¶Ë¡£

11.2 Ìí¼ÓOracleÓû§µ½dsadm group×éÑ¡Ïî

±¾²¿·ÖÇë²Ù×÷ϵͳ¹ÜÀíԱЭÖúÍê³É¡£

ÐÞ¸ÄDataStage·þÎñÆ÷ÉÏdsadmÓû§Group Set£¬Ìí¼ÓOracleÓû§×é

11.3 ÅäÖÃDataStage·þÎñÆ÷dsenvÎļþ

Individual 2007-10 41 /

64

Dastage¾­Ñé×ܽá

´´½¨»·¾³±äÁ¿ORACLE_HOME,²¢ÉèÖóÉ$ORACLE_HOME·¾¶£» ´´½¨»·¾³±äÁ¿ORACLE_SID£¬²¢¸³ÖµÕýÈ·µÄ·þÎñÆ÷Ãû

Ìí¼Ó $ORACLE_HOME/bin µ½PATH; Ìí¼Ó $ORACLE_HOME/lib µ½LIBPATH, LD_LIBRARY_PATH

×¢Ò⣺PATH·¾¶ÖУ¬$APT_ORCHHOME/bin±ØÐëÔÚ$ORACLE_HOME/binÇ°Ãæ ####### ORACLE ######## ORACLE_HOME=/oracle/product/9.2; export ORACLE_HOME PATH=$PATH:$DSHOME/bin:$APT_ORCHHOME/bin:$APT_ORCHHOME/osh_wrappers:$ORACLE_HOME/bin export PATH LIBPATH=$LIBPATH:$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib export LIBPATH ORACLE_SID=pr011.shanghaigm.com export ORACLE_SID export NLS_LANG=\export TZ=\11.4 ÅäÖÃtnsnames.ora

PR009 =

(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = PR009.SHANGHAIGM.COM)(PORT = 1521)) )

(CONNECT_DATA =

(SERVICE_NAME = PR009.SHANGHAIGM.COM) ) )

11.5 ÖØÆðDataStage·þÎñ

¶Ï¿ªËùÓÐDataStage¿Í»§¶Ë¡£

Í£Ö¹DataStage·þÎñ£¬Ö´ÐÐÃüÁîuv ¨Cadmin ¨Cstop

µÈ´ý30Ãëuv -admin -startÖØÐÂÆô¶¯DataStage·þÎñ¡£

11.6 ÅäÖÃOacle Stage³éÈ¡µÄSelectȨÏÞ

ÈôʹÓÃOPS(Oracle Parallel Server)£¬ÔòÐèÒªsys.gv_$instanceºÍsys.v_$cache: GRANT select ON sys.gv_$instance TO public;

GRANT select ON sys.v_$cache TO public;

Individual 2007-10 42 /

64

Dastage¾­Ñé×ܽá

ÆäËûSelectȨÏÞÓУº

dba_extents dba_data_files dba_tab_partitions dba_tab_subpartitions dba_objects all_part_indexes all_part_tables all_indexes

½¨Òé´´½¨½ÇÉ«À´¸³È¨ÏÞ£¬ÈçÏ£º

CREATE ROLE DSXE;

GRANT SELECT on sys.dba_extents to DSXE; GRANT SELECT on sys.dba_data_files to DSXE; GRANT SELECT on sys.dba_tab_partitions to DSXE; GRANT SELECT on sys.dba_tab_subpartitions to DSXE; GRANT SELECT on sys.dba_objects to DSXE; GRANT SELECT on sys.all_part_indexes to DSXE; GRANT SELECT on sys.all_part_tables to DSXE; GRANT SELECT on sys.all_indexes to DSXE; GRANT DSXE to ;

11.7 Oacle EE STAGEÅäÖýáÊø

´´½¨²âÊÔjob£¬²âÊÔ´ÓOracleÊý¾Ý¿âÖгéÈ¡Êý¾Ý

ÅäÖùý³ÌÖУ¬²»¿ÉËæÒâ¸ü¸Ä·¾¶Ë³Ðò¡£

13

DS ODBC µÄÅäÖÃ

ODBCµÄÅäÖÃÖ÷ÒªÊÇÈý¸öÎļþµÄÅäÖÃ:dsenv, .odbc.ini, uvodbc.config

12.1 ÐÞ¸Ä$DSHOME /dsenv

ODBC·ÃÎʵÄÈκÎÊý¾ÝÔ´,¶¼ÒªÔÚdsenvÖÐÅäÖû·¾³±äÁ¿,ÀýÈç·ÃÎÊORACLE,DB2¿â,¶¼Òª½øÐÐORACLE,DB2µÄ»·¾³ÅäÖÃ,Ö÷Òª°üÀ¨: ? Êý¾Ý¿â¿Í»§¶ËÁ¬½Ó±ØÐèµÄ»·¾³±äÁ¿ ? ÉèÖÃ$PATH ? ÉèÖÃ$LIBPATH

DsenvµÄÐÞ¸Ä,ÒªÖØÆð·þÎñ²ÅÓÐЧ.

12.2 ÐÞ¸Ä$DSHOME/.odbc.ini, À´ÌṩÊý¾Ý¿âÁ¬½ÓÐÅÏ¢;

¶ÔÓÚ²»Í¬Æ½Ì¨µÄÅäÖÃʾÀý,ÔÚDSµÄ·¾¶£º$DSHOME/../branded_odbc/IBM_Tools ÏÂÓÐʾÀý£¬ÏÂÃæÊÇÓ¦ÓÃÀý×Ó£º

Individual 2007-10 43 /

64

Dastage¾­Ñé×ܽá

[PRINTDB_JQS]

Driver=/SGMEDWETL/dshome/Ascential/DataStage/branded_odbc/lib/VMmsss.so

Description=DataDirect SQL Server Wire Protocol Database=SGMPRINT LogonID=sgmprint Password=sgmprint Address=210.75.67.1,1022 IANAAppCodePage=113 QuotedId=No AnsiNPW=No

[SAPSTAGING] QEWSD=39400

Driver=/SGMEDWETL/dshome/Ascential/DataStage/branded_odbc/lib/VMor820.so

Description=DataDirect 5.00 Oracle ApplicationUsingThreads=1 ArraySize=60000

CatalogIncludesSynonyms=1 CatalogOptions=0

DefaultLongDataBuffLen=1024 DescribeAtPrepare=0 EnableDescribeParam=0 EnableNcharSupport=0 EnableScrollableCursors=1 EnableStaticCursorsForLongData=0 EnableTimestampWithTimeZone=0 LocalTimeZoneOffset= LockTimeOut=-1 LogonID=

OptimizeLongPerformance=0 Password=

ProcedureRetResults=0 ServerName=SWAPRD UseCurrentSchema=1

12.3 ÐÞ¸Ä$DSHOME/uvodbc.config, À´Ö¸¶¨DSN(data source name).

ÔÚ$DSHOME/../branded_odbc/IBM_Tools ÏÂÒ²ÓÐuvodbc.configʾÀý£»

DBMSTYPE = ODBC ----×¢Òâ¡°=¡±Á½±ßÓпոñ

DNSµÄÃû×ÖÒªºÍ.odbc.iniÖеÄÃû×ÖÒ»Ñù£¬ÈçÏ£º

DBMSTYPE = ODBC

Individual 2007-10 44 /

64

Dastage¾­Ñé×ܽá

DBMSTYPE = ODBC

Note: Ò»°ãÇé¿öÏÂProject directoryÏÂÒ²Òª·ÅÖÃÒ»¸öuvodbc.config,ĬÈÏÇé¿ö

ÏÂ,DataStageÔÚProjects directoryÏÂѰÕÒuvodbc.configÎļþ,ÕÒµ½Á˾ÍÔÚ¹¤³ÌĿ¼ÀïʹÓÃËü£¬·ñÔò»áµ½$DSHOMEÏÂѰÕÒuvodbc.configÎļþ¡£

14

ETLϵͳÀ©Õ¹

µ±ÏµÍ³×ÊÔ´²»×ãʱ,ÓÐÁ½ÖÖ·½Ê½À©Õ¹ÏµÍ³ÐÔÄÜ:SMPºÍMPP

1. SMPºÍMPPµÄÇø±ð

SMPÊǾùºâµÄ¶à´¦Àíϵͳ,Ôö¼ÓµÄCPUºÍMemory±»ËùÓеÄProject¹²Ïí,ºÃ´¦

ÊÇÀ©Õ¹ÊµÊ©¼òµ¥,Ö»ÐèÐÞ¸ÄConfig File;ȱµãÊÇÊÜ»úÆ÷Time WindowµÄÏÞÖÆ,×î¸ß¿ÉÀ©Õ¹µ½64 CPU.

MPPÊǶàÊý¾ÝÁ¿µÄ²¢Ðд¦Àíϵͳ,À©Õ¹µÄ·þÎñÆ÷ÓëÔ­·þÎñÆ÷Ö®¼äû¹ØÏµ,CPU

ºÍMemory¸÷×Ô¶ÀÕ¼, ·Ö±ð¶ÀÁ¢ÔËÐÐ; À©Õ¹µÄ·þÎñÆ÷ÓëÔ­·þÎñÆ÷»ùÓÚÓ¦ÓõŤ×÷Á¿£¬½«Ó¦Ó÷ֱð·ÖÅäµ½Á½Ì¨»úÆ÷¶ÀÁ¢ÔËÐÐ.

2. Á½ÖÖÀ©Õ¹·½Ê½¿É½áºÏʹÓÃ: µ±SMPµÄÀ©Õ¹³¬³ö¼«ÏÞ£¬Ñ¡ÔñMPP×÷Ϊ²¹³ä,¼´

Ó¦ÓÃÇзÖÀ©Õ¹ 3. ¹²ÓÐÈýÖÖ·½Ê½À©Õ¹MPPϵͳ£¬Ç°ÌáÊÇ£ºÃ¿Á½Ì¨»úÆ÷¼äͨ¹ýRsh½»»¥£»Ã¿Ì¨»úÆ÷

¶¼±ØÐë´´½¨ÏàͬµÄdsadmÓû§¼°dstageÖ÷×飻ÿ̨»úÆ÷Éϵݲװ·¾¶»òÕß¹ÒÔØÂ·¾¶±ØÐëÍêȫһÖ¡£

? À©Õ¹½Úµã°²×°Ò»Ì×еÄDatastage·þÎñÆ÷£¬Í¨¹ýÐÞ¸ÄConfiguration FileºÍ

Ô­ÓеÄDataStage·þÎñÆ÷×é³ÉMPPϵͳ¡£ ? ʹÓÃ$install_dir/install/ copy-orchdist½Å±¾¸´ÖÆDatastage Engineµ½ÐµÄ

À©Õ¹½Úµã£¬ÐÞ¸ÄConfiguration File¼ÓÔØÐµĽڵ㡣 ? ͨ¹ýNFS¹²ÏíÒÑÓеÄDatastageĿ¼£¬Ê¹ÐÂÀ©Õ¹µÄ½Úµã¿ÉÒÔ·ÃÎʵ½

DataStageĿ¼¡£ÐÞ¸Äconfiguration fileÌí¼ÓеĽڵ㡣

15 Remote Shell (rsh)µÄÅäÖÃ

sisiu056, sisiu057, sisiu058, sisiu060ËĄ̈»úÆ÷ÈÎÒâÁ½Ì¨Ö®¼ä¶¼Ï໥ÐÅÈΣ¨¼´rlogin¶¼¿ÉÒԳɹ¦£©£¬Ï໥֮¼ä¶¼¿ÉÒÔͨÐÅ,ÈÎÒâÁ½¸ö½áµãÖ®¼ä¿ÉÒÔ²»ÐèÒªÃÜÂ룬ͨ¹ýrshÖ´ÐÐÃüÁî»òÕߵǽ£¬Ö÷񻃾¼°µ½Á½¸öÎļþµÄÐÞ¸Ä: .rhostsÎļþºÍ hosts.equivÎļþ¡£

14.1 ´´½¨²¢ÅäÖà .rhostsÎļþ

Individual 2007-10 45 /

64

Dastage¾­Ñé×ܽá

? Óû§ÒÔqdb01µÇ¼sisiu056, sisiu057, sisiu058, sisiu060ÖеÄÈÎÒâ

һ̨»úÆ÷¡£

? ÔÚ/home/qdb01Ŀ¼Ï´´½¨ÃûΪ.rhostsµÄÎļþ¡£

vi /home/qdb01/.rhosts

? ½«ÈçÏÂÄÚÈÝÌî¼Óµ½.rhostsÎļþÖС£

sisiu056 qdb01--------hostname username sisiu057 qdb01 sisiu058 qdb01 sisiu060 qdb01

14.2 ÐÞ¸Ä/etc/hosts.equivÎļþ

½«ÈçÏÂÄÚÈÝ·Ö±ð×·¼Óµ½sisiu056, sisiu057, sisiu058, sisiu060ËĄ̈»úÆ÷µÄ/etc/hosts.equivÎļþĩβ¡£

sisiu056 qdb01 sisiu057 qdb01 sisiu058 qdb01 sisiu060 qdb01

ÔËÐÐrlogin hostnameÃüÁî²é¿´rshÊÇ·ñÅäÖóɹ¦¡£

16 dsadminÃüÁîµÄʹÓÃ

15.1 dsadminÃüÁîµÄʹÓÃ

µÇ½DataStage·þÎñÆ÷,ÊäÈë:cd $DSHOME/bin;ÔÚÊäÈëdsadmin »Ø³µ,½øÈëdsadminÃüÁî;

Command Syntax:

dsadmin [-file | [-server ][-user ][-password ]] []

Valid primary command options are: -createproject -deleteproject -oshvisible -enablercp

-enablejobadmin -envadd -envdelete

Individual 2007-10 46 / 64

Dastage¾­Ñé×ܽá

-envset

-advancedruntime -basedirectory

-deploymentdirectory -customdeployment -listprojects -listproperties -listenv

-enablegeneratexml

ÃüÁî -createproject -deleteproject -oshvisible -enablercp -enablejobadmin -envadd ÃüÁî˵Ã÷ ´´½¨Ò»¸ö¹¤³ÌProject ɾ³ýÒ»¸ö¹¤³ÌProject ʹ²úÉúµÄOSH´úÂë¿É¼û ʹRCPÓÐЧ»òʧЧ ʹJOB´¦ÓڿɹÜÀí״̬ Ôö¼Ó»·¾³±äÁ¿£¬Ò²¼´¿É×÷ΪJOBµÄ²ÎÊý Óï·¨ dsadmin -createproject [-location ] dsadmin -deleteproject dsadmin -oshvisible TRUE | FALSE dsadmin -enablercp TRUE | FALSE dsadmin -enablejobadmin TRUE | FALSE dsadmin -envadd -type STRING | ENCRYPTED -prompt \ -envdelete -envset -advancedruntime -basedirectory ɾ³ý»·¾³±äÁ¿ ÉèÖû·¾³±äÁ¿µÄÖµ dsadmin -envdelete dsadmin -envset -value \dsadmin -advancedruntime \runtime options>\dsadmin -basedirectory dsadmin -deploymentdirectory dsadmin -customdeployment \deployment commands>\dsadmin -listprojects dsadmin -listproperties -deploymentdirectory -customdeployment -listprojects -listproperties ÏÔʾһ̨»úÆ÷ÉÏËùÓеŤ³ÌÃû ÏÔʾһ¸ö¹¤³ÌµÄÊôÐÔ£¬°üÀ¨OSHVisible=1 JobAdminEnabled=1 RTCPEnabled=1 PXAdvRTOptions= PXRemoteBaseDirectory= PXDeployJobDirectoryTemplate= PXDeployCustomAction= Individual 2007-10 47 / 64

Dastage¾­Ñé×ܽá

PXDeployGenerateXML=0 -listenv -enablegeneratexml ÏÔʾһ¸ö¹¤³ÌµÄËùÓл·¾³±äÁ¿ ÊÇ·ñ²úÉúXML dsadmin -listenv dsadmin -enablegeneratexml TRUE | FALSE

12.2 ×Ô¶¨Òå»·¾³±äÁ¿µÄʹÓÃ

ÔÚdatastageÖУ¬Ê¹ÓÃSequential_FileµÄʱºòÐèÒª¶ÔNULLÖµ×ö´¦Àí£¬µ«ÊÇǰÌáÊÇÒªÔÚDataStage AdministratorÖеÄuser definedÖÐÌí¼ÓÒ»¸ö»·¾³±äÁ¿ Name: APT_IMPEXP_ALLOW_ZERO_LENGTH_FIXED_NULL Type: string Value: 0

17 ÈçºÎÆô¶¯JobMonApp

½øÈë/Ascential/DataStage/PXEngine/javaĿ¼£¬»ò$APT_ORCHHOME/java,ÊäÈëÃüÁsh jobmoninit À´Æô¶¯JobMonApp

×¢£º$APT_ORCHHOMEÊDz¢ÐÐÒýÇæµÄĿ¼

18 DS.TOOLS

ÏȽøÈë cd $DSHOME/bin

È»ºóÓÃuvshÃüÁî½øÈëµ½tclÓïÑÔ½çÃæ£¬ÈçÏ£º

Individual 2007-10 48 /

64

Dastage¾­Ñé×ܽá

È»ºóÓÃLOGTO SGMINF_MQ ÃüÁîµÇ¼µ½project SGMINF_MQµÄĿ¼

È»ºóÊäÈëDS.TOOLSÃüÁî¾Í¿ÉÒÔ½øÈëµ½DS.TOOLS¶Ô»°¿ò½çÃæÁË£¬ÈçÏ£º

×¢Ò⣺Í˳öµÄʱºòÒªÏȰ´¡®»Ø³µ¼ü¡¯£¬È»ºóÊäÈë¡®Q¡¯Ôٻسµ¾Í¿ÉÒÔÁË£¡

DS.TOOLSËù°üº¬µÄÄÚÈÝÈçÏ£º

DataStage Tools Menu

1. Report on project licenses

2. Rebuild Repository indices ----------ÖØ½¨Ë÷Òý 3. Set up server-side tracing 4. Administer processes/locks 5. Adjust job tunable properties ¡­¡­¡­¡­.

Which would you like? ( 1 - 5 ) ?

Individual 2007-10 49 /

64

Dastage¾­Ñé×ܽá

½øÈëDS.TOOLSµÄ²½Öè¼°ÊÍ·ÅËø£º

1. Connect in the server through Telnet

2. Execute the dsenv file: cd $DSEngine ; . dsenv 3. Go to the directory of the project£ºcd $DSHOME/bin

4. Execute the uvsh»òdssh located in $DSEngine/bin starting from the path of the

project.

5. Execute the command DS.TOOLS

6. Choose the option 4 for processes and locks. 7. Choose the option 4 again (to list all the locks)

8. Identify the name of the job and your respective PID.

9. Select the option 7 to liberate lock for number of the process and inform PID 10. It will be requested a confirmation, type Y to confirm.

11. To leave of the application, type enter until that returns to the prompt of the

universe ¡°>¡± and type Q.

ÁгöËùÓÐËøµÄÃüÁLIST.READU EVERY

·½·¨Ò»£º¸ÃÃüÁî¸úÉÏÃæµÄOption 4 ? Option 4(list all the locks) µÄ¹¦ÄÜÒ»Ñù ·½·¨¶þ£ºcd $DSHOME/bin£¬ È»ºóÊäÈëÃüÁîlist_readu

·½·¨Èý£ºcd $DSHOME/bin£¬ È»ºóÊäÈëÃüÁîuvsh »òÕßdssh £¬

È»ºóÊäÈëÃüÁîLIST.READU EVERY

Individual 2007-10 50 /

64