Column Oriented Storage – The hidden thing 1

186

Bài viết được sự cho phép của tác giả Kiên Nguyễn

Từ trước tới nay, làm với với Database là nhắc tới row (dòng), cũng có làm việc với column nhưng lưu trữ theo hướng column (Column Oriented Storage) thì chưa nghe bao giờ.

Đây, bắt đầu ngay xem tại sao ta lại cần biết về cái kiểu này.

  Khái niệm về OOD – Object oriented design
  Lập trình theo kiểu Aspect Oriented Programming (AOP) sử dụng Spring Framework

Một ngày đẹp trời, sếp đưa cho bạn một table với vài tỷ dòng dữ liệu. Nhắc lại là tỷ (trillion) nha. Sếp bảo lấy ra mấy dòng trong tháng 12 năm 2005. Lúc này, bất cứ thao tác nhỏ nào với DB cũng trở thành vấn đề lớn.

Column Oriented Storage
Không thiếu những câu hỏi thao tác, speeding up các table dữ liêu lớn

Rồi đây, cùng xem cái thằng quỷ Column Oriented Storage có gì khác?

1. Column Oriented Storage là gì?

Ý tưởng vô cùng đơn giản

The idea behind column oriented storage is simple: don’t store all the values from one row together, but store all the values from each column together instead

Ý tưởng phía sau column oriented storage vô cùng đơn giản: đừng lưu trữ tất cả dữ liệu trên một dòng, thay vào đó lưu trữ với nhau trên một cột

Nếu data trong mỗi column được lưu trữ trong một file?. Lúc này, khi cần truy xuất, chỉ cần đọc và parse nội dụng file sẽ có data. Tiết kiệm được rất nhiều thời gian và cải thiện rõ rệt về performance.

Column Oriented Storage
Nguồn ảnh / Source: Designing Data-Intensive Applications

Ở table phía trên, thay vì lưu trữ theo hướng row (hàng) ở phía trên, ta sử dụng column. Cột data_key, product_sk, tất cả chuyển qua lưu trữ theo dòng. Đó là bước đầu tiên trong Column Oriented Storage.

Cũng có thể nhớ dựa vào tên, Oriented: hướng về, thiên về. Nên Column Oriented Storage là lưu trữ theo hướng column (cột).

2. Nhanh hơn chỗ nào?

Column Oriented Storage
Column Oriented Storage
Column Oriented Storage

4. Tham khảo

Đã tìm hiểu về Column Oriented thì ngại ngùng gì mà không xúc luôn Database Clustering ha.

Thanks for read. Have a great day!. Happy coding!

Bài viết gốc được đăng tải tại kieblog.vn

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev