20 May 2009

DataStage: Merge data เติมข้อมูลฟันหลอ

ปัญหา
มีข้อมูลฟันหลออยู่หลายๆบรรทัด ยุบรวมให้เป็น record เดียวตาม key ที่กำหนด

ตัวอย่างข้อมูล
key,aaa,bbb
111,a11,null
111,null,b11
222,a22,null
222,null,b22

ตัวอย่างผลลัพธ์ที่ต้องการ
key,aaa,bbb
111,a11,b11
222,a22,b22

วิธีทำ






1. filter แยกเป็น 2 ส่วน ส่วนแรกเลือกเอาที่ aaa มีค่า ส่วนที่ 2 เลือกเอาที่ bbb มีค่า




2. ตัดข้อมูลส่วนแรกให้เหลือ 2 column คือ key และ aaa พร้อมเปลี่ยนชื่อ column ผ่าน copy stage
จากรูปจะเห็นว่า เราไม่เอา column bbb ไปด้วย




3. ตัดข้อมูลส่วนที่สองให้เหลือ 2 column คือ key และ bbb พร้อมเปลี่ยนชื่อ column ผ่าน copy stage
จากรูปจะเห็นว่า เราไม่เอา column aaa ไปด้วย




4. เอาส่วนแรกเป็น master และส่วนที่สองเป็น update รวมข้อมูลกันผ่าน merge stage โดยใช้ column key เป็น key




 





ข้อจำกัด

ข้อมูลต้องเป็น pattern ว่า ในบรรทัดหนึ่งต้องมีค่าเพียง column เดียวเท่านั้น นอกนั้นต้องเป็น null
 
DataStage Release: 7.5.x
Job Type: Parallel
OS: Unix

14 May 2009

DataStage: Display File Name When Using File Pattern

ปัญหา
ต้องการอ่าน sequential file หลายๆ ไฟล์ภายใน job เดียว โดยให้มีชื่อ file แปะไว้เป็น column สุดท้ายของแต่ละ record

ตัวอย่างข้อมูล
$ ls –l /tmp/z*.txt
-rw-r--r--    1 etluser  dstage  12 May 23 17:15 z1.txt
-rw-r--r--    1 etluser  dstage  15 May 23 17:15 z2.txt
$ cat /tmp/z*.txt
z1
z1
z2
z2
z2
 
ตัวอย่างผลลัพธ์ที่ต้องการ
z1,/tmp/z1.txt
z1,/tmp/z1.txt
z2,/tmp/z2.txt
z2,/tmp/z2.txt
z2,/tmp/z2.txt



วิธีทำ






1. กำหนด Properties ของ Sequential File Stage / Output / Properties ดังนี้
  • Source/Read Method = File Pattern
  • Source/File Pattern = /tmp/z*.txt
  • Options/File Name Column = fileNameColumn




2. ใน Column ที่ชื่อว่า fileNameColumn จะเก็บชื่อไฟล์ไว้ เพราะฉะนั้นให้ลากมันไปออกที่ data set ใน mapping ของ Copy Stage ด้วย






3. เพิ่ม environment variable ชื่อ $APT_IMPORT_PATTERN_USES_FILESET ลงไปใน job parameter และกำหนดค่าตอน run time
  • กำหนดให้เป็น False (Default value) จะได้ค่า /tmp/z*.txt ออกมาใน output file

  • กำหนดให้เป็น True จะได้ค่า /tmp/z1.txt หรือ /tmp/z2.txt ตามที่มาของข้อมูลจริงๆ



DataStage Release: 7.5.x
Job Type: Parallel
OS: Unix

08 May 2009

10 Tips for Time Management (ตอนที่ 2)

6. เช็ค email วันละ 2 รอบ
email เป็นตัวกินเวลาชั้นเยี่ยมเลย เพราะหลังจากอ่านอีเมล์แล้วมักจะมีงานที่ต่อเนื่องตามมาอีกเป็นพรวน ต้องอดกลั้นที่จะเปิด email อ่านแค่วันละ 2 ครั้งเท่านั้น ไม่ต้องกังวลว่าจะมีงานด่วนเข้ามาหรอก เพราะถ้ามันด่วนจริงคนส่งจะโทรมาหาคุณแน่นอน
เมื่อเช็ค email แล้วก็ clear inbox ด้วย ถ้ามีงานต่อเนื่องให้รีบทำในช่วงเวลานี้เลย ยกเว้นเสียแต่ว่าเป็นงานใหญ่ที่ต้องใช้เวลานาน

