About the Storage Layer

โดย Julien Le Dem

จุดประสงค์หลักของการมีเรื่อง abstraction ในเรื่องซอฟต์แวร์จะเป็นการซ่อน complexity ไว้ ก็เหมือนกับว่าเวลาที่เราพัฒนา software เราก็อาจจะไม่จำเป็นต้องลงลึกไปดูในรายละเอียดต่าง ๆ ว่าการทำงานภายในมันถูกสร้างขึ้นมาได้อย่างไร (ซึ่งจริงอยู่การที่เราเข้าใจการทำงานภายในก็จะทำให้เราเก่งขึ้นก็ตาม)

การมี storage layer ก็เช่นกัน เวลาที่เราใช้งานอย่างเช่น การดึงข้อมูลโดยใช้ SQL เราสามารถคิดถึงเรื่องของการ join การ filter การวิเคราะห์ข้อมูลไปได้เลย โดยที่เราอาจจะไม่ต้องลงไปดูถึงว่าข้อมูลถูกจัดเก็บด้วยฟอร์แมตอะไร หรือจัดเก็บแบบไหน

ถ้าเราอยากที่จะลดพวก data footprint หรือพวก cost ต่าง ๆ เพื่อที่จะทำให้เราสามารถดึงข้อมูลได้เร็วขึ้น เราก็อาจจะต้องลงไป optimize ที่ storage layer แทน เช่น ฟอร์แมตของข้อมูลก็อาจจะเก็บให้อยู่ในฟอร์แมต Parquet เป็นต้น การทำ sorting/clustering หรือ partitioning ก็สามารถช่วยได้เช่นกัน