5/11/2015

ETL คืออะไร?


ต่อจากคราวเก่าที่พูดเรื่อง Business Tools และ Data warehouse กันไปแล้วนะครับ

การที่เราจะนำข้อมูลมาเก็บลง Data warehouse ได้นั้น เราจะต้องผ่านขั้นตอน ที่เรียกว่า ETL ก่อน แล้วมันคืออะไรล่ะ


ETL ย่อมาจาก Extract Transform Load ครับ

Extract ดึงข้อมูลมาจาก Database หลายๆตัว หรือดึงมาจากข้อมูลด้านนอก ( External Sources) ครับ

Transform จะเป็นส่วนตรวจสอบแล้วจัดรูปนะครับ

         - Data Cleaning คือการตรวจสอบความถูกต้องข้อมูล ถ้าผิดก็จะแก้ไขให้
         - Data Mapping คือการจัดรูปแบบให้เหมือนกันครับ เช่น จาก Database ตัวแรก เก็บข้อมูล เพศ ชายเพศหญิง เป็น M ,F  ส่วนอีกตัวเก็บเป็น Male , Female ซึ่งมันไม่เหมือนกัน เราจำเป็นต้อง format มันให้อยู่ในรูปแบบเดียวกัน

Load ขั้นตอนนี้คือการนำข้อมูลที่ Transform แล้ว เข้าสู่ Data warehouse ครับ


มารู้จักกับ ETL Tools กันต่อเลย

ETL Tool คือเครื่องมือที่จะจัดการข้อมูล ในรูแบบของ ETL ครับ ซึ่งมันฉลาดครับ มันรู้จักกับชนิดข้อมูลต่างๆ ซึ่งเราก็ควรให้เหมาะสมครับ เช่นเราใช้ Database ของ Oracle เราก็ควรจะซื้อ ETL ของ Oracle มานั่นเอง ซึ่งแต่ละยี่ห้อก็อาจจะมีความสามารถที่แตกต่างกันออกไป

ETL Tools ทาอะไรบ้าง?

Data Cleansing - เมื่อมีข้อมูลมาแล้ว เราจะต้องมีการตรวจสอบความถูกต้องของข้อมูล แล้วปรับให้มันดีขึ้น รวมทั้งกาจัดข้อมูลทีผิดพลาดไป

Data Transformation - ข้อมูลบางอย่างที่เราได้มามันไม่ได้อยู่ในรูปแบบที่เราจะเอาไปวิเคราะห์ได้ ง่ายๆ เช่น เรามีข้อมูลของคน เช่นวันเดือนปีเกิด ของลูกค้า แล้วเวลาเราเอาไปวิเคราะห์เราไม่ได้เฉพาะเจาะจงเป็นวัน เราจะคำนวนเป็นช่วงอายุ เช่นวัยเด็ก ผู้ใหญ่ ชรา เป็นต้น ทาให้เราต้อง convert ก่อนว่าเป็นวัยไหน

Data Loading and Refreshing - กาหนด schedule ได้ว่าจะให้โหลดมาทุกๆกี่วัน หรือทุกๆเท่าไหร่ รวมทั้งยังสามารถกำหนด storage ปลายทางได้อีกด้วย

Why is ETL important? ทำไม ETL สำคัญ
- ช่วยในการแก้ไขข้อมูลพลาดข้อมูล
- ปรับข้อมูล จากหลายๆ Database และจาก External Source ให้อยู่ในรุปแบบเดียวกัน ให้ใช้ด้วยกันได้
- เพิ่มมูลค่าให้ข้อมูล เพราะเราสามารถนำข้อมูลนั้นมาวิเคราะห์ได้
- ข้อมูลเหล่านั้นไม่สามารถควบคุมได้ เพราะ ใช้กันอยู่ทุกวัน จะไปปรับเปลี่ยนมันยาก เลยต้องมี ETL เพื่อเอามาแปลงให้มันไปในทำงเดียวกัน


Metadata repository เป็นตัวอธิบายโครงสร้างของ Data warehouse จะคล้ายๆกับ Data dictionary แต่จะระบุข้อมูลเยอะกว่า เช่นมาจาก field ไหน table อะไร transform (ETL) ยังไง  Load เข้าเวลาไหน

ตัวนี้จะใช้เพื่อทำ ETL เป็นหลัก ก่อนทำ ETL ต้องอ่านตัวนี้ก่อน




5/09/2015

Business Intelligence Tools คืออะไร

การทำธุรกิจปัจจุบันนั้น เราจะมีการนำ IT เข้าไปร่วมด้วยเสมอๆ ตั้งแต่อดีตมาแล้ว ที่นำคอมพิวเตอร์ มาพิมพ์ข้อมูล ว่าเกิดอะไรขึ้นบ้าง และเราทำอะไรไปบ้าง แต่ในอดีตเรายังไม่ได้นำ IT มาช่วยตัดสินใจว่าเราจะทำอะไรต่อ จะลงทุนอย่างไร

ซึ่งปัจจุบัน เรามีการนำ IT มาช่วยในการวิเคราะห์ ช่วยคิดช่วยตัดสินใจ และนี่คือที่มาของเครื่องมือที่จะช่วยในการทำธุรกิจอย่างชาญฉลาด เพื่อผลตอบแทนที่ดีขึ้น

เราเรียกเครื่องมือทางธุรกิจนั้นว่า Business Intelligence Tools ซึ่งแบ่งเป็นหลายส่วน เช่น

