Teradata - อัลกอริทึมการแฮช

แถวถูกกำหนดให้กับ AMP หนึ่ง ๆ ตามค่าดัชนีหลัก Teradata ใช้อัลกอริทึมการแฮชเพื่อกำหนดว่า AMP ใดรับแถวนั้น

ต่อไปนี้เป็นแผนภาพระดับสูงเกี่ยวกับอัลกอริทึมการแฮช

ต่อไปนี้เป็นขั้นตอนในการแทรกข้อมูล

  • ลูกค้าส่งคำถาม

  • ตัวแยกวิเคราะห์รับแบบสอบถามและส่งผ่านค่า PI ของเรกคอร์ดไปยังอัลกอริทึมการแฮช

  • อัลกอริทึมการแฮชแฮชค่าดัชนีหลักและส่งกลับตัวเลข 32 บิตเรียกว่า Row Hash

  • บิตลำดับที่สูงกว่าของแฮชแถว (16 บิตแรก) ถูกใช้เพื่อระบุรายการแม็พแฮช แฮชแมปมีหนึ่ง AMP # Hash map คืออาร์เรย์ของที่เก็บข้อมูลซึ่งมี AMP # ที่เฉพาะเจาะจง

  • BYNET ส่งข้อมูลไปยัง AMP ที่ระบุ

  • AMP ใช้แฮช Row 32 บิตเพื่อค้นหาแถวภายในดิสก์

  • หากมีเร็กคอร์ดใด ๆ ที่มีแฮชแถวเดียวกันก็จะเพิ่มรหัสเฉพาะซึ่งเป็นตัวเลข 32 บิต สำหรับแฮชแถวใหม่ ID เฉพาะจะถูกกำหนดเป็น 1 และจะเพิ่มขึ้นเมื่อใดก็ตามที่มีการแทรกเร็กคอร์ดที่มีแฮชแถวเดียวกัน

  • การรวมกันของ Row hash และ Uniqueness ID เรียกว่า Row ID

  • Row ID นำหน้าแต่ละระเบียนในดิสก์

  • แต่ละแถวของตารางใน AMP จะเรียงลำดับตามเหตุผลตามรหัสแถว

วิธีจัดเก็บตาราง

ตารางจะเรียงลำดับตามรหัสแถว (แฮชแถว + รหัสเฉพาะ) แล้วจัดเก็บไว้ใน AMP รหัสแถวจะถูกเก็บไว้กับแถวข้อมูลแต่ละแถว

แถวแฮช รหัสเอกลักษณ์ พนักงาน ชื่อจริง นามสกุล
2A01 2611 0000 0001 101 ไมค์ เจมส์
2A01 2612 0000 0001 104 อเล็กซ์ สจวร์ต
2A01 2613 0000 0001 102 โรเบิร์ต วิลเลียมส์
2A01 2614 0000 0001 105 โรเบิร์ต เจมส์
2A01 2615 0000 0001 103 ปีเตอร์ พอล