เมื่อวาน ผมได้ไปหางาน Big Data Conference ไปหา Idea ใหม่ และหาคำตอบให้กับตัวเอง ด้วยว่าเราเรียน ป โท Computer Science ที่จุฬา ดีไหม ? มาเข้าเรื่องกันเลยดีกว่าครับ
Section 1 : Going Intersteller?: The Truth Behind the Cloud โดยคุณ Rawitat Pulum
- อะไร คือ big data เราสนใจอะไร ทาง อ มองต่างจาก 3V มาเป็น 4S
- Space
- Size
- Speed
- Structure
- ย้อนกลับไปในยุคแรกๆ ของ digital ปี 1980 เรามองพ Structure ก่อน พวก ER-Diagram นั้นแหละ แล้วเอา Data ยัดเข้าไป เพื่อจัดเก็บและค้นหาแหละ
- ถ้าตัวอย่างใกล้ตัวสุดๆ ระบบดิวอี้ และ sort ในห้องสมุด
- ถ้ามาด้านคอมบ้างหละ พวกระบบงานทั้งหลายตอนเรียน ระบบงานห้องสมุด ร้านขายของ ถ้าอลังการหน่อยก็ ตัว E-commerce ทุกระบบกล่าวมาเนี่ยมี T ทุกคนคุ้นเคยนะครับ T นั้น คือ Transaction พอมีแล้ว มีเยอะแล้ว เมื่อมีข้อมูลเราก็มีคำถาม
- คำถามที่เราเตรียมคำตอบไว้แล้ว เช่น ดู Transaction ย้อนหลัง ดูยอดขาย
- คำถามที่เราไม่ได้เตรียมคำตอบ เช่น อยากหาความสัมพันธ์ ของการยืมหนังสือใน แต่ละสาขา , การซื้อของคนกลุ่มไหน กับสินค้าอะไรเยอะสุด เราควรทำโปรโมชั่นไหน เป็นต้น
- Small Data vs Big Data
- Structure & Data Immutable vs Mutable
Session 2: Manage & Monitor Hadoop cluster with Apache Ambari โดยคุณ Charnsilp Chinprasert
- Apache Ambari มาช่วยจัดการ Hadoop เพื่อใช้ช่วย
- Provisioning :
- Install & Config ได้ง่าย มี Step ในการ Test ว่า Config ที่ทำ Work ไหม
- การปรับ Parameter มันฉลาด ที่รู้ด้วยว่าจะกระทบ Config ตัวไหน นึกถึง DB2 แล้วสยองเลยย
- Revision ของ Config ไม่ต้องมา Comment ไว้ลอยและ
- Management :
- Monitor :
- Provisioning :
Session 3 และ 4: Real time log monitoring + Logging service design for web application โดยคุณ ศุภเกศ วงศ์คำภู และ Wittawas Wisarnkanchana
- เนื่องจากเห็นว่า 2 หัวข้อนี้ มันคล้ายกัน เลยขอยุบรวมกันดีกว่า
- ทำไม Log ถึงเป็น Big Data เพราะ มันเยอะ ง่ายๆ และมีคุณค่าแฝงในตัว
- เอา Log มาทำอะไร
- Issue Tracking/ Debugging : เอาไว้หา Error ที่เกิดขึ้นบน Production
- Performance Analysis : เอามาวิเคราะห์ เช่น อยู่มันไปใช้ I/O บ่อย ระบบช้าลง ตรงนี้ต้องหาสามารถว่าทำไมถึงทำ
- Security Analysis
- Predictive Analysis : ทำนายอนาคต เช่น เอา Activity Log มาดูพฤติกรรม User เพื่อปรับ UX/UI หรือ หาสร้างโปรโมชั่น โดยเอาข้อมูลอื่นๆมา Matching
- ปัญหาถัดมา ถ้ามี Log จากหลายๆที่ เราจะดูยังไง ไล่ไปดึงจากทุกเครื่อง (Decentralize) ถึกไป มี Tools ที่เข้ามาช่วยรวมสุ่งศูนย์กลาง (Centralize) ดังนี้
- Data Source: Log ของ Client ใช้ Log4j, Log4Net และของเจ้าอื่นๆ
- Pre-Process : ผมมองว่าเป็นการทำ ETL(Extract Transform Load) เอา log จากหลายๆ Data Source มาทำให้เป็นรูปแบบที่เหมาะสมต่อไป
- Process & Index : เอาข้อมูลที่ได้มาจัดเก็บใช้พร้อมใช้ Elasticsearch ซึ่งต่อยอดมาจาก Lucene (เคยเล่นมานานละเจ๋งมาก) โดยมันเป็น Search Engine แบบ Distributed เกิดมาเพื่อ Search
- Elasticsearch มันเกิดมา เพื่อ Search นะ ไม่จำเป็นต้องมาเก็บ Log อาจจะไปทำ Search Engine เจ๋งๆให้กับเว็บได้ เพราะ มันมี REST และ JSON
- Visualize : Kibana มันเป็น UI ที่มาเป็นของคู่กับ Elasticsearch ช่วยให้เรา Filter และ Visualize Data ได้ง่ายขึ้น
- มาดูเรื่องอื่นๆบ้าง Log Storage มันมีไม่ได้มี Elasticsearch มีตัวอื่นด้วย เช่น Redis, Cassandra, MongoDB ซึ่งต้องไปดูจุดเด่น-ด้อย ของแต่ละตัวกันต่อไปครับ
- MicroService กับการจัดการ log ทำมาเป็น Middleware
- ปัญหาโลกแตกในอัลกอริทึม TOP-K Problem : Search ข้อมูลอย่างไรให้ได้มีประสิทธิภาพที่สุด
Session 5 : Connecting to Cassandra with Java โดยคุณ พีรพัฒน์ อโศกธรรมรังสี
- ก่อนอื่นเลย เราต้องมารูัจักก่อนว่า Cassandra คือ อะไร
- Key-Value Database มันไม่ใช่ RDBMS แน่ๆ
- Key ไม่สามารถเปลี่ยน Type ได้
- การออกแบบ DataModel สำคัญมากๆ ทำผิดต้องสร้างใหม่ และ Migrate เอา ออกแบบ Key ให้ถูกไม่งั้นช้ามากก
- Index ทำได้ แต่ทำ ทำไมในเมื่อมันเป็น Key-Value อยู่แล้ว เพราะ ต้องสร้าง Index มันเหมือนทำ Table ซ้อน เปลือง Performance อีก
- ใช้กับงานที่ต้องการความเร็วมากๆ เร็วแบบไม่ต้องพึ่ง Cache เช่น ข้อมูลที่มีการเปลี่ยนแปลงบ่อยๆ
- ภาษาที่ใช้ CQL เหมือน SQL แต่ไม่เหมือน
- SELECT : JOIN ไม่ได้ และต้องเวลา WHERE ต้องใช้ key เท่านั้น
- INSERT / UPSERT :
- Key ไม่ซ้ำก็ INSERT ถ้าซ้ำก็ UPDATE
- ความพิเศษของมัน ทุก Record มี TTL (Time to Leave บอกอายุของ Record ว่ามีอายุเท่าไหร่ ถ้าหมดอายุไปแล้ว เวลาดึงข้อมูลจะไม่โผล่ออกมา)
- ทำพวก Aggregate พวก SUM(), AVG() ไม่ได้ ในตัวเอง
- Java Coding
- เขียน Code คล้าย JDBC แต่ว่ามันไม่ใช่นะ ทำคำสั่งให้คล้ายๆกัน
- ResultSet ไม่มีของ Java ปกติ ที่เป็น Pointer แต่มันจะดึงมาเก็บไว้ที่ memory
- เวลาใช้งานจริง อาจะต้องมาปรับใช้กับ RDBMS ตัวอื่น เพราะ ข้อมูลบางส่วน มันไม่จำเป็นต้อง Realtime อาทิ เช่น ข้อมูลพวก Master
Session 6 : Unlock Security Insight from Machine Data โดยคุณ Narudom Roongririwong
- ภาพรวมเป็นการนำ Log ที่แง่ของ Network มา Analysis ครับ เพื่อหาแนวโน้มความความเสี่ยง โดยมี Step ดังนี้
- Know your Machine Data
- Know your Context
- Look for insight
- Identify Measure
- Security Analysis Life Cycle
- Implementation
- สำหรับรายละเอียดสามารถดูได้จาก Slide ครับ
และท้ายที่สุดเป็นภาพบรรยากาศทั่วๆไปครับ ของสถานที่จัดงาน อาคารหอประชุมเมืองไทยประกันชีวิตครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.