Data Warehouses คือคลังข้อมูลขนาดใหญ่ ที่รวบรวมข้อมูลที่จำเป็นในการวิเคราะห์ ต่อธุรกิจ ซึ่งจะดึงข้อมูลมาจากหลายๆแหล่งข้อมูล โดยจะเน้นข้อมูลที่สำคัญที่เราต้องการจะนำไปวิเคราะห์ โดย เราจะใช้ OLTP (Online Transaction Processing) Tools ในการช่วยดึงข้อมูลมา

OLTP เป็น Transaction สำหรับจัดการข้อมูลในแต่ละวัน ว่าทำอะไรไปบ้าง ขายอะไรไป เท่าไหร่ อย่างไร ลูกค้าคนไหนเป็นต้น และเราจะนำข้อมูลพวกนี้ดึงมาเก็บไว้ใน Data Warehouses ซึ่งเวลาเราอย่างดูยอดขาย หรือดูสินค้าไหนขายดีสุด เราก็สามารถดึงขึ้นมาดูได้

โดยข้อมูลเหล่านี้ เหมาะสำหรับช่วยผู้บริหารดู เพื่อช่วยในการวิเคราะห์และตัดสินใจ

- Data Warehouses แทบไม่ต่างจาก Database เลย และมีวิธีการเก็บข้อมูลเหมือน Database เลย Software ที่ใช้เก็บข้อมูลก็เหมือนกัน เพียงแต่การออกแบบในการเก็บจะต่างกัน Data Warehouse จะสนใจข้อมูลที่จำเป็นต่อธุรกิจเท่านั้น

ข้อมูลหลักๆที่ Data Warehouses สนใจคือ

- ข้อมูลอะไร หรือสินค้า บริการอันไหนที่ถูกซื้อหรือถูกใช้
- เมื่อไหร่? คนซื้อสินค้าเราเยอะ หรือใช้บริการเราเยอะในช่วงเวลาไหน
- ความถี่เยอะแค่ไหน เช่น คนมาซื้อเยอะแค่ไหน ใช้บริการมากแค่ไหน
- จากใคร เช่น ใครสนใจสินค้าเราเยอะ ตรง target เราไหม เพศอะไร อายุเท่าไหร่
- ช่วงไหนของวันที่คนมาซื้อหรือใช้บริการเยอะที่สุด

Characteristics Of Data Warehouse

- Subject Oriented คือจะมองในมุมของสิ่งใดสิ่งหนึ่งเลย เช่น มองในเรื่องลูกค้า มองในเรื่อง Product

- Time-variant จะเกี่ยวข้องกับเรื่องของเวลา เพื่อเก็บข้อมูลในอดีต ว่าเป็นข้อมูล ของช่วงเวลาไหน ซึ่งจะทาให้เราสามารถคาดเดาได้ว่าแนวโน้มของ เทรนด์ในอนาคตต่อไป จะเป็นอย่างไร และควรตัดสินใจอย่างไร

- Non-volatile จะเก็บข้อมูลถาวร เพราะในอนาคตก็จะนำข้อมูลเก่าๆ มาประมวลผลเพื่อวิเคราะห์อยู่เสมอๆ

-Integrated จะรวมข้อมูลจากหลายๆ ส่วน ทั้งจาก Database ภายใน และ ข้อมูลจากที่อื่นๆ

Data Mart คือ Data Warehouse ขนาดย่อย  และจะที่โฟกัสไปในส่วนย่อยนั้นๆที่เราต้องการเลย

เหตุผลที่สร้าง Data Mart คือ
ง่ายต่อการเข้าถึงข้อมูลที่ใช้บ่อยๆ
- สามารถแบ่งแยกกลุ่มผู้ใช้ได้
- ราคาถูกกว่าที่จะต้องนำ ข้อมูลจาก Data Warehouses ทั้งหมดมาใช้

Data Warehouse Architectures

- Data Warehouse Projects ข้อมูลมาจากหลายๆแผนกในองค์กร ไม่ได้มาจากแผนกใดแผนกหนึ่ง ส่วนใหญ่จะใช้ Enterprise Data Model เพื่อช่วยในการอธิบายโครงสร้างต่างๆ ของ Data warehouse เรียกคำอธิบายนั้นว่า Metadata

- Top-down แบบ Top-down นั้นจะออกแบบที่ตัว Data Warehouse ก่อน คือออกแบบ DB สาหรับทั้งองค์กรก่อน แล้วค่อยออกแบบ Database สาหรับแผนกต่างๆ ทีหลัง

ข้อดี ของแบบนี้คือ รูปแบบของข้อมูลที่เก็บลง Database จะเป็นไปในลักษณะเดียวกัน มาตรฐานเดียวกันทั้งองค์กร

ข้อเสีย ของ Top-down คือ ช้ากว่าแบบ Bottom-up เพราะว่าแบบ Top-down จะต้องเรียกประชุมทั้งองค์กร (ทุกๆ แผนก) เพื่อวางมาตรฐานให้เหมือนๆ กันก่อน แล้วจึงค่อยเริ่มพัฒนาตัว Data mart ของแต่ละแผนก


- Bottom-up แบบ Bottom-up นั้นจะออกแบบที่ Data Mart ของแต่ละแผนกก่อน แล้วจึงค่อยไปออกแบบ Data Warehouse ที่ใช้ทั้งองค์กรทีหลัง

ข้อดี ของ Bottom-up คือ ออกแบบได้เร็ว เพราะว่าไม่ต้องรอประชุมทั้งองค์กร

ข้อเสีย ของ Bottom-up คือ รูปแบบของสิ่งที่ออกแบบมาของแต่ละแผนกจะไม่ตรงกัน เช่น บางแผนกใส่เพศเป็น Female กับ Male แต่อีกแผนกใส่เป็น ชาย กับ หญิง ทาให้รูปแบบไม่ตรงกัน เวลานาไปใช้งานร่วมกัน ก็จะใช้ไม่ได้