เริ่มต้นกับเทคโนโลยี Big Data (Getting Started with Big Data Technology)

Eakasit Pacharawongsakda
Big Data Engineering
3 min readNov 29, 2017
ที่มา: http://bigdata2day.com/wp-content/uploads/2017/05/Top-10-Big-Data-Technologies-778x360.png

ในอดีตการจัดเก็บข้อมูลนั้นเก็บในรูปแบบของไฟล์ประเภทต่างๆ เช่น ไฟล์ข้อความ หรือไฟล์ประเภท Excel แต่การเก็บข้อมูลเป็นไฟล์ในลักษณะนี้จะมีความยุ่งยากหลายอย่าง เช่น การเก็บไฟล์ซ้ำซ้อนกันระหว่างผู้ใช้งาน หรือ การค้นหาข้อมูลจากหลายไฟล์ ดังนั้นเพื่อแก้ปัญหาความยุ่งยากเหล่านี้องค์กรต่างๆ จึงหันมาเก็บข้อมูลในฐานข้อมูล (database) หรือฐานข้อมูลเชิงสัมพันธ์ (relational database) แทน การเก็บข้อมูลในฐานข้อมูลนี้จะมีระบบจัดการฐานข้อมูล (database management system) หรือ DBMS ซึ่งเป็นซอฟต์แวร์ที่ช่วยในการจัดการและสืบค้นข้อมูล ทำให้การค้นหาข้อมูลสะดวกมากยิ่งขึ้น จากประโยชน์เหล่านี้ทำให้หลายฝ่ายในบริษัทต้องการมีฐานข้อมูลเป็นของตนเองเพื่อจะได้จัดการข้อมูลได้อย่างคล่องตัว ทว่าเมื่อมีข้อมูลมากขึ้นและผู้บริหารต้องการทราบภาพรวมของทั้งองค์กร เช่น การขายสินค้าในช่วง 3 เดือนที่ผ่านมา หรือ ยอดเงินฝากในรอบ 6 เดือนที่ผ่านมา ทำให้ต้องดึงข้อมูลจากหลากหลายฐานข้อมูลและนำมารวมกันเพื่อออกเป็นรายงานสรุปหรือกราฟสรุป (dashboard) ให้กับผู้บริหารทราบ การดึงข้อมูลในลักษณะนี้ค่อนข้างใช้เวลานานเนื่องจากต้องทำการปรับเปลี่ยนข้อมูลให้มีลักษณะเดียวกัน และคำนวนค่าสรุปทางสถิติออกมาให้ด้วย ดังนั้นในระยะถัดมาจึงเกิดความคิดของการจัดเก็บข้อมูลเฉพาะที่สนใจไว้ในฐานข้อมูลกลางก่อนเพื่อจะได้นำไปสร้างเป็นรายงานสรุปได้ง่ายขึ้น แนวคิดนี้คือการสร้างคลังข้อมูล (data warehouse) และระบบธุรกิจอัจฉริยะ (business intelligence) ขึ้นมา

