Lập chỉ mục Hive đã được giới thiệu trong Hive 0.7.0 (HIVE-417) và bị xóa trong Hive 3.0 (HIVE-18448). Vui lòng đọc nhận xét trong Jira này. Tính năng này hoàn toàn vô dụng trong Hive. Các chỉ mục này quá đắt đối với dữ liệu lớn, RIP.
Kể từ Hive 2.1.0 (HIVE-13290) Hive bao gồm hỗ trợ cho các ràng buộc khóa chính và khóa ngoài chưa được xác thực . Những ràng buộc này không được xác thực, một hệ thống ngược dòng cần đảm bảo tính toàn vẹn của dữ liệu trước khi nó được tải vào Hive. Những ràng buộc này rất hữu ích cho các công cụ tạo ra các sơ đồ và truy vấn ER. Ngoài ra, các ràng buộc không được xác thực như vậy cũng hữu ích như việc tự lập tài liệu. Bạn có thể dễ dàng tìm ra những gì được cho là PK nếu bảng có những ràng buộc như vậy.
Trong cơ sở dữ liệu Oracle Unique, các ràng buộc PK và FK được hỗ trợ bằng các chỉ mục, vì vậy chúng có thể hoạt động nhanh và thực sự hữu ích. Nhưng đây không phải là cách Hive hoạt động và nó được thiết kế để làm gì.
Tình huống khá bình thường là khi bạn tải tệp rất lớn với dữ liệu bán cấu trúc trong HDFS. Việc xây dựng một chỉ mục trên đó là quá đắt và nếu không có chỉ mục để kiểm tra vi phạm PK thì chỉ có thể quét tất cả dữ liệu. Và thông thường bạn không thể thực thi các ràng buộc trong BigData. Quy trình ngược dòng có thể quan tâm đến tính toàn vẹn và nhất quán của dữ liệu nhưng điều này không đảm bảo cuối cùng bạn sẽ không vi phạm PK trong Hive trong một số bảng lớn được tải từ các nguồn khác nhau.
Một số định dạng lưu trữ tệp như ORC có "chỉ mục" trọng lượng nhẹ bên trong để tăng tốc độ lọc và cho phép đẩy vị từ xuống (PPD), không có ràng buộc PK và FK nào được thực hiện bằng cách sử dụng các chỉ mục như vậy. Điều này không thể được thực hiện vì thông thường bạn có thể có nhiều tệp như vậy thuộc cùng một bảng trong Hive và các tệp thậm chí có thể có các lược đồ khác nhau. Hive được tạo cho petabyte và bạn có thể xử lý petabyte trong một lần chạy, dữ liệu có thể được bán cấu trúc, tệp có thể có các lược đồ khác nhau. Hadoop không hỗ trợ ghi ngẫu nhiên và điều này làm tăng thêm nhiều phức tạp và chi phí nếu bạn muốn xây dựng lại các chỉ mục.