Teradata - Thuật toán băm
Một hàng được gán cho một AMP cụ thể dựa trên giá trị chỉ mục chính. Teradata sử dụng thuật toán băm để xác định AMP lấy hàng.
Sau đây là sơ đồ mức cao về thuật toán băm.
Sau đây là các bước để chèn dữ liệu.
Khách hàng gửi một truy vấn.
Bộ phân tích cú pháp nhận truy vấn và chuyển giá trị PI của bản ghi cho thuật toán băm.
Thuật toán băm băm giá trị chỉ mục chính và trả về một số 32 bit, được gọi là Row Hash.
Các bit bậc cao hơn của băm hàng (16 bit đầu tiên) được sử dụng để xác định mục nhập bản đồ băm. Bản đồ băm chứa một AMP #. Bản đồ băm là một mảng các nhóm chứa AMP # cụ thể.
BYNET gửi dữ liệu đến AMP đã xác định.
AMP sử dụng băm Hàng 32 bit để định vị hàng trong đĩa của nó.
Nếu có bất kỳ bản ghi nào có cùng một băm hàng, thì nó sẽ tăng ID duy nhất là một số 32 bit. Đối với băm hàng mới, ID duy nhất được gán là 1 và tăng lên bất cứ khi nào bản ghi có cùng băm hàng được chèn.
Sự kết hợp của băm hàng và ID duy nhất được gọi là ID hàng.
Hàng ID đặt trước mỗi bản ghi trong đĩa.
Mỗi hàng trong bảng trong AMP được sắp xếp hợp lý theo ID hàng của chúng.
Cách các bảng được lưu trữ
Các bảng được sắp xếp theo ID hàng (băm hàng + id duy nhất) và sau đó được lưu trữ trong AMP. ID hàng được lưu trữ với mỗi hàng dữ liệu.
Hàng băm | ID tính duy nhất | Nhân viên Không | Tên đầu tiên | LastName |
---|---|---|---|---|
2A01 2611 | 0000 0001 | 101 | Mike | James |
2A01 2612 | 0000 0001 | 104 | Alex | Stuart |
2A01 2613 | 0000 0001 | 102 | Robert | Williams |
2A01 2614 | 0000 0001 | 105 | Robert | James |
2A01 2615 | 0000 0001 | 103 | Peter | Paul |