ในปัจจุบันเมื่อข้อมูลมีปริมาณมากขึ้นและข้อมูลมีความหลากหลายมากขึ้นจึงทำให้การเก็บข้อมูลในฐานข้อมูลหรือคลังข้อมูลแบบเดิมไม่ได้มีประสิทธิภาพเท่าที่ควรจึงได้มีเทคโนโลยีใหม่ที่สร้างขึ้นมาเพื่อจัดการกับข้อมูลเหล่านี้ เช่น ฮาดูป (Hadoop) เป็นการนำเครื่องคอมพิวเตอร์หลายๆ เครื่องมาช่วยในการจัดเก็บและประมวลผลข้อมูลจึงทำให้สามารถรองรับข้อมูลที่มีปริมาณมากได้ หรือในกรณีที่ต้องการจัดการข้อมูลมีความหลากหลายซึ่งไม่ได้อยู่ในรูปแบบของตาราง เช่น กราฟ (graph) หรือเอกสาร (document) จึงมีการพัฒนาเทคโนโลยีใหม่ที่สามารถจัดเก็บข้อมูลเหล่านี้ได้เลยโดยที่ไม่ต้องแปลงให้เป็นลักษณะของตารางเสียก่อน ฐานข้อมูลที่จัดเก็บลักษณะนี้เรียกว่าฐานข้อมูลโนเอสคิวแอล (NoSQL) โดยย่อมาจากคำว่า “Not Only SQL” นอกจากนี้ในบางองค์กรยังต้องการจัดเก็บข้อมูลที่เป็นลักษณะตารางและข้อมูลที่อยู่ในรูปแบบอื่นๆ เช่น ภาพ เสียง จึงได้มีแนวคิดที่ขยายออกมาจากคลังข้อมูลกลายเป็น Data Lake แทน

เนื่องจากปัจจุบันข้อมูลมีปริมาณเพิ่มมากขึ้นอย่างรวดเร็วทำให้เครื่องคอมพิวเตอร์ทั่วไปไม่สามารถประมวลได้มีประสิทธิภาพเท่าที่ควร จึงจำเป็นต้องต้องมีการใช้เครื่องคอมพิวเตอร์ที่มีสมรรถนะ (performance) สูงขึ้น เช่น ฮาร์ดดิสก์ (harddisk) หรือ หน่วยความจำ (RAM) มีขนาดใหญ่ขึ้น ซึ่งเครื่องคอมพิวเตอร์เหล่านี้จะมีราคาแพงมาก วิธีการลักษณะนี้เรียกว่าการ scale up ดังนั้นเพื่อให้การทำงานมีประสิทธิภาพมากขึ้นและค่าใช้จ่ายไม่สูงจนเกินไปจึงเกิดแนวคิดการทำ scale out ซึ่งหมายถึงการนำเครื่องคอมพิวเตอร์หลายๆ เครื่องมาช่วยกันประมวลผล เช่น การประมวลผลแบบกระจาย (distributed computing) หรือ คลัสเตอร์ (cluster) ขึ้นมา แต่ทว่าการประมวลผลแบบกระจายก็มีข้อจำกัดบางประการ เช่น การเขียนโปรแกรมต้องรองรับการทำงานแบบกระจาย ซึ่งการเขียนในลักษณะนี้ก็ต้องมีความเชี่ยวชาญในการออกแบบอัลกอริธึม (algorithm) ที่ดี หรือ การส่งข้อมูลไปประมวลผลที่เครื่องคอมพิวเตอร์ต่างๆ แล้วค่อยส่งผลลัพธ์กลับมาก็ทำให้เกิดปัญหาเรื่องการโอนย้ายข้อมูลที่มีขนาดใหญ่ ดังนั้นในช่วงหลังมานี้จึงเกิดเทคโนโลยีที่ช่วยประมวลผลแบบกระจายให้ง่ายขึ้นและมีประสิทธิภาพมาขึ้นดังอธิบายในลำดับถัดไป

โดยในบทความนี้จะอธิบายแนวคิดของเทคโนโลยีการจัดเก็บข้อมูลขนาดใหญ่ ได้แก่

  • เทคโนโลยี ฮาดูป (Hadoop) และ แมปรีดิวซ์ (MapReduce)
  • เทคโนโลยี ไฮฟ (Hive)
  • เทคโนโลยีสปาร์ค (Spark)
  • เทคโนโลยีการจัดเก็บข้อมูลแบบ โนเอสคิวแอล (NoSQL)

1. ฮาดูป (Hadoop) และ แมปรีดิวซ์ (MapReduce)

