ดองไปนานสำหรับบทความนี้นะครับ (จริงทความส่วนใหญ่ ก็ดองไว้นะ 555) เข้าเรื่องดีกว่า คือ วันที่ 24 เมษายน 2558 ที่ผ่านมาเนี่ย ผมได้เข้าร่วมงาน SQLClub Meeting in Bangkok: 24.April.2015 โดยเนื้อหาของงานเป็นการนำเสนออยู่ 2 เรื่องครับ ได้แก่
- SQL Server 2014 In-Memory OLTP โดยคุณ Nicolas Souquet
- Azure Machine Learning โดยคุณ Peter Myers
สำหรับสรุปของในแต่ละหัวข้อ ผมขอสรุปคร่าวๆ ก่อนอื่นเลยขอเริ่มที่ SQL Server 2014 In-Memory OLTP นะครับ
- Feature "In-Memory OLTP" มีมากับ MS SQL Server รุ่น Enterprise และ Developer Edition ครับ
- สำหรับ Concept ของ "In-Memory OLTP" เกิดจาก Research ชื่อ Hekaton ของทาง Microsoft ครับ โดยเท่าที่จับใจความได้คร่าว มีเนื้อหาประมาณนี้นะครับ
- แก้ไขแนวคิดจากเดิมในการควบคุม ACID จาก Lock & Latch มาเป็น Timestamp แทนนะครับ โดย In-Memory OLTP จะไม่มีการ Lock ข้อมูลเลย ถ้ามีการ Insert หรือ Update มันตีความเป็น Record ใหม่ แล้วใช้ Timestamp เป็นตัวจัดการครับ อารมณ์ประมาณพวก Source Control
- ใช้แนวคิดใหม่ในการจัดการข้อมูล โดยมีแนวคิด Range Indexes and Row Chains ซึ่งเป็นกาต่อยอดจาก Data Structure อย่าง Hash และก็ BW-Tree(อันนี้ก็มาจาก Research ของ MS) ครับ
- สำหรับรายละเอียดเพิ่มเติมสามารถอ่านได้จาก Research Hekaton: SQL Server’s Memory-Optimized OLTP Engine เลยครับ
- ต่อมา คือ ว่าเราเนี่ยจะรู้ได้อย่าไรว่า Table หรือ Store Procedure อันไหนควรทำ "In-Memory OLTP" ทาง Microsoft มีหลักการแนะนำ ดังนี้ครับ
- Determining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP
- หรือ ดู Demo (เดี๋ยวถ้าว่างๆ ผมจะลองเล่นดูเหมือนกัน)
- แต่เดี๋ยวก่อนครับ สำหรับฝั่ง Microsoft แล้ว มันมี Tools ช่วยครับ ชื่อว่า AMR (Analysis, Migrate, Report) ซึ่งสามารถดูบทควาทที่เกี่ยวข้องได้จากที่นี่ครับ
- Determining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP
จบไปกับในส่วน SQL Server แล้วนะครับ ต่อมาเป็นในส่วนของ Azure Machine Learning ครับ
- สำหรับ Concept ของ Azure Machine Learning คือ โยน => เขียน => รอ => ใช้ ครับ (อันนี้ผมคิดเองนะครับ 555) โดยผมขอแตกข้อมูลที่ละส่วนก่อน
- โยน หมายถึง ข้อมูลที่จะนำไปประมวลผลครับ (ต้องเป็นข้อมูลที่ผ่านกระบวนการ ETL ก่อนนะครับ) เพราะเนื่องจาก Azure Machine Learning มันอยู่บน Cloud ดังนั้น เราต้องส่งข้อมูลขึ้นไปก่อนครับ
- เขียน หมายถึง เขียนแผนการเรียนรู้ เพราะเจ้าตัว Azure Machine Learning มี Tools มาให้เรียบร้อยแล้วครับ ชื่อ ML Studio (ภาพรวมคล้ายๆกับ Weka Knowledge Flow ครับ) มีอัลกอริทึมให้เสร็จสรรพครับ แต่รองรับมี Customize บางอย่างเขียนอัลกอิทึมที่เราเขียนเองด้วยภาษา R หรือ Python นะครับ และมีพวก Image Processing ด้วยนะครับ
- รอ หมายถึง เรารอให้มันเรียนรู้จากข้อมูลที่เราโยนมา หรือเรียกว่า Training Set ก็ได้ครับ
- ใช้ หมายถึง ทดสอบ Model ที่เราเขียนมา โดยทาง MS ได้เตรียม web service API เอาไว้ให้เรียกใช้งานเสร็จสรรพครับ
- ตัวอย่างของ Azure Machine Learning อันนี้เลยครับ ที่ส่งรูป แล้วให้ระบบทายอายุครับ 😀 ลองไปเล่นดูครับ http://how-old.net ทาง MS เตรียม API ไว้พร้อม (สำหรับแนวคิดการทำงานสามารถอ่านเพิ่มเติมได้จากลิงค์นี้ครับ) อันนี้คงเป้นการสร้างจุดเด่นขึ้นมา เพราะทาง MS เองกว่าจะก้าวมาบน Cloud ก็ช้ากว่าเจ้าอื่นๆครับ
หมายเหตุ: บทความนี้ส่วนใหญ่มากจากความเข้าใจของผม อาจจะมีข้อมูลผิดพลาด ผมขออภัยผ้อ่าทุกท่านมา ณ ที่นี้ครับ ^___^
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.