Semi Join vs Bloom Join
Semi join ja Bloom join on kaks liitmismeetodit, mida kasutatakse hajutatud andmebaaside päringute töötlemisel. Päringute töötlemisel hajutatud andmebaasides tuleb andmeid üle kanda erinevates kohtades asuvate andmebaaside vahel. See võib olla kulukas toiming, olenev alt edastatavate andmete hulgast. Seetõttu on päringute töötlemisel hajutatud andmebaasikeskkonnas oluline päringuid optimeerida, et minimeerida saitide vahel edastatavate andmete hulka. Semi join ja bloom join on kaks meetodit, mida saab kasutada andmeedastuse vähendamiseks ja tõhusaks päringute töötlemiseks.
Mis on poolliitumine?
Poolliitmine on meetod, mida kasutatakse tõhusaks päringute töötlemiseks hajutatud andmebaasikeskkondades. Mõelge olukorrale, kus 1. kohas asuv töötajate andmebaas (sisaldab teavet, nagu töötaja nimi, osakonna number, kus ta töötab jne) ja kohapeal asuv osakonna andmebaas (sisaldab teavet, nagu osakonna number, osakonna nimi, asukoht jne). 2. Näiteks kui soovime saada töötaja nime ja osakonna nime, mille heaks ta töötab (ainult New Yorgis asuvate osakondade puhul), on 3. kohas asuvas päringuprotsessoris päringu sooritamisel mitu võimalust Selle ülesande täitmiseks saaks andmeid kolme saidi vahel üle kanda. Kuid andmete edastamisel on oluline märkida, et kogu andmebaasi ei ole vaja saitide vahel üle kanda. Päringu tõhusaks täitmiseks tuleb saitide vahel üle kanda ainult mõned atribuudid (või korteežid), mis on liitumiseks vajalikud. Poolliitumine on meetod, mida saab kasutada saitide vahel edastatavate andmete hulga vähendamiseks. Poolliitmise puhul kantakse ühest saidist teise üle ainult liiteveerg ja seejärel kasutatakse seda ülekantud veergu teiste saitide vaheliste saadetud suhete suuruse vähendamiseks. Ül altoodud näite puhul saate lihts alt teisaldada osakonna numbri ja osakonna nimega korteeži asukoha=”New York” saidilt 2 saidile 1 ning teostada liitumise saidil 1 ja viia lõplik seos tagasi saidile 3.
Mis on Bloom Join?
Nagu varem mainitud, on bloom join veel üks meetod, mida kasutatakse hajutatud andmebaasikeskkondades päringute täitmisel tarbetute andmete ülekandmise vältimiseks saitide vahel. Bloom join puhul kantakse ühendussamba enda ülekandmise asemel üle ühendussamba kompaktne esitus saitide vahel. Bloomi liitumine kasutab õitsengufiltrit, mis kasutab liikmepäringute täitmiseks bitivektorit. Esiteks ehitatakse ühenduskolonni abil õitsengufilter ja see kantakse objektide vahel üle ning seejärel teostatakse liitmistoimingud.
Mis vahe on Semi Joinil ja Bloom Joinil?
Kuigi hajutatud andmebaasikeskkonnas päringute täitmisel saitide vahel edastatavate andmete hulga minimeerimiseks kasutatakse nii poolliitmise kui ka bloom-liitumise meetodeid, vähendab bloom join edastatavate andmete hulka (korteežide arvu) võrreldes poolliitu, kasutades õitsemisfiltrite kontseptsiooni, mis kasutavad komplekti kuuluvuse määramiseks bitivektorit. Seetõttu on Bloom Join kasutamine tõhusam kui poolliitmine.