ในปัจจุบันการค้นหาข้อมูลผ่านทางอินเตอร์เน็ตทำได้ง่ายและสะดวกมากขึ้น ส่วนหนึ่งเพราะมีเว็บไซต์ กูเกิล (Google) ที่ช่วยรวบรวมข้อมูลจากเว็บไซต์ต่างๆ และนำมาจัดการพื่อทำให้ผู้ใช้สามารสืบค้นข้อมูลได้สะดวกยิ่งขึ้น ทว่าข้อมูลที่บริษัท กูเกิล เก็บมานั้นมีจำนวนมหาศาลมาก ดังนั้นจึงต้องการวิธีการประมวลผลที่รวดเร็วและมีประสิทธิภาพ พนักงานของบริษัท 2 คน คือ คุณ Jeffrey Dean และคุณ Sanjay Ghemawat จึงได้คิดค้นวิธีแมปรีดิวซ์ขึ้นมาในปี 2004 [1] วิธีการของแมปรีดิวซ์เป็นการทำงาน 3 ส่วน คือ

  • แมป (map) เป็นการแบ่งข้อมูลออกมาเป็นส่วนย่อยๆ เพื่อส่งไปประมวลผลแบบขนาน (parallel computing) ในเครื่องคอมพิวเตอร์ต่างๆ ได้ หลังจากนั้นขั้นตอนนี้จะทำการประมวลผลตามข้อมูลที่มีและส่งผลลัพธ์การทำงานออกมาในลักษณะของคู่ลำดับ (key,value) โดยที่ key คือ ตัวบ่งบอกชื่อของข้อมูล และ value คือ ค่าที่คำนวณได้ ตัวอย่าง เช่น การแบ่งข้อความ (text) ออกมาเป็นหลายๆ ส่วน แต่ละส่วนจะส่งเข้าไปผ่านฟังก์ชันเพื่อทำการนับคำ และส่งผลลัพธ์ออกมาว่ามีคำอะไรเกิดขึ้นบ้าง เช่น (the,1) (a,1) และ (the,1) จากตัวอย่างของคู่ลำดับ (the,1) หมายความว่ามีคำว่า the เกิดขึ้น 1 ครั้ง
  • สลับและเรียงลำดับ (shuffle and sort) หลังจากที่ขั้นตอนการแมปทำงานเสร็จเรียบร้อยแล้ว ผลลัพธ์ที่ได้ยังกระจัดกระจายไม่ได้เรียงลำดับตามค่าคีย์ (key) ที่ได้ ขั้นตอนนี้จะเป็นขั้นการเรียงลำดับตามค่าคีย์และรวมผล แวลู (value) ของคีย์เดียวกันเข้าไว้ด้วยกัน จากตัวอย่างจะได้เป็น (a,1) และ (the, (1,1))
  • รีดิวซ์ (reduce) เป็นขั้นตอนสุดท้ายของวิธีการแมปรีดิวซ์ โดยจะทำการรวมค่าที่ได้จากขั้นตอนการสลับและเรียงลำดับ จากตัวอย่างขั้นต้นจะได้เป็น (a,1) และ (the,2) นั่นคือ พบคำว่า a เพียงแค่ครั้งเดียว และพบคำว่า the สองครั้ง

จากวิธีการของแมปรีดิวซ์นี้ช่วยให้การประมวลผลข้อมูลขนาดใหญ่ๆ ได้รวดเร็วขึ้น จากผลการทดลองในงานวิจัยของ [1] พบว่าการค้นหาข้อมูลจำนวน 1 เทอราไบต์ (terabyte) หรือ 1x1012 ไบต์ใช้เวลาเพียงแค่ 150 วินาทีเมื่อประมวลผลบนเครื่องคอมพิวเตอร์จำนวน 1,800 เครื่อง

