Microsoft SQL Azure เป็นหนึ่งในแพลตฟอร์ม Windows Azure จากไมโครซอฟต์ (Azure คืออะไร?) ตอนนี้เปิดให้ลงทะเบียนทดลองใช้ได้ฟรีแล้ว โดยยังเป็นเวอร์ชัน CTP (Community Technical Preview) อยู่ ใครสนใจก็ลองใช้ดูนะครับ

20090914แต่ละปีพอถึงเวลาต้องวางแผน ว่าจะทำโปรเจ็คไอทีอะไรบ้าง เรื่องที่ชวนปวดหัวอยู่เป็นประจำก็คือ จะเลือกโปรเจ็คอย่างไรดี คนที่ดูแลแผนงาน IT คงเคยพบว่า ฝ่ายขายก็ขอให้ทำไอ้นั่น มาร์เก็ตติ้งต้องการไอ้นี่  CEO อยากให้มีระบบนี้ แถมยังเจอประเภทประกาศกรมสรรพากร ประกาศกระทรวงแรงงาน หรือไอซีที บังคับว่าระบบคอมพิวเตอร์ในบริษัทต้องมีลักษณะตามนี้ๆๆๆ ไม่ทำตามเจอปรับ บางทีก็เจอไฟล์ทบังคับ ไม่ได้อยากทำเล้ย แต่ก็ต้องหาเงินมา upgrade ระบบเพราะพ่อเจ้าประคุณ Microsoft, Oracle, SAP และอื่นๆ เกิดไม่ซัพพอร์ทเวอร์ชั่นเก่าๆ ขึ้นมาเสียเฉยๆ ถ้าไม่ upgrade เดี๋ยวมีปัญหาขึ้นมา หาคนมา patch ให้ไม่ได้เสียอีก

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

หลักการนี้ผมเรียกกันสั้นๆ ว่า FFA ย่อมาจาก Fit, Feasibility, and Attractiveness ก็เป็นวิธีง่ายๆ ในการให้คะแนนข้อเสนอโครงการแต่ละข้อ ตามหลักเกณฑ์ FFA โปรเจ็คไหน ได้คะแนนสูง ก็ทำโปรเจ็คพวกนั้นก่อน เงินกับคนหมดเมือไหร่ ก็ขีดเส้นหยุดพอได้ เกณฑ์การให้คะแนนแต่ละข้อก็ให้เท่าๆ กัน เอาเป็นว่าสเกล 1-5 ก็แล้วกัน คือ คะแนนสูงสุดคือ 5 คะแนนในแต่ละหัวข้อของ FFA ดังนั้นคะแนนเต็มคือ 15 คะแนน

ลองมาดูกันบ้างว่า FFA แต่ละตัวหมายถึงอะไรบ้าง

Fit : ความเข้ากันได้กับแผนงานของธุรกิจ
ประเด็นแรกเลย ระบบหรือโครงงานไอทีที่ตั้งใจจะทำนั้น มีความสอดคล้อง หรือให้การสนับสนุนส่งเสริมแผนงานของหน่วยงานแค่ไหนอย่างไร อันนี้ต้องอาศัยความเข้าใจในกลยุทธ์ของกิจการพอสมควร เพราะแผนงานธุรกิจ วัดถึงสุดท้ายแล้วก็ไม่พ้น ยอดขาย กำไร ส่วนแบ่งตลาด แต่ถ้าเจาะเข้าไปอีกขั้น จะเห็นความแตกต่าง การเพิ่มกำไร อาจจะทำได้โดยการเพิ่มยอดขาย หรือลดต้นทุนก็ได้ ระบบงานไอทีที่สอดคล้องและส่งเสริมกับแผนงานของบริษัท ควรจะได้คะแนนมากกว่าโปรเจ็คที่ไม่มีส่วนเกี่ยวข้องกัน

