ตัวอย่างการใช้งาน Kettle: การ Extraction ของข้อมูลประเภท CSV ปริมาณมากผ่าน Spoon tool

Data Integration  คือการขั้นตอนในการรวบรวมข้อมูลต่างๆ ที่เกี่ยวข้องกับองกรค์ซึ่งมีผลต่อการนำไปใช้ต่อในภายหลังไม่ว่าจะเป็น การทำรายงาน (Report), การวิเคราะห์ข้อมูล (Data Analysis), หรือ การทำแผนภาพรวม (Dashboard). โดยในส่วนการทำงานนี้ Pentaho ได้นำเสนอการใช้งานผ่าน Package ที่ชื่อว่า Kettle.

Kettle ประกอบไปด้วยส่วนสำคัญที่ใช้จัดการเกี่ยวกับข้อมูลต่างๆ ไปจนถึงการทำ Job entries ของข้อมูลโดย Kettle นั้นได้จัดเตรียมส่วนสำคัญไว้ให้ผู้ใช้สามารถใช้งานได้ตรงกับปัญหาดังต่อไปนี้

  1. การดึงข้อมูล (Extraction) Kettle สามารถดึงข้อมูลได้จากฐานข้อมูลหรือไฟล์ทุกประเภทที่สนับสนุน JDBC driver รวมไปถึง XML และ Excel
  2. การโอนย้ายข้อมูล (Transportation) Kettle สามารถจัดการข้อมูลใน database ทั้งการแบ่งข้อมูล (Splitting), การแบ่งข้อมูลแบบมีเงื่อนไข (Partitioning), การยุบรวมข้อมูล (Merging), การรวมข้อมูลที่มีความเกี่ยวข้องกัน (Joining) และการทำซ้ำข้อมูล (Duplicating)
  3. การเปลี่ยนข้อมูล (Transformation) Kettle สามารถปรับเปลี่ยนข้อมูลให้เหมาะสมก่อนนำไปใช้เช่น การคิดคำนวน (Calculation), การเขียนscript เพื่อปรับเปลี่ยนข้อมูลใน database ให้เหมาะสมก่อนการนำไปใช้, การตัดกรองข้อมูล (Filtering)
  4. Environment ต่างๆ ที่ช่วยให้การทำงานง่ายขึ้นเช่น Spoon (Design), Kitchen (Job Launch), Carte (Server), Pan(Transformation Launch)
     

และเพื่อให้เห็นภาพการใช้งาน Kettle ได้ง่ายขึ้น จึงขอนำเสนอผ่านตัวอย่างการใช้งาน 2 ข้อ ดังนี้

Example 1 : ตัวอย่างการใช้งานในเรื่อง Extraction ของข้อมูลประเภท CSV ผ่าน Spoon tool ที่ข้อมูลมีจำนวนมากไม่สามารถที่จะสร้างโดยการกรอกทีละข้อมูลได้

*ไฟล์ข้อมูลที่ใช้ประกอบตัวอย่างสามารถดาวน์โหลดได้ที่ท้ายบทความ

1. เปิดโปรแกรม Spoon (window) หรือ Data Integration (Mac)

 

2. เลือกเมนู  File -> New -> Transformation

 

3. ลาก CSV File Input จากโฟลเดอร์ Input ในรายการด้านซ้าย หากข้อมูลที่ต้องการเป็นประเภทอื่น ก็สามารถลากประเภทอื่นได้เช่นกัน

 

4. ลาก Table Output จากโฟลเดอร์ Output เพราะในที่นี้เราต้องการนำข้อมูลออกไปยัง database หลักจากนั้นจะได้ผลตามภาพ

 

5. จากนั้นจะเริ่มการตั้งค่าของแต่ละไฟล์เป็นประเภทตามที่เราต้องการ ตามรูปโดย การคลิกขวาที่รูปและเลือก Edit Step.

 

6. จากนั้น เลือกไฟล์โดยกด Browse และเลือกไฟล์ CSV ที่ต้องการ extract ลง Database (ไฟล์ตัวอย่างสามารถดาวน์โหลดได้ที่ท้ายบทความ)

 