แต่การเขียนโปรแกรมเพื่อทำแมปรีดิวซ์ก็ซับซ้อนพอสมควรและต้องสร้างระบบคลัสเตอร์ให้เพื่อประมวลผลแบบแมป รีดิวซ์ได้ จึงได้มีการพัฒนาเป็นระบบขึ้นมาโดย คุณ Doug Cutting และ คุณ Mike Cafarella จากบริษัท ยาฮู (Yahoo) และเรียกระบบนี้ว่า ฮาดูป (Hadoop) และเผยแพร่ในปี 2006 เป็นต้นมา สิ่งหนึ่งที่ทำให้ระบบฮาดูปต่างจากระบบการประมวลผลแบบกระจายอื่นๆ คือ ข้อมูลถูกแบ่งไปเก็บไว้ในโหนดต่างๆ เรียบร้อยแล้วและการประมวลผลก็ทำที่โหนดของตนเองได้เลย ไม่มีการเรียก (request) ข้อมูลจากคอมพิวเตอร์ส่วนกลางมาประมวลผล และคอมพิวเตอร์ที่ใช้สร้างเป็นฮาดูปขึ้นมานั้นเป็นเครื่องคอมพิวเตอร์ทั่วไป (commodity machines) ที่ไม่ต้องมีสมรรถนะสูงเหมือนเครื่องเซิร์ฟเวอร์ (computer server) ก็ได้ ระบบฮาดูปจะประกอบด้วยการงาน 3 ส่วนหลัก คือ

  • Hadoop Distributed File System (HDFS) เป็นส่วนของระบบจัดการไฟล์ (file system) เพื่อให้ข้อมูลกระจายไปอยู่ตามเครื่องคอมพิวเตอร์หรือโหนด (node) ในระบบได้อย่างถูกต้อง และเพื่อป้องกันการเกิดปัญหาข้อผิดพลาดที่ทำให้ข้อมูลเสียหาย HDFSจะทำการกระจายข้อมูลออกไปเก็บไว้ในโหนดต่างๆ อย่างน้อยจำนวน 3 ชุดโดยในระบบฮาดูปจะแบ่งโหนดออกเป็น 2 ประเภท คือ
  • โหนดชื่อ (Name Node) เป็นคอมพิวเตอร์หรือโหนดที่ใช้ในการจัดการระบบฮาดูป เพื่อทำการกระจายไฟล์ข้อมูลและงาน (job) ไปยังโหนดอื่นๆ ในโหนดนี้อาจจะมี YARN รวมอยู่ในนี้ด้วย
  • โหนดข้อมูล (Data Node) เป็นคอมพิวเตอร์หรือโหนดที่เก็บข้อมูลที่ได้แบ่งมาแล้วและทำการประมวลผลตามแนวคิดของแมปรีดิวซ์
  • Yet Another Resource Negotiator (YARN) เป็นส่วนของการจัดการทรัพยากร (resource) ต่างๆ และการจัดการลำดับการทำงาน (scheduler) ของฮาดูปอีกด้วย
  • Hadoop MapReduce เป็นส่วนของการทำงานตามแนวคิดของแมปรีดิวซ์

ถึงแม้ว่าหลักการของฮาดูปและแมปรีดิวซ์จะทำให้การประมวลผลข้อมูลขนาดใหญ่ทำงานได้รวดเร็วและมีประสิทธิภาพมากขึ้นแต่การเขียนโปรแกรมแมปรีดิวซ์ยังไม่สะดวกนักสำหรับผู้ใช้งานทั่วไป เช่น ผู้ที่ดึงข้อมูลจากฐานข้อมูลเป็นหลัก หรือ การประมวลผลแบบ real time ได้ โดยในหัวข้อถัดไปจะอธิบายถึงเทคโนโลยีที่ทำให้การดึงข้อมูลจากฮาดูปได้ง่ายขึ้นโดยใช้เทคโนโลยีไฮฟ (Hive)

2. ไฮฟ (Hive)

