Big Data

Big Data คืออะไร?

  • Big Data คือ ชุดของชุดข้อมูลที่มีขนาดใหญ่และซับซ้อนมาก เป็นเรื่องยากที่จะประมวลผลโดยใช้เทคโนโลยีการประมวลผลข้อมูลแบบเดิม
    • จัดเก็บ ค้นหา แชร์ โอนถ่าย วิเคราะห์ และแสดงภาพข้อมูลขนาดใหญ่ได้อย่างไร
  • ข้อมูลที่ไม่มีโครงสร้างจะแตกกระจาย

Big Data Example ตัวอย่างของ Big Data

  • Facebook
    • มีข้อมูลประมาณ 400 เทราไบต์ (TB)
    • มีข้อมูลใหม่เข้ามาประมาณ 20 เทราไบต์ (TB) ต่อวัน
  • New York Stock Exchange (NYSE) หรือตลาดหลักทรัพย์นิวยอร์ก
    • สร้างข้อมูลทางการค้าขนาดประมาณ 1 เทราไบต์ (TB) ต่อวัน
  • Internet Archive (การเก็บข้อมูลทางอินเตอร์เน็ต)
    • จัดเก็บข้อมูลประมาณ 2 เพตาไบต์ (PB)
    • มีอัตราการเพิ่มขึ้น 20 เทราไบต์ (TB) ต่อเดือน
  • Skybox imaging (satellite images) หรือภาพถ่ายจากดาวเทียม
    • จัดเก็บข้อมูลขนาด 1 เทราไบต์ต่อวัน
  • com หรือธุรกิจตรวจ DNA
    • จัดเก็บข้อมูลทั้งหมดประมาณ 2.5 เพตาไบต์ (PB)

Big Data Evolution

ความท้าทายในการประมวลผล (โดยใช้เทคโนโลยีแบบเดิม)

  • Slow to process (ประมวลผลช้า)
    • ใช้เวลา 11 วัน ในการอ่านข้อมูลประมาณ 100 เทราไบต์ โดยใช้คอมพิวเตอร์เพียงตัวเดียว
  • Slow to move data (ย้ายข้อมูลช้า)
    • การย้ายข้อมูลผ่านเครือข่ายช้า
  • Can’t scale (ไม่สามารถปรับขนาดได้)
    • เพิ่มประสิทธิภาพของการประมวลผล (หน่วยความจำ, ฮาร์ดแวร์ที่ทรงพลัง) ถูกจำกัดไว้
  • Hard drive capacity is limited (หน่วยความจำมีพื้นที่จำกัด)
    • หน่วยความจำตัวเดียวไม่สามารถรองรับขนาดข้อมูลขนาดใหญ่ได้
  • Unreliable (ไม่น่าเชื่อถือ)
    • ความล้มเหลวในคอมพิวเตอร์เป็นสิ่งที่หลีกเลี่ยงไม่ได้

คุณลักษณะของ Big Data

  • ข้อมูลมีขนาดใหญ่มาก มีการกระจายตัวของโครงสร้างข้อมูลแบบ loosely
  • ขนาดของข้อมูลมีหน่วยเป็น เพตาไบต์ (PB) / เอกซาไบต์ (EB)
  • โครงสร้างที่มีความสัมพันธ์แบบไม่ซับซ้อนมากนัก
  • จะใช้การประทับเวลาเข้ามาเกี่ยวข้องกับเหตุการณ์ต่างๆ
  • ประกอบด้วยข้อมูลที่ไม่สมบูรณ์มากนัก

ความท้าทายในการจัดการข้อมูลขนาดใหญ่

  • การย้ายข้อมูลจำนวนมากจากพื้นที่จัดเก็บเพื่อนำไปคำนวณที่ cluster (เพื่อลดค่าใช้จ่ายและได้ประสิทธิภาพการทำงานที่ชาญฉลาด)
    • ย้ายข้อมูลไปยังคอมพิวเตอร์ที่มีประสิทธิภาพในการประมวลผลมากขึ้น
  • การจัดการข้อมูลใหญ่ และความล้มเหลว
    • เหตุการณ์ขัดข้องของเครื่องคอมพิวเตอร์และระบบเครือข่าย
  • มีราคาแพงในการสร้างเครื่องคอมพิวเตอร์ที่มีประสิทธิภาพสูง และความน่าเชื่อถือในการใช้งานแอปพลิเคชันต่างๆ
    • ความน่าถือในการจัดการระบบโดยใช้ framework

สิ่งที่ต้องพิจารณาในการวิเคราะห์ Big Data

  • Volume (การจำกัดปริมาณ) – การจัดการข้อมูลขนาดใหญ่ในการทำธุรกิจ
  • Velocity (ความเร็ว) – มีความเร็วในการจัดเก็บ วิเคราะห์ และดึงข้อมูลจำนวนมาก
  • Variety (ความหลากหลาย) – สามารถประมวลผลข้อมูลได้จากหลายๆแหล่ง และข้อมูลสำคัญที่ไม่มีโครงสร้างข้อมูล
  • Value (ราคา) – ถามคำถามที่ถูกต้องเพื่อสร้างมูลค่าสูงสุด