Feasibility : ความเป็นไปได้ทั้งทางด้านเทคนิคและทางเศรษฐศาสตร์
คะแนนสำหรับ feasibility นี่จะให้สำหรับโครงการที่เชื่อว่า “เป็นไปได้” หรือมีข้อพิสูจน์แล้วว่า ทำได้ หรือเป็นไปได้ ยิ่งถ้าเคยทำมาก่อนแล้วนี่คะแนน feasibility นี่ให้ 5 ไปเลย แต่ถ้าเป็นอะไรที่ เจ๋งสุดๆ ทำเป็นเจ้าแรกในโลกเลย อันนี้เอาคะแนนต่ำๆ ไปเพราะความเสี่ยงสูง ความเป็นไปได้นี่ไม่ได้เฉพาะแค่เรื่องทางเทคนิคนะครับ แต่รวมถึงเรื่องความเป็นไปได้ทางการเงินด้วย

Attractiveness : ความน่าสนใจ (จากฝั่งธุรกิจ)
หรือบางทีอาจจะเรียกว่า cool factor ก็ได้ บางโปรเจ็คอาจจะมีความน่าสนใจสูง ถ้ามันสอดคล้องกับวิสัยทัศน์ของธุรกิจ หรือสามารถให้ผลตอบแทนได้สูง ไม่ว่าจะเป็นในรูปของ ROI หรือในรูปของ productivity gain ของพนักงาน แต่ข้อนี้คนที่ให้คะแนนควรจะเป็นคนขอโครงการ เพราะแต่ละคนเห็นความน่าสนใจของแต่ละโครงการไม่เท่ากัน

ถ้าทำบ่อยๆ หรือมีโปรเจ็คมาพิจารณาเป็นจำนวนมากๆ สามารถเขียนคำอธิบายในแต่ละหัวข้อ สำหรับแต่ละคะแนนเอาไว้ได้เลย เช่น โครงการที่จะได้ 5 คะแนนจาก Fit จะต้องมีลักษณะดังนี้ 1,2,3, … ก็ว่ากันไป และในแต่ละข้อ ก็ยังสามารถซอยย่อยลงไปได้อีก แล้วใช้วิธีเฉลี่ยคะแนนรวมกันขึ้นมา หรือจะใช้วิธีถ่วงน้ำหนัก ให้ความสำคัญกับปัจจัยข้อใดข้อหนึ่งเป็นพิเศษก็ได้ แต่มีข้อแม้ว่า ต้องใช้เกณฑ์เดียวกันหมด สำหรับทุกโครงการ ไม่งั้นจะกลายเป็นลำเอียงไป

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

ในขณะที่ Oracle OLAP ก็มีประสิทธิภาพสูงในการประมวลผลและสร้างโครงสร้างข้อมูลหลายมิติที่ซับซ้อน อีกทั้งยังสามารถสเกลจนรองรับงานขนาดใหญ่เพื่อคนทั้งองค์กรได้ ทำให้ควบคุมคุณภาพของข้อมูลได้ดีกว่า แต่ดันมีปัญหาเรื่องเครื่องมือติดต่อกับผู้ใช้ที่ใช้งานยาก แถมยังยุ่งยากในการติดตั้งเสียอีก

เมื่อนานมาแล้ว ผมเองก็เคยทดลองพยายามเอาเทคโนโลยีทั้งสองค่ายนี้มาทำงานร่วมกันแล้ว ไม่ว่าจะเป็นการใช้ native driver ของแต่ละค่ายเอง รวมไปจนถึงพวก 3rd party driver หรือไม่ก็ Excel Add-on ซึ่งที่ผ่านมาก็ยังไม่เคยมีทางออกที่ดีจริงๆ เสียที เลยใช้มันทั้งสองค่ายนั้นแหละ ทาง MS Excel ก็สำหรับงานเล็กๆ หรือจำพวก prototype ถ้าจะทำ roll-out ให้ผู้ใช้จำนวนมากๆ ก็ต้องใช้เทคโนโลยีของ Oracle

