Semi Join vs Bloom Join
Semi join e Bloom join sono due metodi di unione utilizzati nell'elaborazione delle query per i database distribuiti. Quando si elaborano query in database distribuiti, i dati devono essere trasferiti tra database situati in siti diversi. Questa potrebbe essere un'operazione costosa a seconda della quantità di dati che deve essere trasferita. Pertanto, quando si elaborano query in un ambiente di database distribuito, è importante ottimizzare le query per ridurre al minimo la quantità di dati trasferiti tra i siti. Semi join e bloom join sono due metodi che possono essere utilizzati per ridurre la quantità di trasferimento di dati ed eseguire un'elaborazione efficiente delle query.
Cos'è il Semi Join?
Semi join è un metodo utilizzato per l'elaborazione efficiente delle query in ambienti di database distribuiti. Considera una situazione in cui un database dei dipendenti (che contiene informazioni come il nome del dipendente, il numero del dipartimento per cui lavora, ecc.) situato nel sito 1 e un database del dipartimento (che contiene informazioni come il numero del dipartimento, il nome del dipartimento, l'ubicazione, ecc.) 2. Ad esempio, se vogliamo ottenere il nome del dipendente e il nome del dipartimento per cui lavora (solo dei dipartimenti situati a "New York"), eseguendo una query in un elaboratore di query situato nel sito 3, esistono diversi modi per i dati potrebbero essere trasferiti tra i tre siti per svolgere questo compito. Ma durante il trasferimento dei dati, è importante notare che non è necessario trasferire l'intero database tra i siti. Solo alcuni degli attributi (o tuple) richiesti per il join devono essere trasferiti tra i siti per eseguire la query in modo efficiente. Il semi join è un metodo che può essere utilizzato per ridurre la quantità di dati spediti tra i siti. In semi join, solo la colonna di join viene trasferita da un sito all' altro e quindi quella colonna trasferita viene utilizzata per ridurre le dimensioni delle relazioni spedite tra gli altri siti. Per l'esempio sopra, puoi semplicemente trasferire il numero del dipartimento e il nome del dipartimento delle tuple con location=”New York” dal sito 2 al sito 1 ed eseguire l'unione al sito 1 e trasferire la relazione finale al sito 3.
Cos'è Bloom Join?
Come accennato in precedenza, bloom join è un altro metodo utilizzato per evitare il trasferimento di dati non necessari tra siti durante l'esecuzione di query in ambienti di database distribuiti. In bloom join, invece di trasferire la colonna di join stessa, viene trasferita tra i siti una rappresentazione compatta della colonna di join. Bloom join utilizza un filtro bloom che utilizza un vettore di bit per eseguire query di appartenenza. In primo luogo, viene costruito un filtro bloom utilizzando la colonna di giunzione e viene trasferito tra i siti e quindi vengono eseguite le operazioni di giunzione.
Qual è la differenza tra Semi Join e Bloom Join?
Anche se entrambi i metodi semi join e bloom join vengono utilizzati per ridurre al minimo la quantità di dati trasferiti tra i siti durante l'esecuzione di query in un ambiente di database distribuito, bloom join riduce la quantità di dati (numero di tuple) trasferiti rispetto a semi join utilizzando il concetto di filtri bloom, che utilizzano un bit vettoriale per determinare le appartenenze agli insiemi. Pertanto l'utilizzo di bloom join sarà più efficiente rispetto all'utilizzo di semi join.