25 March 2009

DataStage: Transformer, Filter และ Switch แตกต่างกันอย่างไร


Transform Stage
Filter Stage
Switch Stage
1.เวลา
ใช้เวลาน้อยที่สุด
ใช้เวลามากที่สุด
มากกว่า Transform แต่น้อยกว่า Filter
2.เวลาในการCompile
นานที่สุด
พอๆกับ Switch
พอๆกับ Filter
3.กรองค่า
ใช้กรอง Dataได้
ใช้กรอง Dataได้
ใช้กรอง Dataได้
4. Function
สามารถใส่ Functionได้
ใส่ Function ไม่ได้
ใส่ Function ไม่ได้
5. การ Filter
สามารถนำ Column ตั้งแต่ 2 Column มาใช้ในการกรองร่วมกันได้
สามารถนำ Column ตั้งแต่ 2 Column มาใช้ในการกรองร่วมกันได้
กำหนดเป็นค่า ได้ 1 ค่า
6. การใช้ Parameter
ไม่สามารถใช้ Parameter ร่วมได้ จะติดในส่วนของ Link Column
สามารถกรองโดยใช้ Parameter ร่วมได้
ไม่สามารถใช้ Parameter ร่วมได้ จะติดในส่วนของ Link Column
7. Output limit links
ไม่ได้บอกว่าจำกัดเท่าไหร่
ไม่ได้บอกว่าจำกัดเท่าไหร่
128 Output links
8. เครื่องหมายทางคณิตศาตร์
ใช้ได้ทุกเครื่องหมาย
ใช้ได้ทุกเครื่องหมาย
ใช้ได้แค่เท่ากับ (=)



แถมรูปการทดลอง Performance









DataStage: Preserve Partition

เวลารัน job EE แล้วมันชอบขึ้น Warning ว่า
Copy_20: When checking operator: Operator of tyoe "APT_CopyOperator": will partition despite the preserve-partitioning flag on the data set on input port 0.
สาเหตุคือ
Stage มันจำค่า Partition เดิมเอาไว้ ทำให้เมื่อมีการ re-partition จึงฟ้อง warning นี้ขึ้นมา

วิธีการแก้ไข
เข้าไปใน Stage ที่เราต้องทำการRe-Partition แล้ว ไปที่ Tab Stage > Advance > Preserver partitioning เลือก Clear  แล้วลอง Run ซ้ำใหม่อีกครั้ง Warning จะหายไป ตามรูป




24 March 2009

DataStage: Dataset เก็บข้อมูลไว้ที่ไหน

dataset จะมีการแยกเก็บข้อมูลเป็น 2 ส่วน คือ ส่วน header และ ส่วน data
  • header จะเก็บไฟล์ตาม path ที่ระบุไว้ใน DataStage Job โดยในไฟล์จะเก็บรายละเอียดเกี่ยวกับ configuration file ที่ใช้ในการรัน และบอกว่าไฟล์ที่เก็บ data จริงๆ ของ dataset นั้นๆ อยู่ที่ไหน
  • data จะถูกเก็บไว้ตาม path ที่ระบุไว้ที่ resource disk ใน configuration file โดยจะแยกเก็บเป็นไฟล์ๆ ขึ้นอยู่กับจำนวน node ที่ระบุใน Configuration file
กรณีที่พื้นที่ในการเก็บ dataset เต็ม สามารถตรวจสอบได้โดยดู path ทั้งหมดที่ใช้เก็บ dataset จาก Configurtion file จากนั้นทำการตรวจสอบแต่ละ path ที่ list มา โดยดูเปอร์เซ็นต์การใช้งานว่า path ไหนเต็มบ้าง (โดยใช้คำสั่ง df [-k|-h] [path]) หรือดูได้จาก Data Set Management ว่าไฟล์นี้ใช้ node ไหนบ้าง และ data จริงถูกเก็บไว้ที่ไหน ดังรูป








19 March 2009

