Chế độ xem cụ thể hóa là gì?
Chế độ xem cụ thể hóa là một bảng dữ liệu trùng lặp được tạo bằng cách kết hợp dữ liệu từ nhiều bảng hiện có để truy xuất dữ liệu nhanh hơn. Ví dụ: hãy xem xét một ứng dụng bán lẻ với hai bảng cơ sở cho dữ liệu khách hàng và sản phẩm. Bảng khách hàng chứa thông tin như tên và chi tiết liên hệ của khách hàng, trong khi đó bảng sản phẩm chứa thông tin về chi tiết sản phẩm và chi phí. Bảng khách hàng chỉ lưu trữ ID sản phẩm của các mặt hàng mà khách hàng cá nhân mua. Bạn phải tham chiếu chéo cả hai bảng để có được chi tiết sản phẩm của các mặt hàng do khách hàng cụ thể mua. Thay vào đó, bạn có thể tạo chế độ xem cụ thể hóa để lưu trữ tên khách hàng và chi tiết sản phẩm liên quan trong một bảng tạm thời duy nhất. Bạn có thể xây dựng cấu trúc chỉ mục trên chế độ xem cụ thể hóa để cải thiện hiệu suất đọc dữ liệu.
Lợi ích của chế độ xem cụ thể hóa là gì?
Chế độ xem cụ thể hóa là một phương pháp nhanh chóng và hiệu quả để truy cập dữ liệu liên quan. Chúng giúp tối ưu hóa truy vấn trong các ứng dụng chuyên sâu về dữ liệu. Tiếp theo, chúng tôi sẽ điểm qua một vài lợi ích chính.
Tốc độ
Các truy vấn đọc quét qua các bảng và dòng dữ liệu khác nhau để thu thập thông tin cần thiết. Với chế độ xem cụ thể hóa, bạn có thể truy vấn dữ liệu trực tiếp từ chế độ xem mới của mình thay vì phải liên tục tính toán thông tin mới. Truy vấn của bạn càng phức tạp, bạn càng tiết kiệm được nhiều thời gian hơn bằng cách sử dụng chế độ xem cụ thể hóa.
Đơn giản hóa kho lưu trữ dữ liệu
Chế độ xem cụ thể hóa cho phép bạn hợp nhất logic truy vấn phức tạp trong một bảng. Điều này làm cho việc chuyển đổi dữ liệu và bảo trì mã hóa trở nên dễ dàng hơn cho các nhà phát triển. Chế độ này cũng có thể giúp việc quản lý các truy vấn phức tạp dễ dàng hơn. Bạn cũng có thể thiết lập tập dữ liệu con để giảm lượng dữ liệu bạn cần sao chép trong chế độ xem.
Tính nhất quán
Chế độ xem cụ thể hóa cung cấp một cái nhìn nhất quán về dữ liệu được ghi lại tại một thời điểm cụ thể. Bạn có thể định cấu hình tính nhất quán đọc trong chế độ xem cụ thể hóa và tạo ra khả năng truy cập vào dữ liệu ngay cả trong môi trường nhiều người dùng, nơi kiểm soát đồng thời là điều cần thiết.
Chế độ xem cụ thể hóa cũng cung cấp quyền truy cập dữ liệu ngay cả khi dữ liệu nguồn thay đổi hoặc bị xóa. Theo thời gian, điều này có nghĩa là bạn có thể sử dụng chế độ xem cụ thể hóa để báo cáo về bản kết xuất nhanh dữ liệu dựa trên thời gian. Mức độ cách ly khỏi các bảng nguồn đảm bảo rằng bạn đạt được mức độ nhất quán cao hơn trên dữ liệu của mình.
Cải thiện kiểm soát truy cập
Bạn có thể sử dụng chế độ xem cụ thể hóa để kiểm soát ai có quyền truy cập vào dữ liệu cụ thể. Bạn có thể lọc thông tin cho người dùng mà không cần cấp cho họ quyền truy cập vào các bảng nguồn. Cách tiếp cận này rất thiết thực nếu bạn muốn kiểm soát ai có quyền truy cập vào dữ liệu nào và họ có thể xem và tương tác với bao nhiêu dữ liệu đó.
Đâu là trường hợp sử dụng của chế độ xem cụ thể hóa?
Bạn có thể hưởng lợi từ các chế độ xem cụ thể hóa trong nhiều tình huống khác nhau.
Phân phối dữ liệu đã lọc
Nếu bạn cần phân phối dữ liệu gần đây trên nhiều địa điểm, chẳng hạn như cho lực lượng lao động từ xa, chế độ xem cụ thể hóa sẽ mang lại lợi ích cho bạn. Bạn sao chép và phân phối dữ liệu cho nhiều trang web bằng cách sử dụng chế độ xem cụ thể hóa. Những người cần truy cập vào dữ liệu tương tác với kho dữ liệu được sao chép gần họ nhất về mặt địa lý.
Hệ thống này cho phép xử lý đồng thời và giảm tải mạng. Đó là một cách tiếp cận hiệu quả với cơ sở dữ liệu chỉ đọc.
Phân tích dữ liệu chuỗi thời gian
Chế độ xem cụ thể hóa cung cấp bản kết xuất nhanh có nhãn thời gian của tập dữ liệu, vì vậy bạn có thể lập mô hình các thay đổi thông tin theo thời gian. Bạn có thể lưu trữ dữ liệu tổng hợp được tính toán sẵn, như tóm tắt hàng tháng hoặc hàng tuần. Những cách sử dụng này rất hữu ích cho nghiệp vụ thông minh và các nền tảng báo cáo.
Tương tác dữ liệu từ xa
Trong các hệ thống cơ sở dữ liệu phân tán, bạn có thể sử dụng các chế độ xem cụ thể hóa để tối ưu hóa các truy vấn liên quan đến dữ liệu từ các máy chủ từ xa. Thay vì liên tục tìm nạp dữ liệu từ một nguồn từ xa, bạn có thể tìm nạp và lưu trữ dữ liệu trong chế độ xem cụ thể hóa cục bộ. Điều này giúp giảm nhu cầu giao tiếp mạng và cải thiện hiệu năng.
Ví dụ: nếu bạn nhận dữ liệu từ một cơ sở dữ liệu bên ngoài hoặc thông qua API, chế độ xem cụ thể hóa sẽ hợp nhất và giúp xử lý dữ liệu đó.
Xử lý theo lô định kỳ
Chế độ xem cụ thể hóa rất hữu ích cho các tình huống cần xử lý theo lô định kỳ. Ví dụ, một tổ chức tài chính có thể sử dụng các chế độ xem cụ thể hóa để lưu trữ số dư cuối ngày và tính toán lãi suất. Hoặc để lưu trữ các bản tóm tắt hiệu suất danh mục đầu tư có thể được làm mới vào cuối mỗi ngày làm việc.
Chế độ xem cụ thể hóa hoạt động như thế nào?
Chế độ xem cụ thể hóa hoạt động bằng cách tính toán trước và lưu trữ kết quả của một truy vấn cụ thể dưới dạng bảng vật lý trong cơ sở dữ liệu. Cơ sở dữ liệu thực hiện tính toán trước theo khoảng thời gian đều đặn hoặc người dùng có thể kích hoạt việc tính toán trước bằng các sự kiện cụ thể. Quản trị viên giám sát hiệu năng và việc sử dụng tài nguyên của các chế độ xem cụ thể hóa để đảm bảo các chế độ xem này tiếp tục đáp ứng mục đích đã định.
Dưới đây là tổng quan chung về cách thức hoạt động của chế độ xem cụ thể hóa.
Tạo chế độ xem cụ thể hóa
Bạn xác định một truy vấn truy xuất dữ liệu mong muốn từ một hoặc nhiều bảng nguồn để tạo chế độ xem cụ thể hóa. Truy vấn này có thể bao gồm thao tác lọc, tổng hợp, kết nối và các thao tác khác theo nhu cầu.
Cơ sở dữ liệu ban đầu điền vào chế độ xem cụ thể hóa bằng cách chạy truy vấn đã xác định đối với dữ liệu nguồn. Kết quả của truy vấn được lưu trữ dưới dạng bảng vật lý trong cơ sở dữ liệu và bảng này đại diện cho chế độ xem cụ thể hóa.
Cập nhật chế độ xem cụ thể hóa
Dữ liệu trong chế độ xem cụ thể hóa cần được cập nhật định kỳ để phản ánh những thay đổi về dữ liệu cơ bản trong bảng nguồn. Tần suất làm mới dữ liệu phụ thuộc vào trường hợp sử dụng và yêu cầu.
Tiếp theo, chúng tôi sẽ giải thích một vài cách tiếp cận phổ biến để làm mới dữ liệu.
Làm mới toàn phần
Chế độ xem cụ thể hóa được tính toán lại hoàn toàn và ghi đè bằng kết quả truy vấn mới nhất. Đây là cách tiếp cận đơn giản nhất nhưng có thể cần tiêu tốn nhiều tài nguyên, đặc biệt là đối với các chế độ xem cụ thể hóa lớn.
Làm mới gia tăng
Chỉ những thay đổi trong dữ liệu cơ bản được áp dụng cho chế độ xem cụ thể hóa. Cách tiếp cận này có thể hiệu quả hơn so với làm mới toàn phần khi xử lý các tập dữ liệu lớn và cập nhật thường xuyên.
Làm mới theo nhu cầu
Một số hệ thống cho phép làm mới các chế độ xem cụ thể hóa theo nhu cầu, được kích hoạt bởi các sự kiện cụ thể hoặc yêu cầu của người dùng. Điều này cho phép kiểm soát nhiều hơn về thời điểm cập nhật dữ liệu, nhưng yêu cầu quản lý cẩn thận để đảm bảo chế độ xem cụ thể hóa luôn được cập nhật.
Các biến thể kỹ thuật trong các hệ thống khác nhau
Mỗi hệ thống quản lý cơ sở dữ liệu có các phương pháp riêng biệt để tạo chế độ xem cụ thể hóa.
Hệ thống quản lý cơ sở dữ liệu |
Cách thức hoạt động của các chế độ xem cụ thể hóa |
PostgreSQL |
Với PostgreSQL, bạn phải làm mới chế độ xem cụ thể hóa theo cách thủ công, tính toán lại toàn bộ chế độ xem. Bạn điền dữ liệu vào chế độ xem cụ thể hóa vào đúng thời điểm bạn tạo ra chế độ xem đó. |
MySQL |
MySQL không hỗ trợ chế độ xem cụ thể hóa. |
Oracle |
Oracle tự động làm mới chế độ xem cụ thể hóa, nhưng bạn cũng có tùy chọn làm mới theo nhu cầu. Bạn cũng có thể viết một lệnh SQL để nhắc các chế độ xem làm mới trước khi đưa ra kết quả. |
SQL Server |
SQL Server sử dụng tên “chế độ xem được lập chỉ mục” vì cụ thể hóa là một bước tạo chỉ mục của chế độ xem thông thường. Bạn chỉ có thể thực hiện các truy vấn SQL cơ bản với các chế độ xem được lập chỉ mục. Các chế độ xem này tự động cập nhật cho người dùng. |
MongoDB |
MongoDB sử dụng các hàm tập hợp để cung cấp tính năng tương tự như chế độ xem cụ thể hóa nhưng dành cho môi trường NoSQL. |
Đâu là điểm khác biệt giữa chế độ xem và chế độ xem cụ thể hóa?
Trong cơ sở dữ liệu quan hệ, chế độ xem là một bảng tạm thời được tạo bằng cách chuyển đổi và kết hợp dữ liệu từ nhiều bảng cơ sở. Đó là một bảng ảo không lưu trữ bất kỳ dữ liệu nào. Thay vào đó, bảng này được xác định bởi một truy vấn đối với một hoặc nhiều bảng nguồn.
Bất cứ khi nào người dùng truy vấn chế độ xem, công cụ cơ sở dữ liệu sẽ tính toán linh hoạt kết quả bằng cách chạy truy vấn cơ bản đối với các bảng nguồn. Dữ liệu trong chế độ xem luôn được cập nhật vì được lấy trực tiếp từ các bảng nguồn mỗi khi truy cập vào dữ liệu.
Mặt khác, chế độ xem cụ thể hóa lưu trữ kết quả của một truy vấn cụ thể dưới dạng bảng vật lý trong cơ sở dữ liệu. Dữ liệu trong chế độ xem cụ thể hóa được tính toán trước và lưu trữ, có nghĩa là kết quả đã có sẵn mà không cần phải tính toán lại truy vấn mỗi khi truy cập vào chế độ xem.
Tuy nhiên, dữ liệu trong chế độ xem cụ thể hóa không phải lúc nào cũng được cập nhật mới nhất. Bạn phải cấu hình tần suất cập nhật để cân bằng giữa độ mới của dữ liệu và hiệu năng truy vấn.
Chế độ xem cụ thể hóa gặp phải những thách thức nào?
Vì các chế độ xem cụ thể hóa là một thành phần cơ sở dữ liệu khác cần xem xét, bạn sẽ gia tăng độ phức tạp về mặt bảo trì. Bạn phải cân bằng giữa lợi ích truy vấn và hiệu quả với chi phí lưu trữ tiềm ẩn và các vấn đề tính nhất quán của dữ liệu.
Bạn phải tạo các quy tắc hiệu quả kích hoạt các bản cập nhật để đảm bảo các chế độ xem cụ thể hóa của bạn tiếp tục mang lại lợi ích. Thường xuyên cập nhật các chế độ xem cụ thể hóa của bạn có thể ảnh hưởng đến hiệu năng của hệ thống, đặc biệt là khi bạn đang ở trong giai đoạn cao điểm. Ngoài ra, các chế độ xem cụ thể hóa cũng chiếm một lượng không gian đáng kể khi chúng sao chép dữ liệu. Nếu bạn có một cơ sở dữ liệu lớn liên tục cập nhật, nhu cầu lưu trữ của chế độ xem cụ thể hóa có thể sẽ rất lớn.
Nếu bạn định sử dụng chế độ xem cụ thể hóa, bạn cần đặt các quy tắc và lịch làm mới rõ ràng. Bạn cũng phải hiểu cách xử lý dữ liệu không nhất quán, lỗi làm mới và áp lực lưu trữ bổ sung.
AWS có thể hỗ trợ các yêu cầu về chế độ xem cụ thể hóa của bạn bằng cách nào?
Chế độ xem cụ thể hóa là một công cụ mạnh mẽ để cải thiện hiệu suất truy vấn trong Amazon Redshift.
Amazon Redshift liên tục giám sát khối lượng công việc bằng cách sử dụng máy học và tạo các chế độ xem cụ thể hóa mới khi chúng mang lại lợi ích. Tính năng Chế độ xem cụ thể hóa tự động (AutoMV) này trong Redshift cung cấp các lợi ích hiệu suất tương tự như chế độ xem cụ thể hóa do người dùng tạo.
Tính năng AutoMV có thể mang lại lợi ích cho bạn theo nhiều cách:
- Cân bằng chi phí tạo và giữ cho các chế độ xem cụ thể hóa được cập nhật so với các lợi ích mong đợi để truy vấn độ trễ
- Giám sát các AutoMV đã tạo trước đó và loại bỏ chúng khi không còn mang lại lợi ích
- Làm mới tự động và tăng dần, sử dụng các tiêu chí và hạn chế giống như các chế độ xem cụ thể hóa do người dùng tạo
Ngoài ra, các nhà phát triển không cần phải sửa đổi truy vấn để tận dụng lợi thế của AutoMV. Tính năng Ghi lại truy vấn tự động để sử dụng chế độ xem cụ thể hóa xác định các truy vấn có thể hưởng lợi từ AutoMV do hệ thống tạo. Tính năng này tự động ghi lại các truy vấn đó để sử dụng AutoMV, cải thiện hiệu quả truy vấn.
Bắt đầu sử dụng chế độ xem cụ thể hóa trên AWS bằng cách tạo tài khoản ngay hôm nay.