Simba MDX Provider เป็นเครื่องมือที่จะใช้เชื่อมต่อ Excel 2007 เข้ากับ Oracle OLAP 11g ก็เรียกได้ว่าจับเอาเทคโนโลยีที่ทันสมัยที่สุดของทั้งสองค่ายมารวมกัน โดยอาศัย MDX (Mutidimensional Expressions) เป็นภาษาในการสืบค้นข้อมูลแบบหลายมิติ คล้ายๆ กับที่เราใช้ SQL ในการเรียกข้อมูลจากฐานข้อมูลแบบสัมพันธ์นั่นแหละ

ใครสนใจก็ลองไปชมเดโมของเขาได้ เป็น  Webcast ภาษาอังกฤษ ความยาว 20 นาที ทำได้น่าตื่นตาตื่นใจดีทีเดียว
http://simba.com/demos/MDX-Provider-for-Oracle-OLAP-web-demo.html

ส่วนที่ผมชอบใน webcast นี้ก็คือ

  • Excel 2007 ครับ ตัวผมเองยังใช้ 2003 อยู่เลย ดูความสามารถเข้าท่าดีมาก
  • ส่วน interface ของ Simba เอง ซึ่งเท่าที่ดู ก็นับว่าใช้งานได้ดีทีเดียว
  • วิธีการมองข้อมูล การตั้งคำถาม และการนำเครื่องมือนี้ไปประยุกต์ใช้ในชีวิตประจำวัน

ตั้งใจไว้ว่า น่าจะลองหาโปรเจ็คเล็กๆ มาทำ proof-of-concept เกี่ยวกับเจ้าเครื่องมือตัวนี้เสียหน่อย ถ้าดีจริงก็ได้จะลองเอาเข้ามาใช้งานให้เป็นเรื่องเป็นราว

ที่มา: Using Excel with Oracle OLAP

คนที่เคยใช้ windows มาก่อน พอมาใช้งานระบบตระกูล unix (รวมทั้ง Linux ด้วย) ก็มักจะค่อนข้างงงงันกับชื่อโฟลเดอร์ต่างๆ ที่สั้น และไม่ค่อยสื่อความหมายเอาเสียเลย ไม่รู้จะไปหาอะไรที่ไหน แถมยังจำยากเสียอีก  ส่วนหนึ่งก็แทบจะเป็นประเพณีหรือธรรมเนียมไปแล้ว เพราะชื่อไฟล์บางอย่างก็ถูกใช้มาตั้ง 30 ปี และแถมบางไฟล์บางกลุ่ม ยังมีความหมายและทำหน้าที่พิเศษบางอย่างเสียด้วย

ไฟล์ต่างๆ ในระบบ unix จะแบ่งเป็นชั้นๆ ส่วนบนสุดคือ / หรือที่มักจะเรียกกันว่า root directory ถ้าไปลอง ls ดูที่ root ก็มักจะเห็นไฟล์หรือโฟล์เดอร์เหล่านี้

/bin ย่อมาจาก binary เป็นหนึ่งในหลายแห่ง ที่เก็บโปรแกรมแอพลิเคชันและยูทิลิตี้ต่างๆ แต่โปรแกรมที่อยู่ใน /bin มักเป็นโปรแกรมสำคัญที่ใช้บ่อยในการทำงานของระบบ ตัวอย่างเช่น โปรแกรม shell หรือ โปรแกรมจัดการไฟล์อย่าง cp และ chmod เป็นต้น

/sbin นี่ก็ใช้เก็บโปรแกรมเหมือนกัน แต่ว่าจะเป็นเฉพาะโปรแกรมที่ถูกใช้โดย superuser เท่านั้น ซึ่งก็เป็นที่มาของชื่อด้วย คือ superuser-bin