สำหรับการสืบค้น (query) ข้อมูลที่เก็บอยู่ในฮาดูปจำเป็นต้องเขียนโปรแกรมตามแนวคิดของแมปรีดิวซ์ทำให้ผู้ใช้งานทั่วไปที่ต้องการดึงข้อมูลออกมาแสดงผลหรือทำรายงานไม่สามารถทำงานได้สะดวกนักเนื่องจากบุคคลเหล่านี้มักจะคุ้นเคยกับการดึงข้อมูลด้วยคำสั่งภาษา SQL หรือ Structure Query Language ซึ่งใช้อย่างแพร่หลายในการจัดการฐานข้อมูล เพื่อแก้ปัญหานี้วิศวกรของบริษัท เฟซบุค (Facebook) จึงได้พัฒนาเทคโนโลยีที่ชื่อว่า ไฮฟ (Hive) ขึ้นมาในปี 2009 [2] และมีภาษา HiveSQL ซึ่งมีโครงสร้างคล้ายคลึงกับภาษา SQL ทั่วไป ทำให้ผู้ใช้งานสามารถดึงข้อมูลจากฮาดูปได้สะดวกยิ่งขึ้น แม้ว่าการใช้งานไฮฟจะง่ายขึ้นแต่ยังไม่สามารถทำงานแบบ interactive หรือ real time ได้เนื่องจากยังคงใช้สถาปัตยกรรมของฮาดูปที่มีขั้นตอนการแมปและรีดิวซ์ซึ่งมีการเขียนและอ่านจากฮาร์ดดิสก์บ่อยครั้ง ทำให้ไม่สามารถทำงานแบบ real time ได้ ดังนั้นในหัวข้อถัดไปจะอธิบายเทคโนโลยี สปาร์ค (Spark) ที่ทำให้การงานได้เร็วขึ้น

3. สปาร์ค (Spark)

หลังจากที่แนวคิดของแมปรีดิวซ์และฮาดูปได้รับความนิยมและนำมาใช้กันอย่างแพร่หลาย บางองค์กรก็พบปัญหาในเรื่องของความเร็วในการประมวลผลของฮาดูป ถ้ากล่าวโดยสรุปแล้วหลักการทำงานของแมปรีดิวซ์บนฮาดูปจะต้องทำ 3 ขั้นตอนดังที่กล่าวมาคือ (1) แมป (2) สลับและเรียงลำดับ (3) รีดิวซ์ ซึ่งในแต่ละขั้นตอนมีการทำงานและส่งผลลัพธ์ที่ได้ไปเก็บไว้ใน HDFS ก่อนที่จะทำงานในขั้นตอนถัดไป เช่น ตัวอย่างของการนับจำนวนคำที่เกิดขึ้นในข้อความ จะมีขั้นตอนการทำแมปรีดิวซ์ ดังนี้

  • แมป เพื่อทำการตัดคำและเก็บผลลัพธ์ในลักษณะของ (key,value) ไว้ใน HDFS
  • สลับและเรียงลำดับ จะทำการอ่านข้อมูลจาก HDFS และทำการเรียงลำดับตามคีย์ที่ได้และเขียนข้อมูลลงไปใน HDFS อีกครั้ง
  • รีดิวซ์ อ่านข้อมูลจาก HDFS และรวมค่าที่คำนวณได้ตามคีย์ต่างๆ และส่งไปแสดงผล หรือ เขียนลงไปใน HDFS อีกครั้ง

