การประมวลผลข้อมูลแบบ Scalable คืออะไร?

การประมวลผลข้อมูลขนาดใหญ่ใน R

Michael J. Kane and Simon Urbanek

Instructors, DataCamp

ในคอร์สนี้ ..

  • ทำงานกับข้อมูลที่ใหญ่เกินกว่า RAM ของเครื่อง
  • เขียนโค้ดแบบ Scalable
  • นำเข้าและประมวลผลข้อมูลทีละส่วน
การประมวลผลข้อมูลขนาดใหญ่ใน R

RAM

ออบเจกต์ทุกตัวใน R ถูกเก็บไว้ใน RAM

การประมวลผลข้อมูลขนาดใหญ่ใน R

การประมวลผลข้อมูลขนาดใหญ่ใน R

ตัวแปรมีขนาดได้แค่ไหน?

"R ไม่เหมาะสำหรับการทำงานกับข้อมูลที่มีขนาดใหญ่กว่า 10-20% ของ RAM ในเครื่อง" - The R Installation and Administration Manual

การประมวลผลข้อมูลขนาดใหญ่ใน R

การ Swap ข้อมูลไม่มีประสิทธิภาพ

  • หาก RAM เต็ม ข้อมูลจะถูกย้ายไปยังดิสก์
  • ดิสก์ช้ากว่า RAM มาก จึงทำให้เวลาประมวลผลเพิ่มขึ้น
การประมวลผลข้อมูลขนาดใหญ่ใน R

แนวทาง Scalable

  • โหลดข้อมูลส่วนย่อยเข้า RAM
  • ประมวลผลส่วนย่อยนั้น
  • เก็บผลลัพธ์และทิ้งส่วนย่อย
การประมวลผลข้อมูลขนาดใหญ่ใน R

ทำไมโค้ดถึงช้า?

  • ความซับซ้อนของการคำนวณ

  • พิจารณาการอ่าน/เขียนดิสก์อย่างรอบคอบเพื่อให้โค้ดเร็วและ Scalable

การประมวลผลข้อมูลขนาดใหญ่ใน R

การวัดประสิทธิภาพโค้ด

library(microbenchmark)

microbenchmark( rnorm(100), rnorm(10000) )
Unit: microseconds
         expr    min      lq     mean  median      uq     max neval
   rnorm(100)   7.84   8.440   9.5459   8.773   9.355   29.56   100
 rnorm(10000) 679.51 683.706 755.5693 690.876 712.416 2949.03   100
การประมวลผลข้อมูลขนาดใหญ่ใน R

มาฝึกกันเถอะ!

การประมวลผลข้อมูลขนาดใหญ่ใน R

Preparing Video For Download...