/dev ย่อมาจาก device เป็นที่เก็บไฟล์ที่เกี่ยวข้องกับฮาร์ดแวร์ของระบบ เช่น จอภาพ, คีย์บอร์ด ฮาร์ดดิสก์ หรือ usbport รวมถึงพอร์ทต่างๆ ด้วย

/etc เอาไว้เก็บพวกไฟล์ที่เป็น system configuration ทั้งหลาย

/home เป็นที่เก็บโฮมไดเร็กทอรีของผู้ใช้ทั้งหลาย โดยจะมีการแบ่งย่อยลงไปอีกตามชื่อ login เช่น ผู้ใช้ที่มีชื่อล็อกอินเป็น joe จะมีโฮมไดเร็กทอรีเป็น /home/joe

/lib ย่อมาจาก library ซึ่งเอาไว้เก็บไฟล์ system library สำคัญๆ ทั้งหลาย ในระบบ Unix พวกไลบรารีเหล่านี้จะแชร์กันระหว่างโปรแกรม โดยไม่ได้รวมไว้ในไฟล์ binary แต่จะถูกโหลดมาใช้เมื่อต้องการเท่านั้น ดังนั้นการลบหรือย้ายที่ไฟล์ใน /lib แม้เพียงไฟล์เดียว อาจส่งผลให้โปรแกรมเป็นจำนวนมากไม่สามารถใช้งานได้

/mnt ย่อมาจาก mount เป็นไดเร็กทอรีมาตรฐานในการพ่วงอุปกรณ์เก็บข้อมูลอย่างฮาร์ดดิสก์ ถ้าต้องการดูว่ามีอุปกรณ์เก็บข้อมูลอะไรพ่วงอยู่บ้าง สามารถเรียกใช้คำสั่ง mount ได้

/tmp ย่อมาจาก temporary เป็นที่เก็บไฟล์ชั่วคราวของระบบ อะไรที่อยู่ในนี้ ถือว่าสามารถลบทิ้งได้ถ้าเสร็จงานแล้ว

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

/var ย่อมาจาก variable เป็นที่เก็บของไฟล์ต่างๆ ที่มักจะเพิ่มจำนวนขึ้นเรื่อยๆ ตามเวลา เช่น เมล์ log file และไฟล์ฐานข้อมูล เป็นต้น

ที่มา : Ramble around the UNIX file system

ได้รับคำถามว่าจากทีมงานที่กำลังทำ migration รายงานชุดหนึ่งไปยัง platform ใหม่ คำถามคือ ในรายงานเดิม แสดงค่าบางค่าเป็นศูนย์ (เพราะข้อมูลใน data warehouse มีค่าเป็นศูนย์) แต่ในรายงานใหม่ จะใช้เป็นค่าว่าง (NULL) แทนได้หรือไม่? นัยว่าจะมีส่วนช่วยในการเพิ่มความเร็วในการสร้างรายงาน แถมยกตัวอย่างเป็น Excel มาให้ดูด้วยว่า เป็น zero หรือเป็น null มันก็ให้ค่า MTD (ย่อมาจาก Month-to-date) หรือค่า total เท่ากัน

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

ความหมายในเชิงธุรกิจของค่าทั้งสองนี้ก็แตกต่างกันด้วย

  • Zero : มีค่าเท่ากับศูนย์ ถ้าเป็นยอดขาย ก็หมายความว่าขายไม่ได้เลย ถ้าเป็นจำนวนสต็อกสินค้า ก็หมายความว่า สินค้าหมดแล้ว
  • Null : ว่าง “ไม่มีค่า” แตกต่างจากมีค่าเป็นศูนย์นะครับ ในส่วนของยอดขาย อาจจะหมายถึง “ไม่ได้ทำการขาย” หรือขายแต่ไม่ได้จดบันทึก ถ้าเป็นสต็อกอาจจะหมายถึง “ไม่ได้นับสินค้าตัวนี้” หรือที่เห็นกันเป็นประจำก็คือ มีข้อมูลแหละ แต่ดันบังเอิญ เจ้ากรรมข้อมูลของวันนั้นส่งมาไม่ได้ ด้วยสาเหตุอะไรก็ตามที

