สรุปงาน 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  นะครับ

  • 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/
    รูปภาพจาก 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/
    รูปภาพจาก http://www.mssqlinsider.com/2013/09/how-to-setup-and-use-the-amr-tool-in-sql-server-2014/

จบไปกับในส่วน 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 ก็ช้ากว่าเจ้าอื่นๆครับ 2015-05-02_215008

หมายเหตุ: บทความนี้ส่วนใหญ่มากจากความเข้าใจของผม อาจจะมีข้อมูลผิดพลาด ผมขออภัยผ้อ่าทุกท่านมา ณ ที่นี้ครับ ^___^


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.