Semi Join vs Bloom Join
Semi join e Bloom join são dois métodos de junção usados no processamento de consultas para bancos de dados distribuídos. Ao processar consultas em bancos de dados distribuídos, os dados precisam ser transferidos entre bancos de dados localizados em sites diferentes. Essa pode ser uma operação cara, dependendo da quantidade de dados que precisa ser transferida. Portanto, ao processar consultas em um ambiente de banco de dados distribuído, é importante otimizar as consultas para minimizar a quantidade de dados transferidos entre sites. Semi join e bloom join são dois métodos que podem ser usados para reduzir a quantidade de transferência de dados e executar um processamento de consulta eficiente.
O que é Semi Join?
Semi join é um método usado para processamento de consulta eficiente em ambientes de banco de dados distribuídos. Considere uma situação em que um banco de dados de funcionários (contendo informações como o nome do funcionário, número do departamento para o qual ela trabalha, etc) localizado no site 1 e um banco de dados de departamento (contendo informações como número do departamento, nome do departamento, localização, etc) localizado no site 2. Por exemplo, se quisermos obter o nome do funcionário e o nome do departamento para o qual ela está trabalhando (apenas dos departamentos localizados em "Nova York"), executando uma consulta em um processador de consulta localizado no site 3, existem várias maneiras de os dados podem ser transferidos entre os três locais para realizar essa tarefa. Porém, ao transferir dados, é importante observar que não é necessário transferir toda a base de dados entre os sites. Apenas alguns dos atributos (ou tuplas) necessários para a junção precisam ser transferidos entre os sites para executar a consulta com eficiência. Semi join é um método que pode ser usado para reduzir a quantidade de dados enviados entre os sites. Na semi join, apenas a coluna de junção é transferida de um site para outro e, em seguida, essa coluna transferida é usada para reduzir o tamanho das relações enviadas entre os outros sites. Para o exemplo acima, você pode simplesmente transferir o número do departamento e o nome do departamento das tuplas com localização =”New York” do site 2 para o site 1 e realizar a junção no site 1 e transferir a relação final de volta para o site 3.apenas a coluna de junção é transferida de um site para o outro e, em seguida, essa coluna transferida é usada para reduzir o tamanho das relações enviadas entre os outros sites. Para o exemplo acima, você pode simplesmente transferir o número do departamento e o nome do departamento das tuplas com localização =”New York” do site 2 para o site 1 e realizar a junção no site 1 e transferir a relação final de volta para o site 3.apenas a coluna de junção é transferida de um site para o outro e, em seguida, essa coluna transferida é usada para reduzir o tamanho das relações enviadas entre os outros sites. Para o exemplo acima, você pode simplesmente transferir o número do departamento e o nome do departamento das tuplas com localização =”New York” do site 2 para o site 1 e realizar a junção no site 1 e transferir a relação final de volta para o site 3.
O que é o Bloom Join?
Conforme mencionado anteriormente, o bloom join é outro método usado para evitar a transferência de dados desnecessários entre sites ao executar consultas em ambientes de banco de dados distribuídos. No bloom join, em vez de transferir a própria coluna de junção, uma representação compacta da coluna de junção é transferida entre os sites. O Bloom join usa um filtro bloom que emprega um vetor de bits para executar consultas de associação. Primeiramente, um filtro bloom é construído usando a coluna de junção e é transferido entre os sites e então as operações de junção são realizadas.
Qual é a diferença entre Semi Join e Bloom Join?
Mesmo que os métodos semi join e bloom join sejam usados para minimizar a quantidade de dados transferidos entre os sites ao executar consultas em um ambiente de banco de dados distribuído, o bloom join reduz a quantidade de dados (número de tuplas) transferidos em comparação com semi join usando o conceito de filtros bloom, que empregam um vetor de bits para determinar associações de conjuntos. Portanto, usar o bloom join será mais eficiente do que o semi join.