ค่าทั้งสองจะมีลักษณะเหมือนกัน ถ้ามองจากการรวมผลโดยวิธีบวก หรือ Sum เพียงอย่างเดียว เหมือนอย่างที่เห็นในช่อง Total และ MTD ทำให้หลายๆ คนเข้าใจผิดว่าสองค่านี้มีความหมายเดียวกัน

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

September 23rd, 2008Learn Microsoft BI Video

วันนี้ผ่านไปเจอเว็บไซต์ที่ให้บริการดาวน์โหลดวีดีโอเกี่ยวกับ Microsoft Business Intelligence โดยเฉพาะครับ ชื่อ Learn Microsoft BI Video ต้องลงทะเบียนก่อน แต่ฟรีนะครับ มีตัวอย่างให้ลองดาวน์โหลดมาดูคุณภาพก่อนได้ นอกเหนือจากส่วนที่เจาะจงเป็นเทคโนโลยีของไมโครซอฟต์แล้ว ยังมีส่วนที่เป็นความรู้ทั่วไปเกี่ยวกับ business intelligence ด้วย ตอนนี้มีวีดีโออยู่ 18 รายการแต่ดูท่าทางจะยังมีเพิ่มขึ้นมาเรื่อยๆ

เอารายการวีดีโอที่มีอยู่มาโชว์เรียกน้ำย่อย

  • The first video is a twelve minute introduction entitled “What is Business Intelligence?” This video covers what is meant by terms such as data warehousing and business intelligence and why companies undertake such projects.
  • The second video is a 34 minute overview of how a single data warehouse can be used to deliver business value to a wide variety of users through scorecards, dashboards, reports, analytic applications, and custom applications.
  • The third video discusses the process of data warehousing, from the initial problem definition through the creation of the cubes and delivery of the data. This video runs 19.5 minutes.
  • The fourth video is “Why Business Intelligence Projects Fail (and what you can do about it).” This covers some of the primary reasons that BI projects fail along with tips for addressing the problems. This video is 32.5 minutes in length.
  • The fifth video is “Introduction to Business Intelligence Development Studio” and covers the primary tool used to create data warehouses. This is the environment for creating SSIS packages, SSAS cubes, and SSRS reports. This video runs 15.5 minutes.
  • The sixth video is an introduction to Analysis Services. It briefly discusses the two primary purposes of Analysis Services: building cubes and building mining models. The video runs 6.5 minutes.
  • The seventh video is a SQL Server Analysis Services video called “Creating Projects and Data Sources.” The video discusses the different types of Analysis Services projects and the options for creating them. It then discusses the creation of data sources and the various settings and considerations for handling authentication and impersonation. This video runs 17 minutes.
  • The eighth video covers the topic of Data Source Views (DSVs) in Analysis Services projects. DSVs are powerful, logical views of the schema on which the cube will be built. This video covers the creation of the DSV as well as manipulating the schema. This video runs 21 minutes.
  • The ninth video discusses the Cube Wizard for Analysis Services 2005. The Cube Wizard creates cubes but can also create dimensions, and populate those dimensions with attributes and hierarchies. This video will be followed by one specific to Analysis Services 2008 because of the significant differences in the Cube Wizard between versions. This video runs 16.5 minutes.
  • The tenth video shows the Cube Wizard for Analysis Services 2008. The Cube Wizard for 2008 is greatly simplified from the one in 2005 and takes a minimalist approach to creating dimensions. This video runs 12.5 minutes.
  • The eleventh video follows up on the Cube Wizard videos. The video explains the build, deployment, and processing pieces by deploying and processing the simple cube created in the previous videos. The video then covers browsing the data to verify the cube structure. This video runs 23 minutes.
  • The twelfth video shows the creation of dimensions using the Dimension Wizards in both SSAS 2005 and SSAS 2008. After creating a dimension, the difference between a database dimension and cube dimension is explored, along with several of the attributes of a dimension. Finally, properties of the attributes are examined along with a discussion of what will follow in future videos. This video runs 42.5 minutes.
  • The thirteenth video follows up on the twelfth by adding hierarchies to the dimensions created in the previous video. There is a discussion of why hierarchies should be created, then a demonstration of how to do it. Some properties are examined to change the name of the All level of the hierarchy, as well as to hide the All level. This video runs 25 minutes.
  • The fourteenth video is “Attribute Relationships” and covers an extremely important topic in dimension design. You’ll learn why attribute relationships are so important, how to create them, and some of the challenges you might have in working with them. Demonstrations in both SSAS 2005 and SSAS 2008 are provided. This video runs 57.5 minutes.
  • The fifteenth video is “Dimension Usage” and discusses how cubes handle multiple fact tables when the facts have different dimensionality. You’ll discover why you need multiple fact tables, how dimensions can be related to measure groups, and how to handle unrelated dimensions when viewing facts. This video runs 19 minutes.
  • The sixteenth video is “Aggregation Basics in SSAS 2005″ and covers why you want to create aggregations and how to use the aggregation wizard. A discussion of the “one-third rule” is included. This video runs 24 minutes.
  • The seventeenth video is “Aggregation Basics in SSAS 2008″ and covers why you want to create aggregations and how to use the new aggregation wizard, including the Aggregation Usage page. A discussion of the “one-third rule” is included. This video runs 25 minutes.
  • The eighteenth video is “Introduction to PerformancePoint Server.” and discusses the three modules of PerformancePoint Server: Monitoring, Analytics, and Planning. It describes how the three modules fit together to form a complete solution for keeping tabs on business performance. This video runs 21 minutes.

