Semi Join срещу Bloom Join
Semi join и Bloom join са два метода за присъединяване, използвани при обработката на заявки за разпределени бази данни. При обработка на заявки в разпределени бази данни, данните трябва да бъдат прехвърлени между бази данни, разположени в различни сайтове. Това може да бъде скъпа операция в зависимост от количеството данни, което трябва да бъде прехвърлено. Ето защо, когато обработвате заявки в среда на разпределена база данни, е важно да оптимизирате заявките, за да сведете до минимум количеството на данни, прехвърлени между сайтовете. Полусъединението и присъединяването към цъфтеж са два метода, които могат да се използват за намаляване на обема на прехвърляне на данни и извършване на ефективна обработка на заявки.
Какво е Semi Join?
Semi join е метод, използван за ефективна обработка на заявки в среда на разпределена база данни. Помислете за ситуация, в която база данни на служители (съдържаща информация като име на служител, номер на отдела, за която работи и т.н.), разположена на място 1 и база данни на отдела (съдържаща информация като номер на отдел, име на отдела, местоположение и т.н.), разположена на сайта 2. Например, ако искаме да получим името на служителя и името на отдела, за който тя работи (само на отделите, разположени в „Ню Йорк“), чрез извършване на заявка в процесор на заявки, разположен на сайт 3, има няколко начина, по които данни могат да бъдат прехвърлени между трите сайта за постигане на тази задача. Но при прехвърляне на данни е важно да се отбележи, че не е необходимо да се прехвърля цялата база данни между сайтовете. Само някои от атрибутите (или кортежите), които са необходими за присъединяването, трябва да бъдат прехвърлени между сайтовете, за да изпълнят заявката ефективно. Полусъединението е метод, който може да се използва за намаляване на количеството данни, изпращани между сайтовете. При полусъединяване само колоната за присъединяване се прехвърля от един сайт към другия и след това тази прехвърлена колона се използва за намаляване на размера на изпратените отношения между другите сайтове. За горния пример можете просто да прехвърлите номера на отдела и името на отдела на кортежи с местоположение = „Ню Йорк“ от сайт 2 към сайт 1 и да извършите присъединяването в сайт 1 и да прехвърлите окончателното отношение обратно към сайт 3.
Какво е Bloom Join?
Както бе споменато по-рано, bloom join е друг метод, използван за избягване на прехвърляне на ненужни данни между сайтове при изпълнение на заявки в среда на разпределена база данни. В разцвет присъединяване, а не прехвърляне на самата колона за присъединяване, компактно представяне на колоната за присъединяване се прехвърля между сайтовете. Bloom join използва филтър за цъфтеж, който използва малко вектор за изпълнение на заявки за членство. Първо се изгражда цъфтящ филтър с помощта на колоната за присъединяване и той се прехвърля между сайтовете и след това се извършват операциите за присъединяване.
Каква е разликата между Semi Join и Bloom Join?
Въпреки че и двата метода за присъединяване на полуприсъединяване и цъфтеж се използват за намаляване на количеството данни, прехвърлени между сайтовете при изпълнение на заявки в среда на разпределена база данни, bloom join намалява количеството данни (брой кортежи), прехвърлени в сравнение с полуприсъединяването чрез използване на концепция на филтри за цъфтеж, които използват малко вектор за определяне на набор членове. Следователно използването на bloom join ще бъде по-ефективно, отколкото използването на semi join.