ดองไปนานสำหรับบทความนี้นะครับ (จริงทความส่วนใหญ่ ก็ดองไว้นะ 555) เข้าเรื่องดีกว่า คือ วันที่ 24 เมษายน 2558 ที่ผ่านมาเนี่ย ผมได้เข้าร่วมงาน SQLClub Meeting in Bangkok: 24.April.2015 โดยเนื้อหาของงานเป็นการนำเสนออยู่ 2 เรื่องครับ ได้แก่
SQL Server 2014 In-Memory OLTP โดยคุณ Nicolas Souquet
สำหรับสรุปของในแต่ละหัวข้อ ผมขอสรุปคร่าวๆ ก่อนอื่นเลยขอเริ่มที่ 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) ซึ่งสามารถดูบทควาทที่เกี่ยวข้องได้จากที่นี่ครับ
Azure Machine Learning โดยคุณ Peter Myers
จบไปกับในส่วน 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.