เว็บไซต์ SQL Server Videos ให้บริการวีดีโอฟรีเกี่ยวกับ MS SQL Server ที่น่าสนใจเพราะการจัดทำวีดีโอแต่ละตอน จะมุ่งเน้นงานอย่างใดอย่างหนึ่ง และมีการจัดหมวดหมู่ของวีดีโอไว้หลายแบบ เช่น แบ่งเป็น series แบ่งตาม skill level หรือแบ่งตาม audience เป็นต้น ใครกำลังเรียนรู้หรืออยากเพิ่มทักษะตัวเองด้าน MS SQL น่าจะได้ประโยชน์

How to Mind Map วิธีเขียน Mind Map ฉบับเจ้าสำนัก

Mind Map เป็นเครื่องมือในการช่วยพัฒนาความคิดและความจำ ซึ่งได้รับการพัฒนาโดยโทนี่ บูซานมานานหลายสิบปีแล้ว และเข้ามาแพร่หลายในเมืองไทยหลายปีทีเดียว มีการใช้ Mind Map โดยผู้บริหารและบุคคลสำคัญหลายคน ตลอดจนมีการนำไปใช้งานในองค์กรหลายแห่ง

สำหรับท่านที่ยังไม่รู้จักว่า Mind Map คืออะไร มีประโยชน์อย่างไร และใช้งานอย่างไร ผมอยากแนะนำให้อ่านหนังสือเล่มนี้ How to Mind Map วิธีเขียน Mind Map ฉบับเจ้าสำนัก โดยโทนี่ บูซาน

หนังสือเล่มนี้อธิบายประวัติความเป็นมาของ Mind Map ประโยชน์ และวิธีการเขียน Mind Map อ่านเข้าใจง่าย และมีภาพประกอบเป็นจำนวนมากครับ รูปเล่มก็เล็ก พกสะดวก ใช้เวลาอ่านไม่นานก็จบ และสามารถเริ่มใช้งาน Mind Map ได้ทันที

ข้อมูลเพิ่มเติมเกี่ยวกับ Mind Map

