SAP HANA được thiết kế để vận hành trên một nền tảng hiện đại. Với các máy tính được trang bị CPU đa lõi các thông tin giao tiếp nhanh chóng giữa các lõi xử lý và bộ nhớ chính chứa hàng Terabyte. Với SAP HANA, tất cả dữ liệu sẵn có trong bộ nhớ chính, điều này giúp hoàn toàn tránh được các vi phạm về hiệu suất từ việc truy xuất từ đĩa cứng. Nhưng các thiết bị như đĩa cứng, hoặc các đĩa ở trạng thái rắn vẫn được yêu cầu cho việc đảm bảo duy trì dữ liệu lâu dài trong các trường hợp mất điện hay các thiên tai có thể xảy ra khác. Việc này không làm giảm hiệu xuất hoạt động của quá trình xử lý. Tuy nhiên, hoạt động sao lưu cần thiết có thể diễn ra không đồng bộ như một công việc nền. Trong DBMS truyền thống tồn tại một vấn đề làm chậm hiệu xuất hoạt động đó là khóa dữ liệu (locking data) khi quá trình cập nhật dữ liệu đang thực hiện. Trong SAP HANA, Database đã tránh được vấn đề này và cho phép xử lý song song bằng cách sử dụng các record chỉ đọc (read-only). Thay vì tạo ra một record mới thì chèn một chỉ số (delta) như một đối tượng mới trong record hiện có được lưu trữ theo cột. Một nền tản tốt không chỉ tối ưu các xử lý trong các hoạt động truy xuất dữ liệu mà còn phụ thuộc khá nhiều vào kỹ thuật lưu trữ. Kỹ thuật lưu trữ thể hiện cách tổ chức lưu trữ và nén dữ liệu như thế nào là tốt nhất. Và điều này trong SAP HANA In-Memory Database như là trung tâm các dịch vụ của SAP giúp cho các khách hàng có thể cải thiện được hiệu quả hoạt động, nhanh chóng và linh hoạt hơn.
SAP HANA In-memory database
Columnar Data Storage
Một cơ sở dữ liệu bảng là một khái niệm dữ liệu cấu trúc hai chiều được tổ chức theo dòng và cột. Nhưng trong bộ nhớ máy tính, nó được tổ chức theo cấu trúc tuyến tính. Một bảng có thể được thể hiện thứ tự theo dòng hay cột. Với lưu trữ theo dòng, các thông tin của một record được lưu trữ cùng nhau. Đối với lưu trữ theo cột, các thuộc tính của một record được lưu trữ cùng nhau. Và SAP HANA hỗ trợ cả hai kiểu lưu trữ nhưng lưu trữ theo cột được đánh giá tối ưu hơn.
Ví dụ: Bảng dữ liệu:
Contry |
Product | Sales |
Vietnam |
Product A | 3500 |
Vietnam | Product B |
2000 |
China |
Product A | 7000 |
Australia |
Product A | 3700 |
Lưu trữ theo cột (Row store)
ROW 1 |
Vietnam Product A 3500 |
ROW 2 |
Vietnam Product B 2000 |
ROW 3 |
China Product A 7000 |
ROW 4 |
Australia Product A 3700 |
Lưu trữ theo cột Lưu trữ theo dòng (Column store)
Country |
Vietnam Vietnam China Australia |
Product |
Product A Product B Poduct A Product A |
Sales |
3500 2000 7000 3700 |
Lưu trữ dữ liệu dạng cột cho phép dữ liệu lưu trữ được nén hiệu quả cao hơn. Vì các dữ liệu có cùng độ dài và cùng kiểu dữ liệu được lưu trữ cùng nhau nên quá trình nén được thực hiện tối ưu hơn. Đồng thời trong quá trình duyệt dữ liệu với các dữ liệu có cùng kiểu dữ liệu lưu trữ liền kề nhau nên quá trình này được diễn ra nhanh hơn và chính xác hơn.
Parallel Processing
Xử lý song song
SAP HANA được thiết kế để thực hiện các tính toán cơ bản như phân tích, duyệt và tổng hợp dữ liệu một cách song song. Nó thường làm việc với tình trạng sử dụng hàng trăm nhân cùng lúc và tận dụng đầy đủ các nguồn lực trong hệ thống. Lưu trữ cột cho phép thực thi các hoạt động một cách song song bằng việc sử dụng xử lý đa nhân. Trong hình thức lưu trữ này thì dữ liệu đã được phân vùng theo chiều dọc. Điều này có nghĩa là với các thao tác trên các cột khác nhau có thể dễ dàng được xử lý song song với nhau. Nếu nhiều cột cần được thực hiện tìm kiếm hoặc tổng hợp thì mỗi thao tác có thể được chỉ định cho một nhân xử lý khác nhau. Thêm vào đó, các hoạt động trên cùng một cột có thể được xử lý song song bằng cách chia cột đó ra thành nhiều vùng khác nhau và chỉ định cho các nhân xử lý khác nhau cho mỗi vùng được chia.