13/01/2560

การใช้งาน Pentaho Data Integration (Transformations)

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

เรามาเริ่มการใช้งานเบื้องต้นกันเลยดีกว่า

ขั้นตอนแรกมาเริ่มสร้าง Project ให้ไปที่ Tools Bar ด้านบนไปที่ File -> New -> Transformation หรือกด Ctrl+N จะเป็นการเริ่ม Project ใหม่ ซึ่งค่าเร่มต้นชื่อ Project จะเป็น "Transformation 1"





เราจะมีหลักๆ 2 ส่วน คือ
  1. ส่วนของ Tools ซึ่งจะเป็นเครื่องมือต่างๆ ทั้ง Input และ Output ทั้งยังมี Script อีก
  2. ส่วนของ Design เป็นที่ดู Flow ของงานว่าต้องผ่านอะไรบ้าง ก่อนไปถึง Output ซึ่งมีความคล้าย Flow Chart

ซึ่งในที่นี้เราจะใช้ Tools ทั้งหมด 3 ตัว เราสามารถค้นหาชื่อของ Tools ได้จากช่องด้านบนได้เลย และสามารถลากวางได้เลย
  1. CSV file input เอาไว้รับข้อมูลจาก File CSV โดยจะใช้ข้อมูลตามภาพด้านล่างนี้ ตั้งชื่อ "data_test.csv"
  2. Modified Java Script Value เอาไว้เขียน Script ตรวจสอบ
  3. Text file output ในที่นี้เราจะนำข้อมูลทั้งหมด ใส่เข้าไปใน Text File (.txt)


ต่อมาให้เราเชื่อมทั้ง 3 Process ให้เหมือนภาพด้านล่าง โดยการกด Shift ค้างไว้และลากจาก Process นึงไปหาอีก Process นึง ให้เลือก "Main output of step"




ให้คลิกขวาที่ CSV file input และเลือก Edit



ที่ Filename ให้กด Browser.. และเลือก File CSV ที่้เราได้เตรียมเอาไว้


ให้กดปุ่ม "Get Fields" เพื่อให้โปรแกรมหา fields ของข้อมูลใน File CSV


จะได้อย่างภาพด้านล่าง และกดปุ่ม "OK" เป็นอันเสร็จส่วนของ Process Input ของเราคราวนี้เราก็จะมีข้อมูลในการทำสิ่งต่างๆแล้ว


ส่วนต่อมาเราจะนำข้อมูลที่ได้มาใช้ ในที่นี้ผมจะตรวจสอบนักศึกษาที่ได้เกรดมากกว่า 2.99 และจะแจ้งว่าผ่าน(Pass) ถ้าน้อยกว่า 3.00 จะแจ้งไม่ผ่าน(Not) และจะนำข้อมูลไปใส่ใน Fields ที่จะเพิ่มขึ้นมา ซึ่งการตรวจสอบนี้จะทำให้ส่วนของ Modified Java Script Value

ให้เราคลิกขวาที่ Modified Java Script Value และเลือก Edit..


และติ๊กที่ Compatibility mode จะเป็นการนำข้อมูลเดิมไปเป็น Output ซึ่งเราสามารถเลือกว่าอยากให้มี Output Fields นี้จะมีหรือไม่ในขั้นตอน Process ของ Output ได้


เรายังอยู่ที่ Process "Modified Java Script Value" ตอนนี้เราจะเขียน Code กันเล็กน้อย
if(GRADE > 2.99){
PASS = "PASS";
}else{
PASS = "NOT";
}

จะอธิบายในส่วนของ Code เป็นการตรวจสอบค่าตัวแปรเล็กน้อย (อาจต้องใช้ความรู้พื้นฐานการเขียนโปรแกรมสักเล็กน้อย) GRADE คือตัวแปร(Variable) ซึ่งจะนำมาตรวจสอบว่ามีค่ามากกว่า(>) 2.99 หรือถ้าเป็นจริงจะให้ตัวแปร(Variable) PASS มีค่าเป็น "PASS" ซึ่งอยู่ในชนิด String ถ้าไม่เป็นจริงจะให้ตัวแปร(Variable) PASS มีค่าเป็น "NOT"


ซึ่งเมื่อเราสร้างตัวแปร(Variable) PASS มาแต่ตอนนี้ยังไม่มี Fields ที่รองรับตัวแปรนี้เพราะฉนั้นเราจะสร้าง Fields ใหม่ขึ้นมาโดยให้มี ชนิด(Type) ของ Field เป็น String และชื่อของ Fields(Fieldsname) ให้ชื่อว่า "PASS" ซึ่งจะชื่อเหมือนชื่อของตัวแปร ดังภาพด้านล่าง และกด "OK" เสร็จในส่วนของ Process นี้


มาในส่วนของ Process สุดท้ายเป็น Process ที่จะนำข้อมูลทั้งหมดออกมาในรูปแบบของฐานข้อมูลหรือไฟล์ข้อมูลต่างๆ ในที่นี้เราจะให้ออกมาเป็น Text File(.txt) เริ่มด้วยการคลิกขวาที่ Text file output และเลือก Edit เช่นเคย


ที่ Filename กด Browse เลือกที่จะให้ Text File ที่เป็น Output นั้นไปอยู่ได้เลยอย่าลืมตั้งชื่อด้วยนะครับ


ต่อมาให้ไปที่ Tab Content ในส่วนของ Encoding ให้เลือกเป็น "UTF-8" เพื่อให้รองรับภาษาไทย


ไปต่อที่ Tab Fields ให้กดปุ่ม "Get Fields"


จะมี Fields ต่างๆขึ้นมา รวมทั้ง Fields ใหม่คือ PASS ด้วย เราสามารถลบ Fields ที่ไม่ต้องการแสดงได้โดยการคลิกไปที่ Fields นั้นและกดปุ่ม Delete เมื่อเสร็จเรียบร้อยกดปุ่ม "OK" เป็นอันเสร็จ Process สุดท้าย


สุดท้ายให้เรากดปุ่ม F9 จะเป็นการ Run เมื่อมีหน้าต่าง Run Option ขึ้นมาให้กด Run อีกทีและรอสักครู่ ถ้าไม่มีการ Error จะมีเครื่องหมายถูกทุก Process



เมื่อเข้าไปดู File Output จะมีข้อมูลที่เราต้องการแสดง ดังภาพ ซึ่งจะมี Fields PASS เพิ่มเข้ามา


นี้เป็นการเริ่มต้นของผมกับโปรแกรม Pentaho Data Integration ซึ่งต่อไปผมอยากให้ข้อมูลนั้น Output ไปอยู่ที่ mySQL และดึงฐานข้อมูลซัก 2 ฐานข้อมูล

หวังว่าบทความนี้จะเป็นประโยชน์แก่ผู้สนใจนะครับ

ขอบคุณครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น