http://www.mindmap.in.th/
http://en.wikipedia.org/wiki/Mind_map

คราวที่แล้วเอาสไลด์ชุด Data Warehouse 101 มาฝาก วันนี้เป็นบทที่สองจากหนังสือเล่มเดิมนั่นแหละครับ ที่จริงก็ทำไว้แค่สองบทเท่านั้นเอง เป็นการปูพื้น บทที่สองนี้มีชื่อเรียกโดยเฉพาะว่า Business Dimensional Life Cycle เป็นกระบวนการจัดการโครงการที่ทาง The Kimball Group คิดขึ้นมา  มาจนถึงปัจจุบัน วิธีการนี้ก็ไม่ได้แปลกใหม่อะไรเลย แต่ผมคิดว่ายังมีประโยชน์สำหรับคนที่เริ่มทำงานเกี่ยวกับ data warehouse project เป็นครั้งแรก เพราะทำให้มองเห็นภาพได้ชัดเจนว่า โดยรวมๆ แล้ว มีอะไรที่จำเป็นต้องทำบ้าง

Data Warehouse 102

View SlideShare presentation or Upload your own. (tags: basic data)

Bitmap Index เป็นอินเด็กซ์แบบหนึ่งซึ่งเริ่มมีใช้ตั้งแต่ Oracle 7.3 เป็นต้นมา โดยมีลักษณะสำคัญคือมีอัตราการบีบอัดข้อมูลที่สูงมาก ทำให้เหมาะต่อการใช้งานด้านดาต้าแวร์เฮาส์ และ OLAP มากกว่าอินเด็กซ์แบบ B-Tree ที่รู้จักกันโดยทั่วไป

ลักษณะของ Bitmap Index

Bitmap index ถูกออกแบบมาให้ใช้สำหรับคอลัมน์ที่มีลักษณะ low cardinality หรือมีค่าที่เป็นไปได้สำหรับคอลัมน์นั้นจำนวนน้อยๆ เมื่อเทียบกับจำนวนเรคอร์ดในตารางนั้น สัดส่วนจำนวนค่าที่เป็นไปได้ของคอลัมน์เทียบกับจำนวนเรคอร์ด เรียกว่า cardinality คอลัมน์ที่มี cardinality = 0.4% หมายความว่า ในตารางขนาด 1000 เรคอร์ด คอลัมน์นั้นมีค่าที่แตกต่างกัน 4 ค่า
Bitmap Index เหมาะอย่างยิ่งกับการใช้ร่วมกันคอลัมน์ที่ มี caridnality ต่ำๆ เช่น 0.2% - 1% เป็นต้น อินเด็กซ์ที่ถูกสร้างขึ้นจะประกอบด้วยบิทต่างๆ เพื่อให้แทนค่าในคอลัมน์ที่ถูกทำอินเด็กซ์ของแต่ละแถว ตัวอย่างเช่น คำสั่ง

create bitmap index person_region on person (region);

จะสร้างอินเด็กซ์ในลักษณะเช่นนี้

        Row     Region   North   East   West   South
        1       North        1      0      0       0
        2       East         0      1      0       0
        3       West         0      0      1       0
        4       West         0      0      1       0
        5       South        0      0      0       1
        6       North        1      0      0       0

ข้อดีของ Bitmap Index

  • เรียกใช้งานได้รวดเร็วกว่า ทั้งนี้เนื่องจากการทำงานจะใช้ bitwise operator หรือการจัดการข้อมูลเป็นบิท ซึ่งจะทำงานได้เร็วกว่าการเปรียบเทียบทางคณิตศาสตร์โดยทั่วไป
  • ขนาดของอินเด็กซ์เล็กกว่า B-Tree index มาก เนื่องจาก Bitmap มีลักษณะการบีบอัดที่สูงมาก ดังนั้นจึงใช้เนื้อที่ในการเก็บอินเด็กซ์เล็กด้วย bitmap index อาจจะมีขนาดเพียงแค่ 1% (1 ใน 100) เทียบกับขนาดของ B-Tree index ก็ได้ แต่อย่างไรก็ตาม การประหยัดเนื้อที่ดิสก์ไม่ควรจะเป็นเหตุผลหลักในการเลือกใช้ bitmap index เพราะยังมีผลกระทบหรือข้อควรพิจารณาอย่างอื่นด้วย

