ในโพสต์ที่แล้ว เราได้พูดคุยกันเกี่ยวกับการวิเคราะห์ปัญหาทางธุรกิจและขั้นตอนพื้นฐานในการออกแบบสถาปัตยกรรม Big Data วันนี้ ฉันจะพูดถึงเลเยอร์ต่างๆ ใน Big Data Architecture และฟังก์ชันของเลเยอร์เหล่านั้น
เลเยอร์ตรรกะของสถาปัตยกรรมอ้างอิงข้อมูลขนาดใหญ่
เบื้องหลังสถาปัตยกรรมบิ๊กดาต้า แนวคิดหลักคือการจัดทำเอกสารพื้นฐานที่ถูกต้องของสถาปัตยกรรม โครงสร้างพื้นฐาน และแอปพลิเคชัน ส่งผลให้ธุรกิจต่างๆ ใช้ข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพมากขึ้นทุกวัน
มันถูกสร้างขึ้นโดยนักออกแบบ/สถาปนิกบิ๊กดาต้าก่อนที่จะนำโซลูชันไปใช้จริง การสร้างสถาปัตยกรรมบิ๊กดาต้าโดยทั่วไปต้องมีความเข้าใจในธุรกิจ/องค์กรและความต้องการบิ๊กดาต้า โดยทั่วไป สถาปัตยกรรมบิ๊กดาต้าจะร่างส่วนประกอบฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็นต่อการแก้ปัญหาบิ๊กดาต้า เอกสารสถาปัตยกรรมข้อมูลขนาดใหญ่อาจอธิบายโปรโตคอลสำหรับการแบ่งปันข้อมูล การรวมแอปพลิเคชัน และความปลอดภัยของข้อมูล
ข้อมูลเพิ่มเติม: คู่มือเริ่มต้นสำหรับการวิเคราะห์ข้อมูลขนาดใหญ่
นอกจากนี้ยังเกี่ยวข้องกับการเชื่อมต่อและจัดระเบียบทรัพยากรที่มีอยู่เพื่อตอบสนองความต้องการข้อมูลขนาดใหญ่
เลเยอร์ตรรกะของสถาปัตยกรรมอ้างอิงมีดังนี้:
- การระบุแหล่งข้อมูล: การรู้ว่าข้อมูลนี้มีที่มาที่ใด
การทำโปรไฟล์ต้นทางเป็นหนึ่งในขั้นตอนที่สำคัญที่สุดในการตัดสินใจเลือกสถาปัตยกรรมหรือข้อมูลขนาดใหญ่ มันเกี่ยวข้องกับการระบุระบบต้นทางที่แตกต่างกันและจัดหมวดหมู่ตามลักษณะและประเภทของระบบ
ประเด็นที่ต้องพิจารณาขณะทำโปรไฟล์แหล่งข้อมูล:
- ระบุระบบแหล่งที่มาภายในและภายนอก
- สมมติฐานระดับสูงสำหรับปริมาณข้อมูลที่นำเข้าจากแต่ละแหล่ง
- ระบุกลไกที่ใช้ในการรับข้อมูล – ผลักหรือดึง
- กำหนดประเภทของแหล่งข้อมูล – ฐานข้อมูล ไฟล์ บริการเว็บ สตรีม ฯลฯ
- กำหนดประเภทของข้อมูล – มีโครงสร้าง กึ่งมีโครงสร้าง หรือไม่มีโครงสร้าง
- Data Ingestion Strategy and Acquisition :กระบวนการป้อนข้อมูลเข้าสู่ระบบ
การนำเข้าข้อมูลเป็นข้อมูลเกี่ยวกับการดึงข้อมูลจากแหล่งที่กล่าวถึงข้างต้น ข้อมูลนี้ถูกเก็บไว้ในที่จัดเก็บและหลังจากนั้นจะถูกแปลงสำหรับการประมวลผลต่อไป
ประเด็นที่ต้องพิจารณา:
- กำหนดความถี่ที่จะนำเข้าข้อมูลจากแต่ละแหล่ง
- จำเป็นต้องเปลี่ยนความหมายของข้อมูลหรือไม่?
- จำเป็นต้องมีการตรวจสอบความถูกต้องหรือการแปลงข้อมูลก่อนการนำเข้า (การประมวลผลล่วงหน้า) หรือไม่
- แยกแหล่งข้อมูลตามโหมดการนำเข้า – แบทช์หรือเรียลไทม์
- การจัดเก็บข้อมูล :สิ่งอำนวยความสะดวกที่จะจัดเก็บข้อมูลขนาดใหญ่
หนึ่งควรสามารถจัดเก็บข้อมูลจำนวนมากได้ทุกประเภทและควรสามารถปรับขนาดได้ตามความต้องการ เราควรพิจารณาจำนวน IOPS (การดำเนินการอินพุตเอาต์พุตต่อวินาที) ที่สามารถให้ได้ ระบบไฟล์แบบกระจายของ Hadoop เป็นเฟรมเวิร์กพื้นที่เก็บข้อมูลที่ใช้กันมากที่สุดในโลกของ Big Data ส่วนอื่นๆ ได้แก่ พื้นที่เก็บข้อมูล NoSQL – MongoDB, HBase, Cassandra เป็นต้น
สิ่งที่ต้องพิจารณาขณะวางแผนวิธีการจัดเก็บ:
- ประเภทของข้อมูล (ประวัติหรือส่วนเพิ่ม)
- รูปแบบของข้อมูล (มีโครงสร้าง กึ่งมีโครงสร้าง และไม่มีโครงสร้าง)
- ข้อกำหนดการบีบอัด
- ความถี่ของข้อมูลขาเข้า
- รูปแบบแบบสอบถามบน data
- ผู้บริโภคข้อมูล
- การประมวลผลข้อมูล : เครื่องมือที่ให้การวิเคราะห์ข้อมูลขนาดใหญ่
ไม่เพียงแค่ปริมาณข้อมูลที่จัดเก็บเท่านั้น แต่การประมวลผลยังเพิ่มขึ้นหลายเท่า
ข้อมูลที่เข้าถึงบ่อยก่อนหน้านี้ถูกเก็บไว้ใน Dynamic RAM แต่ตอนนี้ มันถูกเก็บไว้ในดิสก์หลายตัวในเครื่องจำนวนหนึ่งที่เชื่อมต่อผ่านเครือข่ายเนื่องจากมีปริมาณมาก ดังนั้น แทนที่จะรวบรวมข้อมูลสำหรับการประมวลผล โมดูลการประมวลผลจะถูกนำไปที่ข้อมูลขนาดใหญ่ ดังนั้น ลด I/O ของเครือข่ายลงอย่างมาก วิธีการประมวลผลเป็นไปตามข้อกำหนดทางธุรกิจ สามารถจัดประเภทเป็นแบทช์ เรียลไทม์ หรือไฮบริดตาม SLA
- การประมวลผลแบบแบตช์ – แบทช์กำลังรวบรวมอินพุตสำหรับช่วงเวลาที่กำหนดและเรียกใช้การแปลงตามวิธีที่กำหนดไว้ การโหลดข้อมูลในอดีตเป็นการดำเนินการแบบแบตช์ทั่วไป
- การประมวลผลตามเวลาจริง – การประมวลผลตามเวลาจริงเกี่ยวข้องกับการเรียกใช้การแปลงข้อมูลเมื่อได้รับข้อมูล
- การประมวลผลแบบไฮบริด – เป็นการผสมผสานระหว่างความต้องการการประมวลผลแบบแบตช์และแบบเรียลไทม์
- ปริมาณการใช้/การใช้ข้อมูล : ผู้ใช้/บริการที่ใช้ข้อมูลที่วิเคราะห์
เลเยอร์นี้ใช้เอาต์พุตที่มาจากเลเยอร์การประมวลผล ผู้ใช้ที่แตกต่างกัน เช่น ผู้ดูแลระบบ ผู้ใช้ทางธุรกิจ ผู้ขาย คู่ค้า ฯลฯ สามารถใช้ข้อมูลในรูปแบบที่แตกต่างกันได้ ผลลัพธ์ของการวิเคราะห์สามารถใช้ได้โดยกลไกการแนะนำ หรือกระบวนการทางธุรกิจสามารถทริกเกอร์ได้ตามการวิเคราะห์
การใช้ข้อมูลในรูปแบบต่างๆ ได้แก่
- ส่งออกชุดข้อมูล –อาจมีข้อกำหนดสำหรับการสร้างชุดข้อมูลบุคคลที่สาม สามารถสร้างชุดข้อมูลได้โดยใช้การเอ็กซ์พอร์ตไฮฟ์หรือโดยตรงจาก HDFS
- การรายงานและการแสดงภาพ – การสแกนเครื่องมือการรายงานและการแสดงภาพแบบต่างๆ เชื่อมต่อกับ Hadoop โดยใช้การเชื่อมต่อ JDBC/ODBC กับกลุ่ม
- การสำรวจข้อมูล – นักวิทยาศาสตร์ข้อมูลสามารถสร้างแบบจำลองและทำการสำรวจเชิงลึกในสภาพแวดล้อมแบบแซนด์บ็อกซ์ แซนด์บ็อกซ์อาจเป็นคลัสเตอร์แยกต่างหาก (แนวทางที่แนะนำ) หรือสคีมาแยกต่างหากภายในคลัสเตอร์เดียวกันที่มีชุดย่อยของข้อมูลจริง
- การสืบค้นข้อมูลแบบเฉพาะเจาะจง - รองรับการสืบค้นข้อมูลแบบเฉพาะกิจหรือเชิงโต้ตอบโดยใช้ Hive, Impala หรือ spark SQL
อ่านเพิ่มเติม: Big Data: ฝันร้ายในอนาคต?
เลเยอร์การทำงานของสถาปัตยกรรมบิ๊กดาต้า:
อาจมีอีกวิธีหนึ่งในการกำหนดสถาปัตยกรรม กล่าวคือ ผ่านแผนกฟังก์ชันการทำงาน แต่หมวดหมู่การทำงานสามารถจัดกลุ่มเข้าด้วยกันเป็นเลเยอร์ตรรกะของสถาปัตยกรรมอ้างอิง ดังนั้นสถาปัตยกรรมที่ต้องการจึงทำได้โดยใช้ Logical Layers
การแบ่งชั้นตามฟังก์ชันมีดังนี้:
- แหล่งข้อมูล:
การวิเคราะห์แหล่งที่มาทั้งหมดที่องค์กรได้รับข้อมูลและที่อาจช่วยองค์กรในการตัดสินใจในอนาคตควรแสดงอยู่ในหมวดหมู่นี้ แหล่งข้อมูลที่แสดงในที่นี้โดยไม่คำนึงถึงข้อเท็จจริงว่าข้อมูลมีโครงสร้าง ไม่มีโครงสร้าง หรือกึ่งมีโครงสร้าง
- การดึงข้อมูล:
ก่อนที่คุณจะสามารถจัดเก็บ วิเคราะห์ หรือแสดงภาพข้อมูลของคุณ คุณต้องมีบางอย่างเสียก่อน การดึงข้อมูลเป็นเรื่องเกี่ยวกับการนำสิ่งที่ไม่มีโครงสร้างมาใช้ เช่น หน้าเว็บ และเปลี่ยนให้เป็นตารางที่มีโครงสร้าง เมื่อคุณจัดโครงสร้างแล้ว คุณสามารถจัดการได้หลายวิธี โดยใช้เครื่องมือที่อธิบายไว้ด้านล่างเพื่อค้นหาข้อมูลเชิงลึก
- การจัดเก็บข้อมูล:
ความจำเป็นพื้นฐานในการทำงานกับข้อมูลขนาดใหญ่คือการคิดว่าจะจัดเก็บข้อมูลนั้นอย่างไร ส่วนหนึ่งของการที่ Big Data ถูกมองว่าเป็น “BIG” ก็คือการที่ระบบดั้งเดิมจัดการได้มากเกินไป ผู้ให้บริการจัดเก็บข้อมูลที่ดีควรเสนอโครงสร้างพื้นฐานสำหรับใช้งานเครื่องมือวิเคราะห์อื่นๆ ทั้งหมดของคุณ รวมถึงสถานที่สำหรับจัดเก็บและสืบค้นข้อมูลของคุณ
- การล้างข้อมูล:
ขั้นตอนที่จำเป็นก่อนที่เราจะเริ่มต้นขุดข้อมูลเพื่อข้อมูลเชิงลึก แนวทางปฏิบัติที่ดีในการสร้างชุดข้อมูลที่สะอาดและมีโครงสร้างที่ดีถือเป็นแนวทางปฏิบัติที่ดี ชุดข้อมูลสามารถมาในรูปทรงและขนาดต่างๆ ได้ โดยเฉพาะเมื่อมาจากเว็บ เลือกเครื่องมือตามความต้องการข้อมูลของคุณ
- การทำเหมืองข้อมูล:
การทำเหมืองข้อมูลเป็นกระบวนการในการค้นหาข้อมูลเชิงลึกภายในฐานข้อมูล เป้าหมายของการขุดข้อมูลคือการตัดสินใจและคาดการณ์ข้อมูลที่คุณมีอยู่ เลือกซอฟต์แวร์ที่ให้การคาดการณ์ที่ดีที่สุดสำหรับข้อมูลทุกประเภท และให้คุณสร้างอัลกอริทึมของคุณเองสำหรับการขุดข้อมูล
- การวิเคราะห์ข้อมูล:
แม้ว่าการทำเหมืองข้อมูลจะเกี่ยวกับการกลั่นกรองข้อมูลของคุณในการค้นหารูปแบบที่ไม่รู้จักก่อนหน้านี้ การวิเคราะห์ข้อมูลเป็นการทำลายข้อมูลนั้นลงและประเมินผลกระทบของรูปแบบการทำงานล่วงเวลาเหล่านั้น Analytics เป็นการถามคำถามเฉพาะและค้นหาคำตอบในข้อมูล คุณยังสามารถถามคำถามเกี่ยวกับสิ่งที่จะเกิดขึ้นในอนาคตได้อีกด้วย!
- การแสดงข้อมูล:
การแสดงภาพเป็นวิธีที่สดใสและง่ายดายในการถ่ายทอดข้อมูลเชิงลึกที่ซับซ้อน และส่วนที่ดีที่สุดคือส่วนใหญ่ไม่ต้องการการเข้ารหัส บริษัทสร้างภาพข้อมูลจะทำให้ข้อมูลของคุณมีชีวิตชีวา ความท้าทายส่วนหนึ่งของนักวิทยาศาสตร์ด้านข้อมูลคือการถ่ายทอดข้อมูลเชิงลึกจากข้อมูลนั้นไปยังส่วนอื่นๆ ในบริษัทของคุณ เครื่องมือสามารถช่วยคุณสร้างแผนภูมิ แผนที่ และกราฟิกอื่นๆ จากข้อมูลเชิงลึกของคุณ
- การรวมข้อมูล:
แพลตฟอร์มการรวมข้อมูลเป็นตัวเชื่อมระหว่างแต่ละโปรแกรม พวกเขาเชื่อมต่อการอนุมานต่างๆ ของเครื่องมือกับซอฟต์แวร์อื่นๆ คุณสามารถแชร์ผลลัพธ์ของเครื่องมือสร้างภาพของคุณโดยตรงบน Facebook ผ่านเครื่องมือเหล่านี้
- ภาษาข้อมูล:
จะมีบางครั้งในอาชีพข้อมูลของคุณที่เครื่องมือไม่สามารถตัดมันได้ แม้ว่าเครื่องมือในปัจจุบันจะมีประสิทธิภาพมากขึ้นและใช้งานง่ายขึ้น แต่บางครั้งก็เป็นการดีกว่าที่จะเขียนโค้ดด้วยตัวเอง มีภาษาต่างๆ ที่ช่วยคุณในด้านต่างๆ เช่น การคำนวณทางสถิติและกราฟิก ภาษาเหล่านี้สามารถใช้เป็นส่วนเสริมสำหรับการทำเหมืองข้อมูลและซอฟต์แวร์ทางสถิติ
สิ่งสำคัญที่ต้องจำในการออกแบบ Big Data Architecture คือ:
- พลวัตของการใช้งาน : มีหลายสถานการณ์ตามที่แสดงในบทความซึ่งจำเป็นต้องพิจารณาในขณะที่ออกแบบสถาปัตยกรรม – รูปแบบและความถี่ของข้อมูล ประเภทของข้อมูล ประเภทของการประมวลผลและการวิเคราะห์ที่ต้องการ
- เทคโนโลยีมากมาย: การเพิ่ม จำนวนเครื่องมือในตลาดทำให้เกิดความสับสนอย่างมากเกี่ยวกับสิ่งที่ควรใช้ และเมื่อใดจะมีเทคโนโลยีหลายอย่างที่นำเสนอคุณลักษณะที่คล้ายคลึงกันและอ้างว่าดีกว่าเทคโนโลยีอื่นๆ
ฉันรู้ว่าคุณกำลังคิดเกี่ยวกับเครื่องมือต่างๆ ที่จะใช้เพื่อสร้างโซลูชัน Big Data แบบสมบูรณ์ ทั้งในการโพสต์ที่จะเกิดขึ้นของฉันเกี่ยวกับข้อมูลขนาดใหญ่ฉันจะครอบคลุมเครื่องมือที่ดีที่สุดเพื่อให้บรรลุงานที่แตกต่างกันในสถาปัตยกรรมข้อมูลขนาดใหญ่