บันทึกสั้นๆ หลังใช้งาน Windows Azure Storage Table

ตอนนี้ใช้ Windows Azure Storage Table อยู่กับบางบางตัว ซึ่งหลังจากที่ใช้งานมา 3-4 วันที่ผ่านมา เอาสิ่งที่ได้มาแบ่งบันกันเล็กน้อย

  • มันเป็น NoSQL database เรื่อง schema โยนทิ้งไปเลย คิดใหม่ทำใหม่หมด คล้ายๆ Excel มากกว่าด้วยซ้ำ
  • มี Data type ไม่เยอะ ทำงานง่ายพอสมควร
  • รองรับข้อมูลที่ใส่ลงไปไม่เกิน 100 TB ต่อฐานข้อมูล
  • สื่อสารกันผ่าน HTTP / HTTPS มี SDK API ให้หลายๆ ภาษาทั้ง .NET Framework, Java, PHP, Node.js, Python ฯลฯ หรือจะติดต่อผ่าน CURL อะไรพวกนี้ก็ได้ แล้วแต่ความถึกแต่ละคน (แต่ผ่าน SDK มันจะง่ายกว่าเยอะมาก)
  • ใน 1 Table สามารถกำหนด entity (row/record ใน RDBMS) ให้มี properties (field/column ใน RDBMS) หลากหลายได้ ไม่จำเป็นต้องเป็น entity ที่มี properties เหมือนๆ กัน
  • entity แต่ละตัวที่ใส่ลงไปได้มีข้อมูลไม่มากเกินกว่า 1MB ต่อ entity
  • properties ตั้งได้ไม่เกิน 252 ตัวต่อ 1 entity
  • properties ที่จำเป็นต้องส่งเข้าไปหรือใช้งานมี 3 ตัวคือ partition key, row key และ timestamp ซึ่ง partition key, row key เราต้องกำหนดเอง ส่วน timestamp ไม่ส่งเข้าไปก็ได้ระบบจะใช้เวลาของระบบแทน
  • ค่า partition key และ row key จำเป็นอย่างมากในการ update/delete ต้องออกแบบดีๆ ค่า partition key เปรียบเสมือนกลุ่มข้อมูล (คล้าย Class) ซ้ำได้ ส่วน row key จำซ้่ำไม่ได้ในแต่ละ partition key เปรียบเสมือน primary key ใน RDBMS ต้องใส่ข้อมูลทั้งสองลงไปเสมอ
  • การส่งข้อมูลออกมาจากการ Query นั้นจะส่งมาไม่เกิน 1,000 entities เท่านั้น ถ้าต้องการมากกว่านั้นต้อง request อีกรอบด้วยการใช้ NextPartitionKey และ NextRowKey ร่วมด้วยในการ Query ครั้งต่อไปจึงจะได้ข้อมูลช่วงถัดมาอีก 1,000 entities
  • ไม่สามารถ Sorting หรือแบ่ง Pagination ได้ ถ้าอยากทำต้อง query มาทั้งหมดแล้ว Sorting ในระบบเอาเอง หรือใช้ร่วมกับ RDBMS ตัวอื่นๆ แทน แล้วเก็บเฉพาะ partition key และ row key เพื่ออ้างอิงพ่วงกับข้อมูลที่ต้องการ Sorting จะช่วยได้มาก
  • สามารถค้นหาจาก properties ที่ไม่ใช่ partition key, row key และ timestamp ได้ จะ full table query ก็ทำได้ จากที่ลอง 1 แสน entity ก็ทำงานได้ดี (ข้อมูลประมาณ 50MB) ค้นหาด้วย properties ที่ไม่ใช่ตัวหลักของระบบ และเป็น full table query ไม่เกิน execute time
  • การ import ข้อมูลทำได้หลายแบบ ที่สะดวกที่สุดคือ csv ที่ export จาก Excel หรือฐานข้อมูลตัวอื่นๆ แค่กำหนด first line ให้เป็นชื่อ properties ที่กำลังใส่ลงไปมันจะไป map ตัว properties ในตารางให้เอง แต่  Data type มันจะเป็น String
  • ระยะเวลาในการ execute time มากสุดที่ 5 วินาที
  • ระยะเวลาในการให้ client request ไม่เกิน 30 วินาที

