日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

datastage經(jīng)驗(yàn)總結(jié)

 亂七九糟 2015-07-03

導(dǎo)讀:DSsmtp:[210.75.71.180]dssendmail_template.txt*OnUNIXtorunsendmail,thetemplatelookslikethis(doesn'trequirea<file>section):#!/bin/sh/usr/lib/sendmail-t<<////From:%from%To

datastage經(jīng)驗(yàn)總結(jié)

DSsmtp:[210.75.71.180]

dssendmail_template.txt

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

/usr/lib/sendmail -t <<////

From: %from%

To: %to%

Subject: %subject%

Server: %server%

%body%

3.23 隨機(jī)錯(cuò)誤問題

DataStage Sequence程序隨機(jī)錯(cuò)誤,錯(cuò)誤是找不到/tmp目錄下的該JOB的臨時(shí)文件,重新編譯后正常Run,錯(cuò)誤描述:

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

解決方法:

目前修改了以下參數(shù),連續(xù)兩天未發(fā)現(xiàn)隨機(jī)錯(cuò)誤:

1.APT_MONITOR_SIZE to 100000 and APT_MONITOR_TIME to 5

2.可能是因?yàn)樵赑arallel Job中使用了Server Share Container導(dǎo)致的,

打開Project Property

確保已經(jīng)選擇Enable row buffer,并且選擇Inter process

最終確認(rèn)的原因:

1.Default.app設(shè)置的并行節(jié)點(diǎn)數(shù)為4,那對(duì)于一個(gè)Stage就會(huì)起4個(gè)進(jìn)程,stage過多會(huì)導(dǎo)致資源耗盡

解決方案:

1.盡量降低并發(fā)度

2.首先采用1個(gè)節(jié)點(diǎn)運(yùn)行,待穩(wěn)定后逐步增加節(jié)點(diǎn)數(shù),也可對(duì)復(fù)雜JOB進(jìn)行

3.24 DS中的日期問題

在Datastage7.5.1A中,日期抽取問題,例如,時(shí)間問題,'2006-04-12'等日期在datastage中變?yōu)?'2006-04-11'

答:

問題原因:

dsenv 的TZ設(shè)置不能使用別名BEIST,缺省值為GMT0這表示格林標(biāo)準(zhǔn)時(shí)間

解決方法:

Datastage dsenv參數(shù)TZ="GMT-8"

GMT-8表示的就是北京時(shí)間

3.25 DS連接oracle問題

DATASTAGE +oracle 10g 客戶端連接windows平臺(tái)下oracle 10G數(shù)據(jù)庫失敗,報(bào)plug_in初始化失敗。

答:

原因:未將ETL賬戶加入到DBA權(quán)限組中。加入以后就解決了。

3.26 在Sequence File Stage中的空值處理問題

在使用Sequence File Stage, ,給CHAR型等固定長度的字段賦空值時(shí)會(huì)報(bào)錯(cuò) 。

例如在往一個(gè)可以為NULL并且類型是CHAR(20)的字段FI_CARLINE 中寫NULL數(shù)據(jù)時(shí)會(huì)報(bào)如下信息:

Sequential_File_8: When checking operator: When validating export schema: At field "FI_CARLINE": "null_field" length (0) must match field's fixed width (20)

但是如果是varchar類型的就沒有問題。

解決方法:

在DataStage Administrator中的這個(gè)Project的User Defined中添加一個(gè)參數(shù)APT_IMPEXP_ALLOW_ZERO_LENGTH_FIXED_NULL 類型為string并且值設(shè)為0 就可以了?!咀⒁猓菏菙?shù)字中的0】

3.27 在DS中使用Oracle Enterprise Stage必須的權(quán)限

Oracle Enterprise Stage必須有以下權(quán)限才能使用

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類型轉(zhuǎn)變成整型的方法

在datastage中,從char類型變成整型用可以stringToDecimal這個(gè)函數(shù),不能用AsInteger,更不能直接轉(zhuǎn) 。

在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是表示需要處理的字段,注意后面要用個(gè)別名!

3.29 從后臺(tái)看JOB列表的方法

怎樣查詢一個(gè)工程里的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%'

方法三:

進(jìn)入存放JOB的位置,要產(chǎn)看某個(gè)project的JOB信息就進(jìn)到相應(yīng)的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’” 都可以實(shí)現(xiàn)查詢。如下圖所示:

3.30 Datastage和數(shù)據(jù)庫的連接方法

Datastage和數(shù)據(jù)庫有兩種方法連接:

一種是通過ODBC連接,這個(gè)可以查看.odbc.ini文件里查看

另一種方法是通過客戶端連接,就象是oracle的tnsnames.ora文件還有db2的directory一樣。 從后臺(tái)查看服務(wù)器配置了哪些db2客戶端用db2 list db directory

3.31 在datastage中使用環(huán)境變量的問題

在datastage中如果用到了環(huán)境變量的話,那么這個(gè)環(huán)境變量一定也要在/$dshome/dsenv 中配置一下,然后重啟datastage服務(wù)器以后 才會(huì)生效!

例如:在dsadm用戶下的 .profile 文件中配置了一個(gè)環(huán)境變量

export ETLPATH=/SGMEDWETL/dsdata/projects

那么同樣我們也要在/$dshome/dsenv 中配置一下

export ETLPATH=/SGMEDWETL/dsdata/projects

無論是在datastage 的routines 中用到這個(gè)環(huán)境變量還是用一個(gè)stage調(diào)用shell程序都要這樣做,只要是通過datastage 來用到這個(gè)環(huán)境變量,那么都要在兩個(gè)文件中配置!

3.32 IConv 和 OConv

IConv 將一個(gè)字符型的日期轉(zhuǎn)換成一個(gè)國際數(shù)字,是天數(shù) ;

OConv 將一個(gè)日期的‘天數(shù)’轉(zhuǎn)換成一個(gè)具有格式的字符串;

例如:

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\'' 本身應(yīng)該是‘SGM’

注意:用來判斷是否匹配的字段值不能為NULL,如果有為NULL的可以用一下方法來替換一下:

例如:

若字段是字符形的:coalesce(ah.STORAGE_CODE,'\'1\'')=coalesce(sh.STORAGE_CODE,'\'1\'') 若字段是數(shù)字形的:VALUS(ah.STORAGE_CODE,1)=VALUS(sh.STORAGE_CODE,1)

注釋: 如何把雙引號(hào)包含到echo命令的字符串中,引號(hào)是一個(gè)特殊字符,所以必須要使用反斜杠 \ 來使shell

忽略它的特殊含義!例如你希望輸出字符串: "/dev/abc" 那么只需要在引號(hào)前面加上反斜杠 \ 就可以了

echo "\"/dev/abc"\"

"/dev/abc"

4 部分常用Stage 的使用說明

五星文庫包含總結(jié)匯報(bào)、人文社科、經(jīng)管營銷、考試資料、辦公文檔、文檔下載、黨團(tuán)工作以及datastage經(jīng)驗(yàn)總結(jié)等內(nèi)容。

本文共16頁1<<45678910>>16

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多