การเขียนและอ่านข้อมูลจาก HDFS ซึ่งเก็บไว้ในฮาร์ดดิสก์ (hard disk) จะใช้เวลานานกว่าการเขียนและอ่านบนหน่วยความจำ (RAM) ซึ่งเข้าใจได้ว่าในตอนเริ่มแรกที่ฮาดูปถูกพัฒนาขึ้นมาข้อมูลมีขนาดใหญ่มากจนไม่สามารถนำไปประมวลผลในหน่วยความจำได้ หลังจากนั้นในปี 2010 นักศึกษาและอาจารย์จากมหาวิทยาลัยแคลิฟอร์เนีย (University of California, Berkeley) ได้วิจัยและพัฒนาสถาปัตยกรรมใหม่ขึ้นมาเรียกว่า สปาร์ค [3] โดยหลักการทำงานของสปาร์คมีแนวคิดของแมปรีดิวซ์อยู่ด้วยแต่แทนที่จะจัดเก็บข้อมูลลงใน HDFS ทุกครั้งก็ทำงานบนหน่วยความจำเสียก่อนทำให้การทำงานของสปาร์คเร็วกว่าฮาดูปถึง 100 เท่าเมื่อทำงานบนหน่วยความจำ และ 10 เท่าเมื่อทำงานบนดิสก์ [4] ทำให้สปาร์คสามารถแสดงข้อมูลแบบ real time หรือตอบคำถามแบบ ad hoc ได้เลย นอกจากนั้นสปาร์คยังรองรับการทำงานแบบวนรอบ (loop) ซึ่งใช้งานอย่างมากในเรื่องของการวิเคราะห์ข้อมูลหรือระบบเครื่องจักรการเรียนรู้ (Machine Learning) นอกจากสปาร์ค คอร์ (spark core) แล้วยังประกอบด้วยองค์ประกอบย่อยๆ 4 องค์ประกอบ คือ

  • Spark SQL เป็นส่วนที่ทำให้สามารถดึงข้อมูล (query) แบบ interactive ได้
  • Spark Streaming เป็นส่วนของการจัดการข้อมูลที่เข้ามาในลักษณะของสตรีมมิ่ง (streaming)
  • MLlib เป็นส่วนที่เก็บไลบารีการวิเคราะห์ข้อมูลด้วยวิธีการเครื่องจักรการเรียนรู้
  • GraphX เป็นระบบจัดการข้อมูลที่เป็นกราฟขนาดใหญ่

4. ฐานข้อมูลโนเอสคิวแอล (NoSQL)

