การออกแบบ Data lake นั้นสามารถออกแบบได้อย่างอิสระ ไม่มีกฎตายตัว วิธีการออกแบบ Data lake นั้นขึ้นอยู่กับวัตถุประสงค์ของการออกแบบเป็นหลัก
โดยสามารถไล่ตาม Checklist แบบง่าย ๆ ได้ดังนี้
1. ข้อมูลที่เรามีอยู่นั้นเป็นข้อมูลประเภทใดบ้าง เช่น Structure Data, Semi Structure Data, Unstructured Data
2. ข้อมูลต้นทางนั้นเป็นข้อมูลรูปแบบใด เช่น CSV, Json, TXT
3. ข้อมูลปลายทางที่ต้องการจัดเป็นเป็นรูปแบบใด เช่น Parquet, Avro, ORC, CSV
4. ข้อมูลจำเป็นต้องกำหนดสิทธิการเข้าถึงหรือไม่ และใครเป็นผู้อนุมัติสิทธิ
5. ข้อมูลจำเป็นต้องมีการสำรองนานแค่ไหน
6. ข้อมูลจำเป็นต้องมีการ Monitor ละเอียดแค่ไหน
7. ข้อมูลจำเป็นต้องถูก Audit ด้วยหรือไม่
8. ประสิทธิภาพที่ต้องการเมื่อเข้าถึงข้อมูล เช่น 1,000 Request per sec
9. ราคาที่ยอมรับได้สำหรับ Data lake
10. ใครเป็นผู้ใช้งาน Data lake บ้าง
ตัวอย่างภาพข้างต้น จะเป็นการแยก S3 Bucket ออกมาเป็น 3 + 1 นั้นคือ 3 ส่วนที่เกี่ยวข้างกันเป็นลำดับและ 1 ส่วนสำหรับการเก็บ Logs โดย 3 ส่วนแรกได้แก่ Raw, Transoformed และ Curated ซึ่งทั้ง 3 ส่วนนี้จะเป็นการแบ่งตามความพร้อมในการใช้งาน
คือ S3 Bucket สำหรับเก็บข้อมูลต้นฉบับโดยมีรูปแบบของไฟล์ที่หลากหลายประเภท ตั้งแต่ CSV, Json, TXT หรือ Parquet เป็นต้น โดยข้อมูลส่วนนี้นั้นจะถูกนำเข้ามาโดยอัตโนมัติหรือเกิดจากการที่อัพโหลดข้อมูลขึ้นมาด้วยบุคคลก็เป็นไปได้ และข้อมูลในส่วนนี้นั้นส่วนใหญ่แล้วจะถูกตั้งสิทธิการเข้าถึงไว้แค่ Read-Only เท่านั้น
คือ S3 Bucket สำหรับเก็บข้อมูลที่มีการเปลี่ยนแปลงเรียบร้อยแล้ว โดยการเปลี่ยนแปลงนั้นได้แก่ การเติมข้อมูลที่หายไป, การลบข้อมูลที่ไม่ถูกต้อง, การเปลี่ยนหน่วยของข้อมูล หรือการเปลี่ยนไฟล์ข้อมูลจาก Row-based เป็น Column-based เป็นต้น และข้อมูลที่ถูกจัดเก็บใน Bucket นี้ ควรเป็นข้อมูลที่ถูกบีบอัดและเปลี่ยนเป็นไฟล์รูปแบบ Parquet เพื่อประสิทธิภาพในการใช้งานต่อไป
คือ S3 Bucket สำหรับเก็บช้อมูลที่พร้อมใช้งานในลักษณะของ Data set โดยผู้ใช้งานข้อมูลนี้ต่อ อาจจะเป็นได้ทั้ง Data analyst, Data scientist หรือ User ผ่านหน้า Visualization ซึ่งข้อมูลดังกล่าวนั้นอาจจะเป็นข้อมูลที่ถูกรวมเข้ากับข้อมูลไฟล์อื่นหรือข้อมูลจากแผนกอื่น เพื่อให้สามารถเข้าถึงข้อมูลได้จากไฟล์เดียว
สุดยอดตารางสำหรับการตั้งชื่อไฟล์และโฟลเดอร์
การสร้าง Data lake นั้นสามารถทำได้อย่างอิสระ แต่ถ้ายังไม่รู้จะเริ่มยังไงก็สามารถใช้ Reference Architect จากทาง AWS เพื่อไปใช้งานเบื้องต้น จากนั้นค่อยประยุกต์ให้เข้ากับบริษัทและทีมของตัวเอง
Ref. Data lake foundation - Storage Best Practices for Data and Analytics Applications