7. เลือก Get Fields เพื่อให้โปรแกรมทำการสร้างประเภทของข้อมูลตรงสอดคล้องกับไฟล์ที่ได้เลือกมา ละจึงกด Ok ที่ Sample Size ที่ 100 line หรือมากกว่าหากต้องการความแม่นยำมากขึ้น. จากนั้นตรวจสอบตารางด้านล่าง ประเภทของข้อมูลควรจะสอดคล้องกับ CSV ที่เลือก หากไม่ตรงตามต้องการสามารถแก้ไขได้

 

8. กด Shift และคลิกซ้าย จากนั้นลากจาก CSV File Input ไปยัง Table Output และเลือก Main Output of Step (หากทำถูกต้องหัวลูกศรจะต้องชี้ไปทาง Table Output)

 

9. ดับเบิลคลิกที่ Table Output จะปรากฏหน้าต่างดังภาพ. สร้างการติดต่อกับฐานข้อมูลโดยการกด New และเลือกประเภทของฐานข้อมูลที่ต้องการ. ในตัวอย่างได้ใช้ฐานข้อมูลของ PostgreSQL จากนั้นกด Ok.

 

10. จากนั้นกด Browse ที่ Target Schema และเลือก Public.

 

11. กดปุ่ม SQL จะปรากฏหน้าต่างดังภาพโดยผู้ใช้สามารถแก้ไขโค้ด SQL ได้ตามต้องการและจึงกด Execute โดยในตัวอย่างจะเป็นการสร้าง Table ในฐานข้อมูลที่ได้เลือกไว้.

คำสั่งตัวอย่างที่ใช้: create table "public".demotest(hcode varchar(5), "year" bigint, sex bigint, amount bigint);

 

12. เลือกที่แถบ Database Fields จากนั้นกดปุ่ม Enter Field Mapping

 

13. กดปุ่ม Guess โปรแกรมจะทำการ Mapping ประเภทของข้อมูลในแต่ละ Field โดยอัตโนมัติจากนั้นกด Ok. จบขั้นตอนการตั้งค่า

 

14. เมื่อตั้งค่า Input และ Output เสร็จสิ้น. กดที่ปุ่มสามเหลี่ยมสีเขียวตามภาพ

 

15. เมื่อกดสามเหลี่ยมสีเขียวแล้วจะปรากฏหน้าต่างดังภาพและจึงกด Launch เพื่อเริ่มการทำงาน

 

16. หากโปรแกรมทำงานได้อย่างถูกต้องจะปรากฏ ลูกศรถูกสีเขียว ขึ้นที่ CSV File Input icon และ Table Output icon. ข้อมูลทั้งหมดจะถูกย้ายจาก CSV ลงไปยังฐานข้อมูลที่ได้เลือกไว้ แต่ถ้าหากเกิดปัญหาให้ลองเพิ่มขนาด Sample Size ตามขั้นตอนที่ 7 ใหม่ ตรวจสอบฐานข้อมูลที่ใช้ และลองตรวจสอบขั้นตอนการทำงานที่ผ่านมาซ้ำอีกครั้ง

 

ในบทความหน้าจะนำเสนอการใช้งาน Kettle อีกหนึ่งตัวอย่าง

 

Comments

Readers want to read

Readers want to read something they did not know before. That is why it is better that you should relevant research before writing. You will be able to write better post this way. 

Nice Info...This is excellent

Nice Info...This is excellent post. Its having good description regarding this topic . It is informative and helpful. I have known many information from this..Thanks a lot for sharing your valuable views through this blog.. Thank You Very Much..

vinyl bumper stickers

Austin RemodelingIt is

Austin RemodelingIt is informative and helpful. I have known many information from this..Thanks a lot for sharing your valuable views through this blog.. Thank You Very Much..

nice post keep it

nice post keep it up

thesis writing

nice post iphone 4 case

nice post

iphone 4 case