Tăng tốc truy vấn bằng Materialized View - Apache Doris
Tăng tốc truy vấn bằng Materialized View - Apache Doris
Giới thiệu
Materialized view là 1 data set được tính toán sẵn ( dựa vào câu SELECT ) và được lưu trữ trong 1 bảng đặc biệt trong Doris
Khi nào nên sử dụng Materialized view:
- Phục vụ cho các câu Detailed Data Query (1) và Fixed-Dimensional Query (2)
- Truy vấn chỉ liên quan đến một phần nhỏ các cột hoặc hàng trong bảng.
- Truy vấn chứa một số thao tác xử lý tốn nhiều thời gian, chẳng hạn như các thao tác aggregate trong thời gian dài.
- Truy vấn cần khớp với các prefix index khác nhau ( Duplicate Model ).
(2) Fixed-Dimensional Query: ngược lại với Detailed Data Query, các câu query dạng này tập trung vào pre-aggregation các chiều (column) cụ thể, cho phép thời gian phân tích và truy vấn nhanh hơn đối với các chiều (column) đó.
Hạn chế
- Nếu cột điều kiện của câu DELETE ( ví dụ DELETE FROM abc WHERE [cột điều kiện] = xyz ) không tồn tại trong Materialized view thì thao tác delete không thể được thực hiện. Nếu bạn phải xóa dữ liệu, bạn cần xóa Materialized view trước khi xóa dữ liệu.
- Quá nhiều Materialized view trên một bảng sẽ ảnh hưởng đến hiệu quả write: khi write data, Materialized view và data của bảng chính được cập nhật đồng bộ. Nếu một bảng có hơn 10 Materialized view thì tốc độ write có thể chậm. Điều này giống như khi một lần write cần write 10 bảng cùng lúc.
- Đối với Unique Key Model, Materialized view chỉ có thể thay đổi thứ tự của các cột và không thể thực hiện aggregate.
- Hiện tại, hành vi write lại của một số optimizer sang SQL có thể khiến Materialized view gặp lỗi. Ví dụ: k1+1-1 được viết lại thành k1, giữa được viết lại thành <= và >= và ngày được viết lại thành dayofmonth. Trong trường hợp này, bạn cần điều chỉnh thủ công các câu query và Materialized view.
Comments
Post a Comment