ความแตกต่างระหว่าง Semi Join และ Bloom เข้าร่วม

Anonim

กึ่งเข้าร่วมกับบลูมเข้าร่วม

การเข้าร่วมแบบกึ่งเข้าร่วมและการเข้าร่วม Bloom เป็นการเข้าร่วมสองวิธีที่ใช้ในการประมวลผลแบบสอบถามสำหรับฐานข้อมูลแบบกระจาย เมื่อประมวลผลข้อความค้นหาในฐานข้อมูลแบบกระจายข้อมูลจะต้องถ่ายโอนระหว่างฐานข้อมูลต่างๆในเว็บไซต์ต่างๆ นี่อาจเป็นการดำเนินการที่มีราคาแพงขึ้นอยู่กับจำนวนข้อมูลที่ต้องโอน ดังนั้นเมื่อประมวลผลข้อความค้นหาในสภาพแวดล้อมของฐานข้อมูลแบบกระจายเป็นสิ่งสำคัญเพื่อเพิ่มประสิทธิภาพการสืบค้นเพื่อลดปริมาณข้อมูลที่ถ่ายโอนระหว่างไซต์ การเข้าร่วมและการรวมเข้าด้วยกันเป็นสองวิธีคือสามารถใช้เพื่อลดปริมาณการถ่ายโอนข้อมูลและประมวลผลข้อความได้อย่างมีประสิทธิภาพ

การเข้าร่วมแบบ Semi คืออะไร?

Semi join คือวิธีการที่ใช้สำหรับการประมวลผลข้อความค้นหาที่มีประสิทธิภาพในสภาพแวดล้อมฐานข้อมูลแบบกระจาย พิจารณาสถานการณ์ที่ฐานข้อมูลพนักงาน (การถือครองข้อมูลเช่นชื่อพนักงานหมายเลขแผนกที่เธอทำงานเป็นต้น) ที่ตั้งอยู่ที่ไซต์ 1 และฐานข้อมูลของแผนก (ข้อมูลการถือครองเช่นหมายเลขแผนกชื่อแผนกสถานที่ ฯลฯ) ที่อยู่ในไซต์ 2. ตัวอย่างเช่นถ้าเราต้องการได้ชื่อพนักงานและชื่อแผนกที่เธอทำงาน (เฉพาะแผนกที่ตั้งอยู่ใน "New York") โดยการรันคำค้นหาที่โปรเซสเซอร์ Query ที่อยู่ในไซต์ 3 มีหลายวิธีที่ ข้อมูลอาจถูกถ่ายโอนระหว่างสามไซต์เพื่อให้บรรลุภารกิจนี้ แต่เมื่อถ่ายโอนข้อมูลเป็นสิ่งสำคัญที่จะต้องทราบว่าไม่จำเป็นต้องถ่ายโอนฐานข้อมูลทั้งหมดระหว่างไซต์ จำเป็นต้องมีการถ่ายโอนเฉพาะแอตทริบิวต์ (หรือ tuples) บางอย่างที่จำเป็นสำหรับการเข้าร่วมระหว่างไซต์ต่างๆเพื่อดำเนินการแบบสอบถามได้อย่างมีประสิทธิภาพ Semi join คือวิธีการที่สามารถใช้เพื่อลดปริมาณข้อมูลที่จัดส่งระหว่างเว็บไซต์ได้ ในกึ่งเชื่อมเพียงคอลัมน์เข้าร่วมจะถูกโอนจากไซต์หนึ่งไปยังอีกที่หนึ่งและจากนั้นคอลัมน์ที่ถ่ายโอนจะใช้เพื่อลดขนาดความสัมพันธ์ที่จัดส่งระหว่างไซต์อื่น ๆ สำหรับตัวอย่างข้างต้นคุณสามารถถ่ายโอนหมายเลขแผนกและชื่อแผนกของ tuples ด้วยตำแหน่ง = "New York" จากไซต์ 2 ไปที่ไซต์ 1 และดำเนินการเข้าร่วมที่ไซต์ 1 และโอนความสัมพันธ์ขั้นสุดท้ายกลับมายังไซต์ 3.

การเข้าร่วม Bloom คืออะไร?

ตามที่ระบุไว้ก่อนหน้านี้ bloom join เป็นอีกวิธีหนึ่งที่ใช้เพื่อหลีกเลี่ยงการถ่ายโอนข้อมูลที่ไม่จำเป็นระหว่างไซต์ต่างๆเมื่อรันคำสั่งในสภาพแวดล้อมของฐานข้อมูลแบบกระจาย ในบานเข้าร่วมมากกว่าการถ่ายโอนคอลัมน์เข้าร่วมตัวเล็กแทนคอลัมน์เข้าร่วมจะถูกโอนระหว่างเว็บไซต์ การรวมกันของ Bloom จะใช้ตัวกรองบานซึ่งใช้เวกเตอร์บิตเพื่อเรียกใช้การสืบค้นสมาชิก ประการแรกตัวกรองบานถูกสร้างขึ้นโดยใช้คอลัมน์การรวมและจะถูกถ่ายโอนระหว่างไซต์และจากนั้นจะดำเนินการเข้าร่วม

อะไรคือข้อแตกต่างระหว่าง Semi Join และ Bloom เข้าร่วม?

แม้ว่าจะมีการใช้วิธีการรวมกึ่งเข้าร่วมและ bloom join เพื่อลดปริมาณข้อมูลที่ถ่ายโอนระหว่างไซต์ต่างๆในขณะที่รันคำสั่งในสภาพแวดล้อมของฐานข้อมูลแบบกระจายการผสานการเบิกบานช่วยลดปริมาณข้อมูล (จำนวน tuples) ที่โอนไปเมื่อเทียบกับ semi join โดยใช้แนวคิดของตัวกรองบานซึ่งใช้เวกเตอร์บิตเพื่อกำหนดสมาชิกชุด ดังนั้นการใช้ bloom join จะมีประสิทธิภาพมากกว่าการใช้ semi join