โดยปกติแล้วข้อมูลสามารถแบ่งได้เป็น 2 ประเภท คือ ข้อมูลแบบที่มีโครงสร้าง (structured data) ซึ่งเก็บอยู่ในรูปแบบของตารางซึ่งประกอบไปด้วยแถว (row) และคอลัมน์ (column) และข้อมูลแบบที่ไม่มีโครงสร้าง (unstructured data) ซึ่งไม่อยู่ในรูปแบบของตาราง เช่น ข้อความ (text) กราฟ (graph) หรือเครือข่าย (network) ส่วนใหญ่เมื่อพูดถึงฐานข้อมูลจะคุ้นเคยกับฐานข้อมูลที่เป็นเชิงสัมพันธ์ (relational database) ที่เก็บข้อมูลที่เป็นตารางซึ่งมีจำนวนคอลัมน์หรือฟิลด์ (field) ที่แน่นอน แต่ในบางครั้งข้อมูลบางประเภทไม่สามารถระบุจำนวนคอลัมน์ที่แน่นอนได้ก่อน และอาจจะมีการเพิ่มหรือลดจำนวนคอลัมน์เหล่านี้ ตัวอย่างเช่น ข้อมูลที่อยู่บนเครือข่ายสังคมออนไลน์ (social network) หรือ กระทู้ (topic) ต่างๆ ในเว็บบอร์ด (webboard) ดังนั้นการเก็บข้อมูลเหล่านี้ลงในฐานข้อมูลเชิงสัมพันธ์ที่เป็นตารางจึงไม่เหมาะสมนัก จึงเกิดเป็นเทคโนโลยีใหม่ขึ้นมาเรียกว่า ฐานข้อมูลโนเอสคิวแอล ซึ่งสามารถเก็บข้อมูลเป็นไฟล์เอกสารที่มีจำนวนฟิลด์ไม่เท่ากันได้หรือเก็บเป็นโครงสร้างของกราฟเลยก็ได้ โดยทั่วไปแล้วฐานข้อมูลโนเอสคิวแอลจะแบ่งเป็น 4 ประเภท คือ

  • ฐานข้อมูลแบบคีย์-แวลู (key-value database) เป็นการเก็บข้อมูลขนาดเล็ก โดยประกอบด้วยคีย์และแวลู ลักษณะคล้ายกับผลลัพธ์ที่ได้จากการทำแมปรีดิวซ์ ใช้ในการเก็บข้อมูลที่เป็นแคช (cache) จากฐานข้อมูลเชิงสัมพันธ์ หรือ เก็บข้อมูลที่ดึงมาได้จาก IoT (Internet of Things)
  • ฐานข้อมูลแบบเอกสาร (document database) เป็นการเก็บข้อมูลในลักษณะของไฟล์เอกสาร ซึ่งภายในมีแท็ก (tag) ระบุค่าต่างๆ ไว้ โดยหนึ่งแถวหรือเรคอร์ด (record) ในฐานข้อมูลเชิงสัมพันธ์จะเทียบได้กับไฟล์เอกสาร 1 ไฟล์ และแท็กต่างๆ จะเทียบได้กับคอลัมน์หรือฟิลด์ในฐานข้อมูลเชิงสัมพันธ์ ซึ่งข้อดีของการเก็บข้อมูลแบบนี้คือฟิลด์ในเอกสารไม่จำเป็นต้องมีจำนวนเท่ากันได้ ฐานข้อมูบแบบเอกสารที่นิยมใช้กันอย่างแพร่หลาย คือ ฐานข้อมูล MongoDB ซึ่งเก็บไฟล์ในลักษณะของ เจซอน (JSON) ดูรายละเอียดการใช้งาน MongoDB ได้จาก บทความนี้ครับ
  • ฐานข้อมูลแบบคอลัมน์ (column-oriented database) โดยทั่วไปการเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์จะเป็นลักษณะของแถว (row-oriented) คือ เก็บข้อมูลในแต่ละแถวเรียงต่อกันในดิสก์ ทำให้การดึงข้อมูลออกมาทั้งตารางหรือบางเรคอร์ดทำได้อย่างมีประสิทธิภาพ แต่ถ้านำมาใช้ในการคำนวณค่าทางสถิติ เช่น การหาค่าเฉลี่ย (average) ของคอลัมน์จะทำงานได้ช้าลง จึงได้มีการคิดฐานข้อมูลแบบคอลัมน์ขึ้นมา โดยการเก็บข้อมูลจะเก็บเรียงเป็นคอลัมน์แทนที่จะเป็นแถว ทำให้เวลาต้องการคำนวณค่าของคอลัมน์ที่ต้องการใช้งานก็สามารถดึงข้อมูลที่เรียงต่อกันในดิสก์ได้เลยซึ่งก็จะเร็วกว่าการเก็บแบบแถว ฐานข้อมูลแบบนี้นิยมใช้ในการทำธุรกิจอัจริยะเพราะการคำนวนค่าทางสถิติไปใส่ไว้ในคลังข้อมูลทำได้อย่างรวดเร็ว7
  • ฐานข้อมูลแบบกราฟ (graph database) ในบางครั้งข้อมูลมีความสัมพันธ์กันในรูปแบบของเครือข่ายหรือกราฟ ทำให้การเก็บข้อมูลในลักษณะของกราฟทำการประมวลผลได้รวดเร็วขึ้น

เอกสารอ้างอิง

[1]https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf

[2] https://dl.acm.org/citation.cfm?id=1687609

[3] http://people.csail.mit.edu/matei/papers/2010/hotcloud_spark.pdf

[4]https://www.tutorialspoint.com/apache_spark/apache_spark_introduction.htm

--

--

Eakasit Pacharawongsakda
Big Data Engineering

Certified RapidMiner Analyst & Ambassador, Lecturer in Big Data Engineering Program, DPU