การวิเคราะห์ข้อมูลขนาดใหญ่เป็นพื้นที่ที่เติบโตอย่างรวดเร็วทั่วทั้งอุตสาหกรรม
องค์กรต่างๆ ได้ลงทุนมหาศาลในการจัดหาชุดซอฟต์แวร์ เปิดใช้โปรแกรมการฝึกอบรม ตลอดจนการตั้งค่าทรัพยากรศูนย์ข้อมูลสำหรับ Big Data Lake
สถาปัตยกรรม Big Data Lake ได้รับการสร้างขึ้นจากผลิตภัณฑ์โอเพ่นซอร์ส เช่น Hadoop และ Spark เป็นต้น
อย่างไรก็ตาม การลงทุนเพื่อสร้าง Big Data Lake ไม่ได้ให้ผลตอบแทนที่สมน้ำสมเนื้อในแง่ของผลประโยชน์ทางธุรกิจ
ผลตอบแทนจากเงินทุนที่จับต้องได้ในแง่ของการประหยัด OPEX จะไม่ปรากฏให้เห็นโดยตรงในงบดุล
การวิเคราะห์และการรายงานยังคงเป็นกรณีการใช้งานหลักที่ใช้กันอย่างแพร่หลายทั่วทั้งอุตสาหกรรม
นอกจากนี้ องค์กรต่างๆ ยังลงทุนมหาศาลในทุนมนุษย์ เช่น นักวิทยาศาสตร์ข้อมูล วิศวกรข้อมูลขนาดใหญ่ และสถาปนิก เพื่อรับคุณค่าจาก Data Lake
ทะเลสาบข้อมูลและหลุมดำ
เราสามารถวาดความคล้ายคลึงระหว่าง Data Lake สมัยใหม่กับปรากฏการณ์จักรวาลของหลุมดำที่อธิบายไว้ด้านล่าง
ล่าสุดภาพนี้เผยแพร่โดย NASA ถ่ายโดย Event Horizon Telescope (EHT)
เพื่อให้เข้าใจวิธีการทำงานของหลุมดำ เราจะตรวจสอบคุณลักษณะของหลุมดำอย่างรวดเร็ว -
- มันมีแรงโน้มถ่วงมหาศาลจนไม่อาจต้านทานได้
- แม้แต่แสงก็ไม่สามารถหนีจากแรงโน้มถ่วงของมันได้ ดังนั้นหลุมดำจึงไม่สามารถมองเห็นได้ในสเปกตรัมที่มองเห็นได้
- สิ่งใดเข้าไปในหลุมดำ ย่อมไม่ออกมา มันสูญสิ้นไปตลอดกาล
- มันมีความจุไม่จำกัด สสารยังคงถูกดูดเข้าไป
ฟังดูคุ้นเคยเมื่อเราทำการเปรียบเทียบกับ Big Data Lake
- ไม่อาจต้านทานได้: สำหรับองค์กรต่างๆ การมี Big Data Lake ในปัจจุบันกลายเป็นสิ่งจำเป็น ไม่มีใครสามารถต้านทานได้ ไม่เช่นนั้นจะถูกตราหน้าว่า "ล้าสมัย"
- การมองเห็นข้อมูล:เมื่อมีการตั้งค่า Data Lake และเราเริ่มสตรีมข้อมูลลงไป การได้รับการมองเห็นและการวิเคราะห์ต้องใช้ความพยายามอย่างมาก ตั้งแต่การเขียนงาน Spark จนถึงการจัดเก็บข้อมูลที่ได้รับการปรับปรุงใน HBase ไปจนถึงการสร้างการแสดงภาพ . ยิ่งไปกว่านั้น ไม่ว่าคุณจะมีประโยชน์ใดๆ สำหรับจุดข้อมูลที่กำหนดหรือไม่ “ทุกอย่าง” จะถูกทิ้งลงใน Data Lake อย่างสุ่มสี่สุ่มห้า
- อะไรก็ตามที่เข้าไป ไม่มีวันหลุดออกมา: เนื่องจาก Data Lake จัดเก็บข้อมูลดิบ หลังจากนั้นบางครั้งจึงเป็นไปไม่ได้ที่จะติดตามข้อมูลที่เราใส่ลงไปใน Lake กองข้อมูลยังคงไม่ได้รับการวิเคราะห์และตัดการเชื่อมต่อ การแสดงภาพถูกสร้างขึ้นบนชุดข้อมูลขนาดเล็กมากที่มีอยู่ใน Data Lake ข้อมูลที่เหลือยังคงไม่ได้ใช้
- ความจุ Data Lake ไม่ได้ไม่มีที่สิ้นสุดเหมือนหลุมดำขนาดมหึมา: เมื่อมีการนำเข้าข้อมูลมากขึ้นเรื่อยๆ ปัญหาก็ทวีคูณ องค์กรต่างๆ ต้องลงทุนมากขึ้นในด้านการจัดเก็บและการประมวลผล เพื่อที่จะพิสูจน์การลงทุนเหล่านี้ พวกเขาจะต้องสนับสนุนประโยชน์ของ Data Lake ต่อไปและช่วยพวกเขาได้มากเพียงใด ดังนั้น Data Lake จึงมีขนาดและราคาเพิ่มขึ้นเรื่อยๆ
การได้มาซึ่งคุณค่าผ่านการเรียนรู้ของเครื่อง
การเรียนรู้ของเครื่อง (ML) กลายเป็นสิ่งจำเป็นสำหรับระบบธุรกิจอัจฉริยะและระบบอัตโนมัติ
หากไม่มีข้อมูลขนาดใหญ่ แมชชีนเลิร์นนิงก็ไม่สามารถทำงานได้ เนื่องจากอัลกอริธึมขึ้นอยู่กับข้อมูลในอดีตและการวิเคราะห์แนวโน้ม
อย่างไรก็ตาม เพื่อที่จะเข้าถึงแมชชีนเลิร์นนิงได้ในทางปฏิบัติ จำเป็นต้องระบุ “คุณลักษณะข้อมูล” ล่วงหน้าและจำเป็นต้องมีชุดข้อมูลที่ปรับปรุงแล้ว
คุณลักษณะข้อมูลถูกกำหนดให้เป็นคุณลักษณะของข้อมูลซึ่งเกี่ยวข้องกับกรณีการใช้งานที่กำหนด สิ่งนี้เรียกอีกอย่างว่า “วิศวกรรมคุณลักษณะ”ในวิทยาศาสตร์ข้อมูล
ดังนั้น เราต้องดึงคุณลักษณะข้อมูลบางอย่างที่ "เกี่ยวข้อง" สำหรับกรณีการใช้งานออกจาก Data Lake ขนาดมหึมาที่กำลังขยายตัวอยู่เรื่อยๆ และคุณลักษณะข้อมูลเหล่านี้จะขับเคลื่อนอัลกอริธึม ML
ชุดข้อมูลอื่นๆ ส่วนใหญ่ไม่เกี่ยวข้องและยังคงไม่ได้ใช้ใน Data Lake พวกเขาถูกเก็บไว้ที่นั่นด้วยความหวังว่าสักวันหนึ่งกรณีการใช้งานจะเกิดขึ้นซึ่งจะใช้ประโยชน์จากข้อมูลนั้น
แนวทางนี้ต้องการปริมาณงานก่อนการประมวลผลจำนวนมากผ่านงาน Spark และเปลืองทรัพยากรการประมวลผลจำนวนมาก
คิดใหม่เกี่ยวกับสถาปัตยกรรม Data Lake
มีความจำเป็นเร่งด่วนที่จะต้องคิดใหม่เกี่ยวกับสถาปัตยกรรม Data Lake และทำให้มีความคล่องตัวมากขึ้น เป็นมิตรต่อการวิเคราะห์ และคุ้มต้นทุน
ในส่วนนี้ เราจะพูดถึงแง่มุมทางสถาปัตยกรรมบางส่วนของ Data Lake ที่ถูกจินตนาการใหม่ หรือที่เรียกว่า "Intelligent Data Lake" สถาปัตยกรรม -
1. การนำเข้าข้อมูลแบบปรับเปลี่ยนได้
ควรกำหนดคุณลักษณะของข้อมูลได้ ณ เวลาที่นำเข้า
สิ่งนี้จะต้องเกิดขึ้นเมื่อรันไทม์ เพื่อให้สามารถระบุชุดข้อมูลที่เกี่ยวข้องระหว่างการประมวลผลสตรีมและจัดเก็บแยกกัน
ในปัจจุบัน เทคโนโลยีการนำเข้าข้อมูล เช่น Kafka เชื่อมต่อแหล่งข้อมูลเข้ากับ sink (โดยปกติแล้ว HDFS) นี่คือตัวอย่างของการนำเข้าข้อมูลแบบโง่ๆ โดยที่ข้อมูลจะถูกขนส่งจากต้นทางไปยังปลายทางโดยมีการประมวลผลล่วงหน้าเพียงเล็กน้อยหรือไม่มีเลย
ด้วยเหตุนี้ เราจึงต้องเขียนงาน Spark เพื่อทำความเข้าใจข้อมูลนี้ และแยกส่วนเพื่อให้สามารถวิเคราะห์ได้
<แข็งแกร่ง>2. การทำให้ข้อมูลเวลานำเข้าเป็นมาตรฐาน
สิ่งสำคัญที่สุดประการหนึ่งสำหรับการเรียนรู้ของเครื่องคือความสามารถในการทำให้ฟีเจอร์ข้อมูลเป็นมาตรฐานให้เป็นชุดข้อมูลที่บริโภคได้สำหรับการเรียนรู้ของเครื่องภายใต้การดูแล
นี่เป็นกระบวนการที่เกิดขึ้นหลังจากการนำเข้าผ่านงาน Spark แบบกำหนดเองด้วย
เพื่อให้ข้อมูลพร้อมใช้งานทันทีสำหรับการใช้แมชชีนเลิร์นนิง ควรใช้กฎการทำให้เป็นมาตรฐาน ณ เวลาที่นำเข้า กฎเหล่านี้ควรเปลี่ยนแปลงได้ทันที
3. การจัดระเบียบคุณลักษณะข้อมูลตามบริบท
หลังการนำเข้า ข้อมูลมักจะถูกทิ้งลงในโฟลเดอร์ HDFS ซึ่งเป็นข้อมูลดิบ
ข้อมูลนี้ไม่อยู่ในรูปแบบที่ใช้งานได้ และเราจำเป็นต้องแยก วิเคราะห์ และจัดเก็บไว้ใน HBase หรือฐานข้อมูลอื่นที่คล้ายคลึงกันเพื่อเปิดใช้งาน การวิเคราะห์ข้อมูล
แม้จะมีการประมวลผลหลังการประมวลผลนี้ การสืบค้นและค้นหาข้อมูลนี้แทบจะเป็นไปไม่ได้เลยหากไม่มีการปรับแต่งงาน Spark เพื่อสร้างการเชื่อมโยงเหล่านี้ในระหว่างการประมวลผลภายหลัง
ด้วยเหตุนี้ จึงจำเป็นอย่างยิ่งที่จะต้องจัดทำดัชนีและแบ่งข้อมูล ระหว่างการนำเข้า และจัดเก็บไว้ในดัชนีอนุกรมเวลา ซึ่งสามารถทำได้โดยการใช้เทคโนโลยี เช่น การค้นหาแบบยืดหยุ่น และโดยการทำให้การนำเข้าข้อมูลมีความชาญฉลาดมากขึ้น
เมื่อเราจัดทำดัชนีคุณลักษณะของข้อมูลและจัดระเบียบตามเกณฑ์ เช่น เวลา หรือคุณลักษณะของข้อมูลคลัสเตอร์ตามเกณฑ์ที่กำหนดเองนอกเหนือจากเวลา การวิเคราะห์และดำเนินการกับข้อมูลดังกล่าวก็จะง่ายขึ้น
4. รองรับการแจ้งเตือนข้อมูล Webhook
Data Lake ปัจจุบันเป็นสถาปัตยกรรมแบบดึงข้อมูล เราต้องดึงข้อมูลออกจากทะเลสาบเป็นระยะๆ และวิเคราะห์เพื่อตัดสินใจดำเนินการ
เพื่อจุดประสงค์นี้ งาน Spark จะถูกกำหนดเวลาโดยใช้ Mesos หรือ Yarn เพื่อดำเนินการเป็นระยะ
ควรเป็นไปได้ที่ Data Lake จะสามารถทำให้เกิดการเชื่อมโยงข้อมูลในรูปแบบของกราฟคุณลักษณะได้
ควรกำหนดค่ากฎในข้อมูลที่เชื่อมโยงนี้ ซึ่งเมื่อประเมินเป็นจริง จะนำไปสู่การเรียก API ของ Webhook
สิ่งนี้จะช่วยให้งานประมวลผลสามารถเกิดขึ้นได้ตามความต้องการ แทนที่จะเกิดขึ้นเป็นระยะๆ เฉพาะเมื่อกฎนโยบายข้อมูลขนาดใหญ่ประเมินว่า "จริง" เท่านั้น ทรัพยากรการประมวลผลจะได้รับการจัดสรรสำหรับการประมวลผล
5. Data Lake แบบกระจาย
สถาปัตยกรรมในปัจจุบันส่วนใหญ่เน้นไปที่ธรรมชาติ ด้วยการถือกำเนิดของคลาวด์และการประมวลผลแบบเอดจ์ Data Lake ควรมีการกระจายตัวอย่างมาก เพื่อให้การนำเข้าสามารถเคลื่อนเข้าใกล้แหล่งข้อมูลได้มากขึ้น
Data Lake แบบรวมศูนย์กลายเป็นจุดเดียวของความล้มเหลวและนำไปสู่เวลาแฝงที่สูงขึ้นสำหรับการนำเข้าข้อมูล
Data Lake แบบกระจายช่วยให้สามารถนำเข้าข้อมูลภายในเครื่องที่ Edge ได้ (เช่น กรณีการใช้งาน IoT และ 5G)
ควรเป็นไปได้ที่จะดำเนินการปริมาณงานจากส่วนกลางหรือที่ Edge ขึ้นอยู่กับกรณีการใช้งาน
ตัวอย่างเช่น การประมวลผลข้อมูล IoT เชิงอุตสาหกรรมควรเกิดขึ้นใกล้กับ Edge มากขึ้น
6. รองรับการจำลองแบบแบบเลือกสรร
ใน Data Lake ในปัจจุบัน ข้อมูลที่นำเข้าใน HDFS จะถูกจำลองแบบตามปัจจัยการจำลอง (RF)
เราจำเป็นต้องระบุจำนวนสำเนาข้อมูลที่เราต้องการโดยการตั้งค่า RF
Data Lake รุ่นต่อไปควรอนุญาตให้มีการจำลองแบบแบบเลือกได้
อาจเป็นไปได้ว่าคุณสมบัติข้อมูลบางอย่างไม่จำเป็นต้องถูกจำลองแบบ ในขณะที่คุณสมบัติอื่นๆ บางอย่างจำเป็นต้องถูกจำลองแบบ
ซึ่งจะช่วยลดต้นทุนการจัดเก็บได้อย่างมาก
7. รองรับ GraphQL สำหรับ Data Lake
เพื่อเปิดใช้งานกรณีการใช้งานที่หลากหลายโดยไม่จำเป็นต้องปรับแต่งงาน Spark อย่างต่อเนื่อง จำเป็นต้องเปิดเผยความสามารถของ Data Lake โดยใช้ GraphQL
ตามที่กล่าวไว้ข้างต้น ข้อมูลที่นำเข้าควรได้รับการแบ่งส่วน จัดระเบียบ และจัดทำดัชนีเพื่อให้สามารถค้นหาได้
นอกจากนี้ การเชื่อมโยงข้อมูลควรได้รับการกำหนดเป็นพื้นฐานกฎนโยบายหลังการนำเข้าตามที่อธิบายไว้ก่อนหน้านี้
เลเยอร์ที่อยู่ด้านบนของความสามารถเหล่านี้ควรเป็นเลเยอร์ GraphQL ซึ่งสามารถเรียกใช้ได้โดยตรงจาก Spark
8. สตรีมมิ่งแบบสอบถามและผลลัพธ์
เพื่อแยกชุดข้อมูลขนาดใหญ่ ควรเป็นไปได้ที่จะสตรีมการสืบค้น GraphQL ไปยัง Data Lake และรับผลลัพธ์การสตรีมแบบอะซิงโครนัสโดยใช้ Kafka หรือเทคโนโลยีที่เกี่ยวข้อง
ชุดผลลัพธ์การสตรีมแบบเรียลไทม์นี้จะเปิดใช้งานกรณีการใช้งานที่หลากหลายซึ่งต้องการเวลาแฝงต่ำ
9. ภูมิภาค Data Lake และการแคช
ฟีเจอร์ข้อมูลบางอย่างไม่ได้เกิดมาเท่ากัน Data Lake ยุคใหม่ควรสนับสนุนแนวคิดระหว่างข้อมูลอุ่นกับข้อมูลเย็น
ชุดข้อมูลที่ต้องมีการอ่าน อัปเดต หรือเขียนบ่อยครั้งควรจัดหมวดหมู่เป็นข้อมูลอุ่น ณ เวลาที่นำเข้า
ชุดข้อมูลเหล่านี้ควรมีสิ่งอำนวยความสะดวกสำหรับการจัดเก็บในแคชแบบกระจาย เพื่อลดเวลาแฝงเพิ่มเติม
ในทางกลับกันข้อมูลเย็นสามารถคงอยู่บนดิสก์ได้ทั้งหมด
ในขณะนี้ เราไม่มีการควบคุมโดยละเอียดเกี่ยวกับประเด็นเหล่านี้ใน Data Lake
เครื่องมือค้นหา – Data Lake ที่ใหญ่ที่สุดในโลก
หากเราย้อนกลับไปและคิดว่า เครื่องมือค้นหาของ Google อาจเป็นตัวอย่างที่ดีที่สุดของ Data Lake อัจฉริยะที่ใหญ่ที่สุดในโลก
ลักษณะของเครื่องมือค้นหาของ Google จะไม่สามารถทำได้หากเป็นไปตามสถาปัตยกรรม Data Lake ในปัจจุบัน -
- Google นำเข้าเนื้อหาที่ผู้ใช้สร้างขึ้นบนอินเทอร์เน็ตแบบเรียลไทม์ ซึ่งคิดเป็นเพตะไบต์ต่อวัน
- ช่วยให้มั่นใจได้ถึงการจัดเก็บตามบริบทของข้อมูลและการจัดทำดัชนี - ผลการค้นหาในคำค้นหาของเราจะแสดงเป็นมิลลิวินาทีหลังการแยกจากเครื่องมือค้นหา
- การนำเข้าเกือบจะเกิดขึ้นทันทีในเครื่องมือค้นหาเนื่องจากมีการสร้างเนื้อหาใหม่บนอินเทอร์เน็ต
- การเรียนรู้ของเครื่องมีอยู่ในระบบ เราเห็นโฆษณาที่ตรงเป้าหมายตามพฤติกรรมของเราทางออนไลน์
- เครื่องมือค้นหามีการกระจายตามธรรมชาติ ข้อมูลทั่วโลกไม่ได้ถูกนำเข้าไว้ที่เดียว
- มีการกระจายการคำนวณของเครื่องมือค้นหาของ Google ด้วยเช่นกัน
- Google ไม่ได้เขียนโค้ดใหม่เนื่องจากลักษณะของการเปลี่ยนแปลงของข้อมูล หรือการเปลี่ยนแปลงคุณลักษณะของข้อมูลในเนื้อหาที่ผู้ใช้สร้างขึ้น
- Data Lake ของเครื่องมือค้นหาส่งการแจ้งเตือน (ฉันหวังว่าเราทุกคนคงจะใช้ Google Alerts)
- ข้อมูลมีการเชื่อมโยงทางสังคมและการเชื่อมโยงตามบริบทจะถูกสร้างขึ้นทันที
สรุป
สถาปัตยกรรม Data Lake จำเป็นต้องก้าวไปไกลกว่าขอบฟ้า เราเห็นความพยายามในช่วงแรกๆ ในการสร้าง Data Lake แบบกระจายและแบบเรียลไทม์ซึ่งสนับสนุนการจัดทำดัชนีข้อมูล แต่จำเป็นต้องเร่งความพยายามเพื่อมอบคุณค่าให้กับธุรกิจมากขึ้นในแง่ของ TCO
ฉันคาดการณ์ว่าการหยุดชะงักครั้งใหญ่กำลังจะเกิดขึ้นในระบบนิเวศข้อมูลขนาดใหญ่
หากคุณชอบบทความนี้ อย่าลังเลที่จะเชื่อมต่อกับ LinkedIn