7. จัดเอกสารให้เรียบร้อยทุกวัน
เคลียร์โต๊ะให้สะอาด จัดเอกสารต่างๆให้เป็นระเบียบ นอกจากจะสบายตาแล้ว ยังช่วยให้เราค้นหาเอกสารได้ง่ายขึ้นด้วย ยอมสละเวลาวันละนิดเพื่อทุ่นเวลามหาศาล

8. เริ่มต้นวันด้วยงานที่ใช้สมองมากที่สุด
ในตอนเช้าสมองเราจะสดชื่นที่สุด เพราะฉะนั้นจงใช้มันให้เต็มที่ เลือกดูว่างานใดใน To-Do List ที่ต้องใช้ความคิดมากที่สุด หยิบงานนั้นมาทำก่อน แล้วปิดท้ายแต่ละวันด้วยงานง่ายๆ ซึ่งจะทำให้คุณมีความสุขหลังเลิกงานกับครอบครัวได้ไม่ยากนัก

9. พักผ่อนเมื่อหมดแรง
ถ้ารู้สึกล้า ก็ละสายตาจากงานบ้าง พักเบรกสั้นๆ ซัก 5 นาที ลุกออกจากโต๊ะทำงาน เดินไปดื่มน้ำ เข้าห้องน้ำ คุยกับเพื่อนร่วมงาน กินผลไม้ซักชิ้น จะทำให้คุณสดชื่นขึ้นมาได้อีกครั้ง

10. อย่าหักโหม
อย่าหักโหมมากนัก ถ้ารู้สึกว่าทำงานต่อไปไม่ไหวแล้ว เริ่มรู้สึกสมองตัน อย่าฝืน!! เพราะผลงานที่ได้ออกมาคงจะได้ไม่ดีนัก กลับไปพัก พรุ่งนี้ค่อยลุยกันใหม่ ถึงแม้ว่าประสิทธิภาพในวันนี้จะดูไม่ดี แต่ระยะยาวแล้วมันช่วยไม่ให้เราหมดไฟไปเสียก่อน

ที่มา http://www.thesimpledollar.com/2009/03/26/most-time-management-is-rubbish-here-are-ten-things-that-work-for-me/

07 May 2009

10 Tips for Time Management (ตอนที่ 1)

ถอดความมาจาก http://www.thesimpledollar.com/2009/03/26/most-time-management-is-rubbish-here-are-ten-things-that-work-for-me/

เก็บเอาไว้ใช้เวลางานยุ่งๆ เวลามีหลายโปรเจคท์ประดังเข้ามา อย่างที่คนเขียนทิปนี้กล่าวไว้ว่า “ทิปเหล่านี้น่าจะมีประโยชน์กับคุณบ้างไม่มากก็น้อย อย่างน้อยที่สุดคงไม่เสียหายอะไรถ้าจะลองมันซักตั้ง”

1. หลีกเลี่ยงการทำงานแบบ Multi-tasking
การเริ่มงานในแต่ละครั้งเราต้องเสียเวลาในการตั้งสมาธิใหม่ทุกครั้ง ยิ่งเราทำงานแบบ Multi-tasking ทำให้เราเสีย overhead ตรงนี้เยอะขึ้น และผลลัพธ์ที่ได้คือ การห่วงหน้าพะวงหลัง สุดท้ายคุณภาพของงานโดยรวมก็ลดลงด้วย
ข้อแนะนำ: กำปั้นทุบดินครับ… ทำงานเพียงอย่างเดียวในเวลาหนึ่งๆ ทุ่มแรงลงไปให้สุดๆ ปล่อยวางงานที่เหลือไป ให้เวลากับมันซักหนึ่งชั่วโมง จากนั้นพักผ่อนห้านาที ดูว่ามีอะไรด่วนเข้ามามั้ย แล้วตะลุยงานต่อ ทำอย่างนี้วนไปเรื่อยๆ จนเสร็จงานนั้น ถ้าจะให้ดีควรป้องกันสิ่งที่จะมารบกวนคุณซะ เช่น ปิดมือถือ ปิด email ปิดห้อง ปิดทุกอย่าง ตั้งนาฬิกาปลุกไว้หนึ่งชั่วโมง คุณจะได้ไม่ต้องพะวงว่าคุณใช้เวลาไปเท่าไหร่แล้ว

2. พกสมุดโน้ตไว้กับตัวเสมอ
ไว้จดสิ่งต่างๆ ไม่ว่าจะเป็น idea ที่คิดขึ้นได้ สิ่งที่เราต้องทำ ความรู้ที่ต้องไปหาเพิ่มเติม สิ่งต่างๆเหล่านี้มักจะผุดขึ้นมาในหัวเสมอๆ บางครั้งเราก็ปล่อยมันไปและคิดว่าเมื่อมีเวลาว่างจะกลับมาคิดต่อ แล้วเราก็มักจะลืมทุกที หรือบางครั้งความคิดผุดขึ้นมา เราก็จะลงมือทำเลย ส่งผลให้เกิด Multi-tasking ขึ้นมาอีก
ข้อแนะนำ: จดไว้ครับ จดในสมุดโน้ตก็ได้ PDA ก็ได้ มีเวลาค่อยหยิบจับมันขึ้นมาดู

