Jump to content






Photo

Note :: เรียนรู้ Pentaho Data Integration ( PDI )

Posted by up1 , in pentaho 10 March 2012 · 3875 views

pentaho pdi
ได้มีโอกาสเข้าเรียน Pentaho แบบฟรีๆ ที่ TARAD.com ซึ่งสอนโดย @roofimon ซึ่งสิ่งที่เรียนประกอบไปด้วย

Data Warehouse คืออะไร
เป็นการนำข้อมูลที่มีอยู่ เช่นจาก database ไปวิเคราะห์ ( Analytic ) และทำรายงาน ( Reporting ) โดยโครงสร้างเป็นดังนี้
Attached Image

จากภาพ จะเห็นได้ว่า ข้อมูลจะมาจากระบบต่างๆ มีรูปแบบของข้อมูลที่เหมือนหรือแตกต่างกันทั้งข้อมูลและโครงสร้าง จะนำข้อมูลเหล่านั้นเขามายัง Data Warehouse จะต้องทำผ่าน ETL ( Extract Transformation Loading ) โดยข้อมูลจะถูกนำไปวิเคราะห์และทำรายงาน  และต่อจากนั้นจะนำข้อมูลไปทำเรื่อง Data Mart/ Data Mining ต่อไป

การออกแบบ Data Warehouse จะมีอยู่ 2 วิธีคือ
  • Top-down
  • Bottom-up
สถาปัตยกรรมของ Pentaho เป็นดังรูป
Attached Image

Pentaho จะเตรียมเครื่องมือต่างๆ ไว้ให้ดังนี้
  • Design Studio (PDS)
  • Meta Editor (PME)
  • Schema Workbench (PSW)
  • Aggregate Designer (PAD)
  • Report Design (PRD)
  • Spoon or Date Integration (PDI)
  • Weka สำหรับการทำ Data Mining
ในการเรียนครั้งนี้ จะเน้นเรื่อง ETL คือการแปลงข้อมูลจากรูปแบบหนึ่งไปอีกรูปแบบหนึ่ง ที่สามารถนำไปวิเคราะห์และทำรายงานได้ ผ่านเครื่องมือที่ชื่อว่า Pentaho Data Integration หรือ Kettle

ในการใช้งาน Kettle นั้น มีขั้นตอนดังนี้
1. ทำการ download file จากที่นี่
2. ทำการ extract file
3. ทำการ run file spoon.bat หรือ spoon.sh ซึ่งจะแสดงผลดังนี้
Attached Image

ส่วน Workshop ที่มีในการเรียนครั้งนี้ประกอบไปด้วย
1.การ load ข้อมูล Input จาก text file ทั้งปกติ และแบบ fix
2.การ transform หรือแปลง Input ไปยัง Output ตามที่ต้องการ ซึ่งประกอบไปด้วย
  • การ split หรือแบ่งข้อมูลตามตัวคั่นต่างๆ เช่น - เป็นต้น
  • การคำนวณต่างๆ ซึ่งประกอบไปด้วย Calculator, Formula  และ Javascript
  • การจัดเรียงลำดับของข้อมูล ตาม column ที่กำหนด
  • การจัดกลุ่มของข้อมูล
  • การนำจำนวนตามกลุ่มของข้อมูล
3. การ run การ transformation ผ่าน command line ด้วยคำสั่ง pan โดยสามารถทำงานร่วมกับ Scheduler หรือ Crontab ได้

ส่วนการบ้านหลังจากการเรียน คือ การแปลงข้อมูลตำบล อำเภอและจังหวัด จากกรมการปกครอง โดยข้อมูลที่ได้มานั้น จะมีรูปแบบดังนี้

Quote

10000000|กรุงเทพมหานคร|
10010000|เขตพระนคร|
10010100|พระบรมมหาราชวัง|
10010200|วังบูรพาภิรมย์|
10010300|วัดราชบพิธ|
10010400|สำราญราษฎร์|
10010500|ศาลเจ้าพ่อเสือ|

ผลที่ต้องการก็คือ
1. ข้อมูลจังหวัด
2. ข้อมูลอำเภอของแต่ละจังหวัด
3. ข้อมูลตำบล ของแต่ละอำเภอและจังหวัด

ขั้นตอนการ transform ข้อมูลในแบบที่ผมทำ เป็นดังนี้
1. จากข้อมูลดังกล่าว ข้อมูลจังหวัดมีรูปแบบดังนี้
10000000
20000000
30000000

ดังนั้น ข้อมูลแต่ละตัวจะอยู่จังหวัดไหน จะใช้สูตร X/100000  แล้วนำผลลัพธ์ที่เป็นจำนวนเต็มมาคูณด้วย 100000 จะได้หมายเลขของจังหวัดในแต่ละอำเภอ และ ตำบล

2. จากข้อมูลดังกล่าว ข้อมูลอำเภอมีรูปแบบดังนี้

Quote

10000000|กรุงเทพมหานคร|
10010000|เขตพระนคร|
10020000|เขตดุสิต|
ดังนั้น ข้อมูลแต่ละตัวจะอยู่อำเภอไหน จะใช้สูตร X/10000  แล้วนำผลลัพธ์ที่เป็นจำนวนเต็มมาคูณด้วย 10000 จะได้หมายเลขของอำเภอในแต่ละตำบล

ใช้ Calculator ได้ดังรูป
Attached Image

โดยผลการทำงานเป็นดังรูป
Attached Image

และต่อจากผลลัพธ์ดังกล่าว จะต้องนำไปผ่านการ grouping และ filter เพื่อนำข้อมูลไปใช้งานต่อไป

Reference Website
Wikipedia :: Data warehouse
Pentaho Data Integration (Kettle)
Pentaho Data Integration 4 Cookbook
Pentaho 3.2 Data Integration: Beginner's Guide
Pentaho Kettle Solutions: Building Open Source ETL Solutions with Pentaho Data Integration




แจ๋วเลยครับ ขอบคุณคุณ up1 ด้วยครับ :) สุดยอดทั้งคู่เลย (คุณรูฟด้วย)
  • Report

Search My Blog

July 2014

S M T W T F S
  12345
6789101112
13141516171819
20212223 24 2526
2728293031