สรุปงาน SQL Server 2014 in memory & MS Azure (24-Apr-15)

ดองไปนานสำหรับบทความนี้นะครับ (จริงทความส่วนใหญ่ ก็ดองไว้นะ 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 เลยครับ
รูปภาพจาก http://www.mssqltips.com/sqlservertip/3106/sql-server-2014-inmemory-oltp-architecture-and-data-storage/

ต่อมา คือ ว่าเราเนี่ยจะรู้ได้อย่าไรว่า 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) ซึ่งสามารถดูบทควาทที่เกี่ยวข้องได้จากที่นี่ครับ
รูปภาพจาก http://www.mssqlinsider.com/2013/09/how-to-setup-and-use-the-amr-tool-in-sql-server-2014/

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 เอาไว้ให้เรียกใช้งานเสร็จสรรพครับ
รูปภาพจาก https://msdn.microsoft.com/en-us/magazine/dn781358.aspx
รูปภาพจาก https://msdn.microsoft.com/en-us/magazine/dn781358.aspx

ตัวอย่างของ 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.