3. จัดการกับจดหมายวันละหนึ่งถึงสองครั้ง
ไล่ดูจดหมายที่ส่งมาหาคุณวันละครั้งหลังเลิกงาน จากนั้นก็แยกออกมาว่า อันไหนไม่ต้องสนใจก็ฉีกมันทิ้งไป อันไหนต้องลงปฏิทินหรือลงสมุดนัด อันไหนต้องเพิ่มลงใน to-do list ควรทำทุกวันจดหมายจะได้ไม่หมักหมม

4. จดรายชื่อโครงการที่อยากทำไว้
โครงการที่ว่านี้เป็นอะไรก็ได้ไม่จำเป็นต้องเกี่ยวกับที่ทำงาน เช่น โครงการทำความสะอาดห้องนอน โครงการซ่อมครัว โครงการล้างรถ เป็นต้น เขียนมันลงไปในสมุดโน้ตของเรา นึกอะไรออกก็เขียนลงไปตามลำดับ เมื่อมีเวลาว่างก็ให้กลับมาดูที่กระดาษแผ่นนี้ ไล่ดูว่าอยากทำโครงการไหน ไม่จำเป็นต้องทำตามลำดับ เมื่อทำโครงการไหนเสร็จสิ้นก็ขีดฆ่ามันซะ
วิธีนี้จะช่วยให้เราเห็นว่า เมื่อเวลาผ่านไปโครงการไหนที่ไม่ถูกขีดฆ่าโดยเฉพาะโครงการเก่าๆ แปลว่าเราไม่อยากทำมันจริงๆ

5. ทำ To-Do List ทุกวัน
ตื่นเช้ามาคุณควรจะใช้เวลานั่งจดสิ่งที่คุณต้องทำวันนี้ให้ลุล่วง ไม่ต้องมากนักซัก 4-5 อย่างก็พอ โดยไม่นับพวกงานรูทีนทั้งหลายนะ แล้วจงทำมันให้ลุล่วงไปให้ได้ทุกข้อ ใช้เทคนิคในข้อ 1 มาช่วยก็ได้นะ
อีก 5 ข้อมาต่อตอนหน้า

04 May 2009

Experimental Travel

เห็นพวกเราชอบเที่ยวกัน เลยเอาการท่องเที่ยวแบบทดลอง (Experimental Travel) มานำเสนอ

นาย Joel Henry ชาวฝรั่งเศส แกคงเที่ยวมาเยอะ เที่ยวแบบธรรมดาคงไม่มีอะไรตื่นเต้นแล้ว แกเลยนึกหาอะไรสนุก ออกจะเพี้ยนๆด้วย ใส่เข้าไปในทริป เช่น
  • Fly by Night คือเลือกไปถึงที่หมายในตอนหัวค่ำ แล้วตะลุยเที่ยวไม่หลับไม่นอนก่อนจะออกเดินทางจากเมืองนั้นก่อนพระอาทิตย์ขึ้น
  • Barman's Knock ทริปคนขี้เมา เริ่มด้วยไปที่ผับๆหนึ่ง สั่งเครื่องดื่ม 1 หน่วย (กั๊ก ขวด เหยือก อะไรก็ได้) แล้วถามบาร์เทนเดอร์ว่าผับไหนและเครื่องดื่มอะไรที่เขาชอบ แล้วเราก็ไปตามที่เขาบอก ทำซ้ำไปเรื่อยๆ จนไปต่อไม่ไหว
  • Monopoly Travel ทริปเกมเศรษฐี ไปถึงประเทศไหนก็ซื้อเกมเศรษฐีของประเทศนั้นมา แล้วก็ไปตามสถานที่ต่างๆ ที่ระบุในเกมเท่านั้น
  • Ero Tourism ทริปนี้หมาะสำหรับคู่รักครับ โดยให้แยกกันเดินทางกันคนละวิธี เช่น คนหนึ่งไปรถไฟ อีกคนไปเครื่องบิน เมื่อถึงเมืองที่หมายก็พยายามหากันให้เจอ
เจ๋งมั้ยครับ? แต่แบบสุดท้ายนี่ออกจะเสี่ยงไปหน่อยนะ แต่ผู้ชายบางคนอาจจะชอบก็ได้ อิอิ

ที่มา: หนังสือ"ป๋าไม่กลัวน้ำร้อน"