Examples of Public Data Sets

Hadoop คืออะไร

  • Apache Hadoop เป็น framework ที่ช่วยในการกระจายการประมวลผลข้อมูลขนาดใหญ่ผ่าน cluster ที่มีความหลากหลาย โดยใช้รูปแบบการเขียนโปรแกรมแบบง่าย
  • มีการออกแบบมาเพื่อเพิ่มขนาดจากโหนดเดียวเป็นโหนดหลายพันโหนด ซึ่งแต่ละที่ทำการคำนวณและเก็บข้อมูลการคำนวณนั้นไว้

ประวัติความเป็นมาของ Hadoop

  • เริ่มต้นจากการเป็นโครงการย่อยของ Apache Nutch
    • Nutch ใช้สำหรับจัดทำ indexing data และแสดงผลเพื่อค้นหา
    • เปิดให้เป็น open source และส่งไปยัง Google
    • เริ่มโดย Doug Cutting
  • ในปี ค.ศ. 2004 ทาง Google ได้เผยแพร่เอกสาร Google File System (GFS) และ Map reduce
  • Doug Cutting และทีมของ Nutch ได้ใช้ระบบ GFS และเพื่อ
  • ในปี ค.ศ. 2006 Yahoo ได้ทำการจ้าง Doug Cutting มาทำงานใน Hadoop
  • ในปี ค.ศ. 2008 Hadoop กลายเป็นโครงการ Apache Top Level http://hadoop.apache.org/

ทำไมต้อง Hadoop

  • Scalable (สามารถปรับขนาดได้) – สามารถเพิ่มโหนดใหม่ลงในเครื่อง cluster ได้
  • Economical (ประหยัด) – สามารถใช้ได้ในอุปกรณ์หลายแบบ
  • Efficient (มีประสิทธิภาพ) – จะทำงานเฉพาะตำแหน่งที่มีข้อมูลอยู่
  • Flexible (มีความยืดหยุ่น) – สามารถจัดการข้อมูลที่ไม่มีโครงสร้างให้น้อยลง
  • Fault tolerant (แก้ไขข้อผิดพลาด) – สามารถค้นหาข้อผิดพลาดในโหนดต่างๆ และสามารถแก้ไขข้อผิดพลาดได้
  • Simple (มีความง่าย) – ใช้รูปแบบการเขียนโปรแกรมแบบง่าย
  • Evolving (พัฒนา) – มีระบบพัฒนาเป็นแบบ ecosysytem

หลักการออกแบบ Hadoop

  • จัดเก็บและประมวลข้อมูลจำนวนมาก
  • มีการจำกัด ประสิทธิภาพ พื้นที่จัดเก็บ และการประมวลผล
  • แปลงรหัสคอมพิวเตอร์ไปเป็นข้อมูล
  • การกู้คืน สามารถกู้คืนเมื่อเกิดความล้มเหลวในการสร้าง
  • ถูกออกแบบมาเพื่อใช้กับฮาร์ดแวร์ที่มีความหลากหลาย.

เมื่อไรที่ควรใช้หรือไม่ควรใช้ Hadoop

  • Hadoop ดีสำหรับ
    • Indexing data
    • การวิเคราะห์เชิงตรรกะ
    • การจัดการรูปภาพ
    • การจัดเรียงข้อมูลขนาดใหญ่
    • การทำเหมืองข้อมูล
  • Hadoop ไม่ดีสำหรับ
    • การประมวลผลแบบ real time
    • การเข้าถึงข้อมูลแบบสุ่ม
    • งานที่มีปริมาณมากและมีข้อมูลเพียงเล็กน้อย
  • ข้อจำกัด บางประการของ Hadoop มีอยู่ใน Hadoop ecosystem

Comparing Hadoop with Other Technologies

Hadoop VS RDBMS
ข้อมูลขนาดใหญ่ ข้อมูลขนาดเล็ก
โครงสร้างแบบหลวมๆ โครงสร้างแบบรัดแน่น
Schema on read Schema on write
ไม่มีความสัมพันธ์กัน มีความสัมพันธ์กัน
Analytics-oriented Transaction-oriented
Non-ACID ACID
Batch-oriented Real-time query
เขียนครั้งแรก ไม่มีการอัพเดตหรือลบ มีการเขียนหรืออัพเดตบ่อย
กระจายข้อมูล ข้อมูลส่วนกลาง
มีความยืดหยุ่นสูง ความยืดหยุ่นที่ถูกจำกัด

Apache Hadoop System