DataStage: Configuration File

Configuration File จะถูกเก็บอยู่ที่ path [dshome]/../Configurations เป็นไฟล์นามสกุล .apt ซึ่งจะบอกว่า Job ที่เราจะรันว่าใช้กี่ node ในการรัน แต่ละ node อยู่บน server ตัวไหน กำหนดพื้นที่สำหรับเก็บข้อมูล และพื้นที่สำหรับ temporary file ไว้ที่ไหนบ้าง ดังรูป





  • fastname 
บอกชื่อ server ที่ใช้ในการรัน process
  • pool 
เป็นเหมือนชื่อเล่น หรือกรณีกำหนดเป็น reserve word ระบบจะสามารถรู้ได้เลยว่า pool นี้เอาไว้ใช้ทำงานอะไร เช่น ถ้ากำหนดเป็น sort ก็จะใช้สำหรับการ sort data เท่านั้น

ส่วน ใน Job ก็สามารถกำหนดได้ว่า Stage ไหนจะให้ใช้ pool ไหนในการทำงาน โดยกำหนดที่ properties ของ Stage นั้นๆ ตรง tab Stage>Advanced สามารถกำหนดได้ที่ Node pool and resource constraints โดยระบุค่าตรง Constraint เป็น Node pool และกำหนดชื่อ pool ที่ต้องการใช้ ดังรูป





ในกรณีที่กำหนดชื่อ pool เป็น reserve word ซึ่ง DataStage จะรู้จักอยู่แล้ว ก็ไม่ต้องกำหนดที่ Stage ใน Job ก็ได้
  • resource disk 
เป็นตัวระบุพื้นที่ที่ใช้เก็บข้อมูลพวก dataset ซึ่งในระดับนี้สามารถกำหนดชื่อ pool ได้ด้วย โดยเลือก Constraint เป็น Resources และกำหนดชื่อ pool ที่ต้องการใช้ ดังรูปข้างบน

การกำหนด node pool จะช่วยในการจัดการเรื่อง CPU และ Memory

การกำหนด disk pool จะช่วยในเรื่องการจัดการ disk เพราะใน 1 node มีการกำหนด resource disk ได้หลายค่า ทำให้สามารถเลือกได้ว่า จะเก็บข้อมูลไหนใน disk ไหน
  • resource scratchdisk 
เป็นตัวระบุพื้นที่ที่ใช้เก็บ temporary file ที่เกิดขึ้นระหว่างการทำงาน เมื่อการทำงานนั้นๆ เสร็จสิ้นลง temporary file ที่ถูกสร้างขึ้นมาจะโดนลบทิ้งไป ซึ่งใน 1 node สามารถกำหนด resource scratchdisk ได้หลายค่า

ในกรณีที่ resource scratchdisk ที่กำหนดไว้ ถูกใช้จนเต็ม จะไปใช้พื้นที่ของ Temp ที่กำหนดไว้ใน DataStage และ /tmp ของระบบ ตามลำดับ

Temp ของ DataStage สามารถดูได้ที่ uvconfig ใน DataStage Home Directory ที่ parameter UVTEMP

เพราะฉะนั้น หากต้องการกำหนดให้บาง server เท่านั้น ที่ทำการ sort data สามารถกำหนดได้โดย กำหนดที่ pool ระดับ fastname ว่าให้ใช้ในการ sort หรือสามารถกำหนดได้ที่ properties ของ Sort Stage ว่าจะใช้ node ไหนในการทำงาน
*** Home Directory ของ DataStage สามารถดูได้โดยใช้คำสั่ง cat /.dshome

Reserve word ที่ใช้ในการกำหนดชื่อ node pool มีดังนี้
1. DB2
2. INFORMIX
3. ORACLE
4. sas
5. sort
6. syncsort

Reserve word ในการกำหนดชื่อ disk pool มีดังนี้
1. buffer
2. export
3. lookup
4. sasdataset
5. sort
6. syncsort