ข้อเสียของ Bitmap Index

  • Bitmap Index จะต้องใช้กำลังการประมวลผลจาก CPU สูงมากหากต้องมีการ insert หรือ update ข้อมูลในตาราง เพราะจะต้องทำการอ่านอินเด็กซ์ นำมา decompress เปลี่ยนแปลงค่าอินเด็กซ์แล้ว compress กลับไปเก็บไว้ในดิสก์อีกครั้ง ดังนั้นจึงไม่เหมาะอย่างยิ่งสำหรับตารางที่มีการเปลี่ยนแปลงข้อมูลบ่อยๆ แต่จะเหมาะสำหรับตารางที่เป็น read-only

เมื่อไหร่ควรจะใช้ Bitmap Index

แนวทางในการพิจารณาว่าควรจะใช้ Bitmap Index แทนที่ B-Tree Index หรือไม่ ประกอบด้วย

  • ตารางนั้นมีการ insert/update ข้อมูลบ่อยเพียงใด หากมีการเปลี่ยนแปลงข้อมูลบ่อยมากๆ อย่างเช่นในระบบที่ทำงานแบบ online real time ที่มีการเปลี่ยนแปลงสถานะของข้อมูลบ่อยๆ การใช้ bitmap index จะส่งผลให้เกิดภาระต่อ CPU ในการ update index สูงกว่า B-Tree Index แต่สำหรับในระบบดาต้าแวร์เฮ้าส์ที่ข้อมูลไม่มีการเปลี่ยนแปลงเลย หรือเปลี่ยนน้อยมากๆ จะเหมาะกับใช้ bitmap index มากกว่า
  • ตารางนั้นมีค่า cardinality มากน้อยเพียงใด ดังที่ได้อธิบายไว้ก่อนหน้านี้แล้ว cardinality ของตารางยิ่งต่ำ ยิ่งเหมาะที่จะทำ bitmap index หาก cardinality ของตารางมีค่าสูงกว่า 1% ก็ไม่ควรทำ bitmap index บนตารางนั้น หากคุณเคยมีประสบการณ์ในการสร้างอินเด็กซ์บน OLTP (Online-Transactional Processing) มาก่อน คงอาจจะสงสัย เพราะหลักเกณฑ์ในการสร้างอินเด็กซ์แตกต่างกัน  ในระบบ OLTP คอลัมน์ที่ควรจะสร้างอินเด็กซ์ ควรจะมี high cardinality อาทิเช่น order id, หรือ row id เป็นต้น เพราะระบบ OLTP สนับสนุนการ insert/update และ delete ข้อมูลเป็นหลัก  ในขณะที่ระบบสนับสนุนการตัดสินใจเช่นดาต้าแวร์เฮ้าส์ ซึ่งเหมาะจะใช้ bitmap index มากกว่า จะเน้นไปที่ความรวดเร็วในการเข้าถึงและเรียกค้นข้อมูล และไม่มีการเปลี่ยนแปลงข้อมูลมากนัก

หวังว่าความรู้เบื้องต้นเกี่ยวกับ bitmap index คงเป็นจุดเริ่มต้นให้ทำความเข้าใจฟีเจอร์ที่มีประโยชน์นี้ได้บ้าง  ใครเคยมีประสบการณ์ในการทำงานกับ bitmap index ก็มาเล่าสู่กันฟังบ้างนะครับ


© 2007 BzInsight | iKon Wordpress Theme by Windows Vista Administration | Powered by Wordpress