Semi Join vs Bloom Join
Semi join și Bloom join sunt două metode de unire utilizate în procesarea interogărilor pentru baze de date distribuite. Când se procesează interogări în baze de date distribuite, datele trebuie transferate între bazele de date situate pe diferite site-uri. Aceasta ar putea fi o operațiune costisitoare, în funcție de cantitatea de date care trebuie transferată. Prin urmare, atunci când procesați interogări într-un mediu de baze de date distribuite, este important să optimizați interogările pentru a minimiza cantitatea de date transferate între site-uri. Semi join și bloom join sunt două metode care pot fi utilizate pentru a reduce cantitatea de transfer de date și pentru a efectua o procesare eficientă a interogărilor.
Ce este Semi Join?
Semi join este o metodă utilizată pentru procesarea eficientă a interogărilor într-o bază de date distribuită. Luați în considerare o situație în care o bază de date a angajaților (care deține informații, cum ar fi numele angajatului, numărul departamentului pentru care lucrează, etc), situată la site-ul 1 și o bază de date a departamentului (care deține informații, cum ar fi numărul departamentului, numele departamentului, locația etc.), situată la locul 2. De exemplu, dacă dorim să obținem numele angajaților și numele departamentului pentru care lucrează (doar din departamentele situate în „New York”), executând o interogare la un procesor de interogare situat la site-ul 3, există mai multe moduri în care datele ar putea fi transferate între cele trei site-uri pentru a realiza această sarcină. Dar atunci când transferați date, este important să rețineți că nu este necesar să transferați întreaga bază de date între site-uri. Doar unele dintre atributele (sau tuplurile) care sunt necesare pentru asociere trebuie transferate între site-uri pentru a executa interogarea în mod eficient. Semi join este o metodă care poate fi utilizată pentru a reduce cantitatea de date expediate între site-uri. În semi-îmbinare, doar coloana de îmbinare este transferată de la un site la altul și apoi acea coloană transferată este utilizată pentru a reduce dimensiunea relațiilor livrate între celelalte site-uri. Pentru exemplul de mai sus, puteți transfera numărul departamentului și numele departamentului tuplurilor cu locația =”New York” de la site-ul 2 la site-ul 1 și efectuați îmbinarea la site-ul 1 și transferați relația finală înapoi la site-ul 3.numai coloana de unire este transferată de la un site la altul și apoi acea coloană transferată este utilizată pentru a reduce dimensiunea relațiilor livrate între celelalte site-uri. Pentru exemplul de mai sus, puteți transfera numărul departamentului și numele departamentului tuplurilor cu locația =”New York” de la site-ul 2 la site-ul 1 și efectuați îmbinarea la site-ul 1 și transferați relația finală înapoi la site-ul 3.numai coloana de unire este transferată de la un site la altul și apoi acea coloană transferată este utilizată pentru a reduce dimensiunea relațiilor livrate între celelalte site-uri. Pentru exemplul de mai sus, puteți transfera numărul departamentului și numele departamentului tuplurilor cu locația =”New York” de la site-ul 2 la site-ul 1 și efectuați îmbinarea la site-ul 1 și transferați relația finală înapoi la site-ul 3.
Ce este Bloom Join?
După cum sa menționat mai devreme, bloom join este o altă metodă utilizată pentru a evita transferul de date inutile între site-uri atunci când se execută interogări într-o bază de date distribuită. În îmbinare înflorită, mai degrabă decât transferarea coloanei de îmbinare în sine, o reprezentare compactă a coloanei de îmbinare este transferată între site-uri. Bloom join folosește un filtru bloom care folosește un vector bit pentru a executa interogări de membru. În primul rând, un filtru de înflorire este construit folosind coloana de îmbinare și este transferat între site-uri și apoi sunt efectuate operațiunile de îmbinare.
Care este diferența dintre Semi Join și Bloom Join?
Chiar dacă atât metodele semi join, cât și bloom join sunt utilizate pentru a minimiza cantitatea de date transferate între site-uri la executarea interogărilor într-un mediu de baze de date distribuite, bloom join reduce cantitatea de date (numărul de tupluri) transferate comparativ cu semi join prin utilizarea conceptul de filtre de înflorire, care utilizează un vector de biți pentru a determina apartenența setată. Prin urmare, utilizarea bloom join va fi mai eficientă decât utilizarea semi join.