อันนี้คือเท่าที่ลองๆ ใช้มา

 

Jarvis ใน IRONMAN ใช้ระบบอะไรในการประมวลผลและเก็บข้อมูล

Stark Industries ใช้ Oracle Cloud ในการจัดการระบบทั่วโลกรวมไปถึง Jarvis และ Services ที่ใช้ก็ได้แก่
– Oracle Social Network Cloud Service
– Oracle Database Cloud Service instance
– Oracle Java Cloud Service
– Oracle Exadata database appliance
– Oracle Exalogic Elastic Cloud
อ้างอิง: http://www.oracle.com/us/ironman3/omag-mj13-ironman-1936895.pdf

IRONMAN, Engineered for Heroes, Experience the Power of Oracle Cloud.

อืมมมมมม มิน่าล่ะ….

2013-05-03_232616

2013-05-03_234317

 

การโฆษณาโดยทำภาพหรือแผ่นโฆษณา ถือว่าเป็นส่วนหนึ่งของสัญญาด้วย

ตามนัยคำพิพากษาศาลฎีกาที่ 5352/2553 ที่วินิจฉัยว่า

“ในโครงการอาคารชุด ร. จำเลยจัดทำภาพจำลองอาคารและแผ่นโฆษณาระบุว่าจำเลยจะก่อสร้างอาคารศูนย์สรรพสินค้าขนาดใหญ่ติดกับอาคารชุด โดยมีสระน้ำขนาดใหญ่บนอาคารจอดรถของอาคารชุดเพื่อจูงใจลูกค้าให้ซื้อห้องชุดในโครงการอาคารชุดดังกล่าว แผ่นโฆษณาแสดงภาพจำลองอาคารชุดและอาคารศูนย์สรรพสินค้าถือได้ว่าเป็นส่วนหนึ่งของสัญญาจะซื้อจะขายห้องชุดระหว่างโจทก์กับจำเลยด้วย (เมื่อจำเลยไม่ได้สร้างตามที่โฆษณาไว้ก็ถือว่าจำเลยผิดสัญญา)”

อ้างอิง: คดีผู้บริโภค : บรรทัดฐานจากคำพิพากษาฎีกา 

ต่อไปพวกโฆษณาไม่เป็นไปตามโฆษณาระวังกันหน่อยนะครับ เดี่ยวงานจะงอก…

 

เริ่มต้นเขียนโปรแกรมง่ายๆ กับ QBASIC สำหรับคนไม่เป็นมาก่อน

เป็น slide สอนน้องๆ ปี 1 ตอนเป็น TA ช่วยอาจารย์สอนอยู่ที่มหาลัย (เมื่อเกือบๆ 7 ปีก่อน) ใครเรียนเกี่ยวกับคอมพิวเตอร์ปี 2-4 แล้วอ่านไม่เข้าใจพิจารณาตัวเองได้แล้วนะครับ เพราะ slide นี้สอนเด็กคณะแพทย์, สหเวช, เภสัช, เกษตร ฯลฯ อีกเยอะที่ไม่เกี่ยวกับคอมแล้วเค้าทำ Lab ภาคปฏิบัติและทำข้อสอบได้มาแล้ว (อย่าอ้างว่าเขียนไม่ได้ อาจารย์ไม่สอนนะเด็กภาคคอมฯ)

 

“ข้อมูลผิด” ก็ต้องบอกว่า “ผิด” ความเป็น “คนดี” ไม่ทำให้ข้อมูลที่คุณนำเสนอมันถูกต้อง

บ้านเราอ่อนแอ เพราะคำว่า “คนดี” เลยไม่ได้ดูที่ข้อเท็จจริงที่มีมันคืออะไร ใช้คำว่า “คนดี” เป็นเครื่องมือในการยืนยัน “ความเชื่อ” ตัวเอง แต่ “เนื้อแท้มั่ว” ก็มีเยอะไป

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