algoritmos de junção estrela em...
TRANSCRIPT
![Page 1: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/1.jpg)
1
Algoritmos de Junção Estrela em MapReduce
Jaqueline Joice Brito
09 de junho de 2015
![Page 2: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/2.jpg)
2
Modelo Relacional
• Dados armazenados em um conjunto de tabelas
• Amplamente utilizado
• Junção – Recuperação de dados de duas ou mais tabelas
baseada em relações lógicas
– Operação custosa
SELECT nome, cargo FROM Cliente C, Profissao P WHERE C.cod_profissao = P.cod_profissao
![Page 3: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/3.jpg)
3
Processamento Distribuído
• Otimização
– Minimização da comunicação entre os nós
![Page 4: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/4.jpg)
4
HDFS - Hadoop Distributed File System
DataNode 1 DataNode 2 DataNode 3 DataNode 4
NameNode
![Page 5: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/5.jpg)
5
DataNode 1 DataNode 2 DataNode 3 DataNode 4
NameNode
HDFS - Hadoop Distributed File System
![Page 6: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/6.jpg)
6
DataNode 1 DataNode 2 DataNode 3 DataNode 4
NameNode
Metadados
Cada bloco possui 3 réplicas distribuídas entre os DataNodes
HDFS - Hadoop Distributed File System
![Page 7: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/7.jpg)
7
casa rio boneca rio dado casa
dado boneca dado casa
boneca rio rio casa boneca
dado
MapReduce
![Page 8: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/8.jpg)
8
casa rio boneca rio dado casa dado boneca
dado casa dado rio rio casa rio
dado
casa rio boneca rio
dado casa dado boneca
dado casa dado rio
rio casa rio dado
MapReduce
![Page 9: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/9.jpg)
9
casa rio boneca rio
dado casa dado boneca
dado casa dado rio
rio casa rio dado
casa,1 rio, 1
boneca, 1 rio,1
dado,1 casa, 1 dado, 1
boneca, 1
dado,1 casa, 1 dado, 1
rio, 1
rio,1 casa, 1 rio, 1
dado, 1
casa rio boneca rio dado casa dado boneca
dado casa dado rio rio casa rio
dado
chave valor
MapReduce
![Page 10: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/10.jpg)
10
casa rio boneca rio
dado casa dado boneca
dado casa dado rio
rio casa rio dado
casa,1 rio, 1
boneca, 1 rio,1
dado,1 casa, 1 dado, 1
boneca, 1
dado,1 casa, 1 dado, 1
rio, 1
rio,1 casa, 1 rio, 1
dado, 1
boneca, 1 boneca, 1
casa,1 casa, 1 casa, 1 casa, 1
dado, 1 dado, 1 dado, 1 dado, 1 dado, 1
rio, 1 rio, 1 rio, 1 rio, 1 rio, 1
casa rio boneca rio dado casa dado boneca
dado casa dado rio rio casa rio
dado
chave valor
MapReduce
![Page 11: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/11.jpg)
11
casa rio boneca rio
dado casa dado boneca
dado casa dado rio
rio casa rio dado
casa,1 rio, 1
boneca, 1 rio,1
dado,1 casa, 1 dado, 1
boneca, 1
dado,1 casa, 1 dado, 1
rio, 1
rio,1 casa, 1 rio, 1
dado, 1
boneca, 1 boneca, 1
casa,1 casa, 1 casa, 1 casa, 1
dado, 1 dado, 1 dado, 1 dado, 1 dado, 1
rio, 1 rio, 1 rio, 1 rio, 1 rio, 1
boneca, 2 casa, 4 dado, 5
rio, 5
casa rio boneca rio dado casa dado boneca
dado casa dado rio rio casa rio
dado
MapReduce
![Page 12: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/12.jpg)
12
Modelo MapReduce
• Otimização
– Redução da comunicação (fase de shuffling)
– Minimização do número de jobs MapReduce
... Mappers
... Reducers
Shuffling
![Page 13: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/13.jpg)
13
Junção em MapReduce
• Map-side Join
– Junção na função Map
• Reduce-side Join
– Junção na função Reduce
![Page 14: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/14.jpg)
14
Map-side Join
• Junção é realizada na função Map
s c a
1 5 8
2 6 7
3 6 4
4 4 7
t c b
5 6 4
7 4 2
8 4 1
10 5 4
S T
SELECT a, b FROM S, T WHERE S.c = T.c
![Page 15: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/15.jpg)
15
Map-side Join
• Junção é realizada na função Map
s c a
1 5 8
2 6 7
3 6 4
4 4 7
t c b
5 6 4
7 4 2
8 4 1
10 5 4
S T
SELECT a, b FROM S, T WHERE S.c = T.c
s c a
4 4 7
1 5 8
t c b
7 4 2
8 4 1
10 5 4
S1
T1
s c a
2 6 7
3 6 4
S2
t c b
5 6 4
T2
![Page 16: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/16.jpg)
16
Map-side Join
s c a
4 4 7
1 5 8
t c b
7 4 2
8 4 1
10 5 4
S1
T1
s c a
2 6 7
3 6 4
S2
t c b
5 6 4
Mapper 1
Mapper 2
T2
• Dados são particionados e ordenados pela chave de junção (atributo c)
• Blocos correspondentes de cada arquivo são processados por uma única tarefa Mapper
• A função Map é aplicada sobre um dos blocos (ex: S1), enquanto o outro bloco correspondente (ex: T1) é lido dentro da tarefa Mapper
• Cada Mapper possui os dados necessários para realizar a junção de seus blocos
![Page 17: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/17.jpg)
17
Map-side Join
s c a
4 4 7
1 5 8
t c b
7 4 2
8 4 1
10 5 4
5 6 4
S1
T
s c a
2 6 7
3 6 4
S2
Mapper 1
Mapper 2
• Tabela menor (ex: tabela T) é armazenada na memória primária local de cada nó
• Blocos da tabela maior (ex: S) são processados nos diferentes mappers
• Cada mappers tem acesso a todos os dados da tabela menor (ex: tabela T)
Memory-backed Join
t c b
7 4 2
8 4 1
10 5 4
5 6 4
T
Dados em memória
primária local
![Page 18: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/18.jpg)
18
Reduce-side Join
Mapper 1
s c a
1 5 8
2 6 7
3 6 4
4 4 7
S
t c b
5 6 4
7 4 2
8 4 1
10 5 4
T
Mapper 2
key value
s,4 7
s,5 8
s,6 7
s,6 4
Key value
t,4 2
t,4 1
t,5 4
t,6 4
saída entrada
atributo de
junção c
atributo a atributo de
junção c
atributo b idenbtificador da tabela S
idenbtificador da tabela T
entrada saída
![Page 19: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/19.jpg)
19
Reduce-side Join Mapper 1
s c a
1 5 8
2 6 7
3 6 4
4 4 7
S
t c b
5 6 4
7 4 2
8 4 1
10 5 4
T
Mapper 2
Reducer 1
key value
s,4 7
s,5 8
s,6 7
s,6 4
Key value
t,4 2
t,4 1
t,5 4
t,6 4
key value
s,4 7
s,5 8
t,4 2
t,4 1
t,5 4
Reducer 2
key value
s,6 7
s,6 4
t,6 4
Entrada do
Reducer 1
Entrada do
Reducer 2
![Page 20: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/20.jpg)
20
Reduce-side Join Mapper 1
s c a
1 5 8
2 6 7
3 6 4
4 4 7
S
t c b
5 6 4
7 4 2
8 4 1
10 5 4
T
Mapper 2
Reducer 1
key value
s,4 7
s,5 8
s,6 7
s,6 4
Key value
t,4 2
t,4 1
t,5 4
t,6 4
key value
s,4 7
s,5 8
t,4 2
t,4 1
t,5 4
saída
7, 2
7, 1
8, 4
Reducer 2
key value
s,6 7
s,6 4
t,6 4
saída
7, 4
4, 4
![Page 21: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/21.jpg)
21
Junção em MapReduce
• Map-side Join – Desvantagem: aplicável quando o conjunto pode ser
ordenado e particionado pelo atributo de junção
– Memory-backed Join
• Desvantagem: aplicável quando uma das tabelas é pequena e cabe na memória primária de cada nó
– Vantagem: processamento local, dispensando a fase de shuffling
• Reduce-side Join – Vantagem: aplicável em qualquer conjunto de tabelas
– Desvantagem: necessidade da fase de shuffling
![Page 22: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/22.jpg)
22
Banco de dados voltado ao processamento analítico para a tomada de decisão
Modelagem multidimensional – Medidas numéricas: objetos de análise
– Dimensões: perspectiva/contexto para as análises
Data Warehouse
F2
F1 F2
C4 C3
C2 C1
C4 C3
C2 C1
(fornecedor, cliente)
(fornecedor) (cliente)
(produto)
unidades vendidas
F1
P3
P2
P1
P3
P2
P1
(produto, fornecedor) (produto, cliente)
![Page 23: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/23.jpg)
23
Esquema Estrela
Star Schema Benchmark (SSB)
![Page 24: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/24.jpg)
24
Consulta de Junção Estrela
SELECT c_city, s_city, d_year, SUM(lo_revenue) as revenue
FROM Lineorder, Supplier, Customer, Date
WHERE lo_custkey = c_custkey
AND lo_suppkey = s_suppkey
AND lo_orderdate = d_datekey
AND c_nation = ‘UNITED STATES’
AND s_nation = ‘UNITED STATES’
AND d_year >= 1992 AND d_year <= 1997
GROUP BY c_city, s_city, d_year
ORDER BY c_city, s_city, d_year
Consulta Q3.2 do SSB
![Page 25: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/25.jpg)
25
Consulta de Junção Estrela
SELECT c_city, s_city, d_year, SUM(lo_revenue) as revenue
FROM Lineorder, Supplier, Customer, Date
WHERE lo_custkey = c_custkey
AND lo_suppkey = s_suppkey
AND lo_orderdate = d_datekey
AND c_nation = ‘UNITED STATES’
AND s_nation = ‘UNITED STATES’
AND d_year >= 1992 AND d_year <= 1997
GROUP BY c_city, s_city, d_year
ORDER BY c_city, s_city, d_year
cláusulas de junção
cláusulas de filtragem
Consulta Q3.2 do SSB
![Page 26: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/26.jpg)
26
Sequência de Junções Binárias em MapReduce
Um job MapReduce para cada junção
Lineorder
Supplier
Customer
Date
Job 1
Job 2
Job 3
![Page 27: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/27.jpg)
27
Algoritmo de Afrati e Ullman (2010)
Proposta: realizar todas as junções em apenas um job
• O domínio do atributo s é dividido em A blocos, enquanto que o domínio de t é dividido em B blocos
• O número de processos reducers é dado por AB
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
Cada processo reduce é identificado por um par (ai, bi)
ai=0
ai=1
ai=2
bi=0 bi=1 Supondo que A=3 e B=2, temos um total de 6 reducers
A
B
S(s) U(s, t) T(t) ⋈ ⋈
![Page 28: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/28.jpg)
28
Algoritmo de Afrati e Ullman (2010)
Proposta: realizar todas as junções em apenas um job
O processo reduce para o qual uma tupla deve ser enviada é identificado por dois valores, a e b, determinados a partir dos atributos s e t (atributos de junção)
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
ai
bi
0 1
2 3
4 5
ai
bi
S(s) U(s, t) T(t) ⋈ ⋈
f(ai, bi) = ai*B + bi
A=3 e B=2
![Page 29: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/29.jpg)
29
Algoritmo de Afrati e Ullman (2010)
Proposta: realizar todas as junções em apenas um job
• Para cada valor si do atributo s, ai = mod(si, A)
• Para cada valor ti do atributo t, bi = mod(ti, B)
• Reducer identificado por uma função f(ai, bi) = ai*B + bi
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
ai
bi
0 1
2 3
4 5
ai
bi
S(s) U(s, t) T(t) ⋈ ⋈
A=3 e B=2
![Page 30: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/30.jpg)
30
Algoritmo de Afrati e Ullman (2010)
Proposta: realizar todas as junções em apenas um job
S(s) U(s, t) T(t) ⋈ ⋈
• Cada tupla de S precisa ser enviada para todos os reducers identificados por um determinado valor ai
• Cada tupla de T precisa ser enviada para todos os reducers identificados por um um determinado valor bi
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
ai
bi
0 1
2 3
4 5
ai
bi A=3 e B=2
![Page 31: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/31.jpg)
31
Algoritmo de Afrati e Ullman (2010)
Exemplo:
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
s
1
2
3
4
s t
2 5
3 7
1 8
4 10
t
5
7
8
10
S U T
s
ai = 1
ai = 2
ai = 0
ai = 1
s t
ai = 2 bi = 1
ai = 0 bi = 1
ai = 1 bi = 0
ai = 1 bi = 0
t
bi = 1
bi = 1
bi = 0
bi = 0
S U T
f(ai, bi) = ai*B + bi
Id do processo reduce
Tuplas da tabela U são enviadas para um único reduce
S(s) U(s, t) T(t) ⋈ ⋈
ai
bi
A=3 e B=2
![Page 32: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/32.jpg)
32
Algoritmo de Afrati e Ullman (2010)
Exemplo:
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
s
1
2
3
4
s t
2 5
3 7
1 8
4 10
t
5
7
8
10
S U T
s
ai = 1
ai = 2
ai = 0
ai = 1
s t
ai = 2 bi = 1
ai = 0 bi = 1
ai = 1 bi = 0
ai = 1 bi = 0
t
bi = 1
bi = 1
bi = 0
bi = 0
f(ai, bi) = ai*B + bi
Id do processo reduce
Cada tupla da tabela S é enviada para B reducers (todos reducers de uma mesma linha)
S U T
S(s) U(s, t) T(t) ⋈ ⋈
ai
bi
A=3 e B=2
![Page 33: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/33.jpg)
33
Algoritmo de Afrati e Ullman (2010)
Exemplo:
(0,0) (0,1)
(1,0) (1,1)
(2,0) (2,1)
ai
bi
s
1
2
3
4
s t
2 5
3 7
1 8
4 10
t
5
7
8
10
S U T
s
ai = 1
ai = 2
ai = 0
ai = 1
s t
ai = 2 bi = 1
ai = 0 bi = 1
ai = 1 bi = 0
ai = 1 bi = 0
t
bi = 1
bi = 1
bi = 0
bi = 0
f(ai, bi) = ai*B + bi
Id do processo reduce
Cada tupla da tabela T é enviada para A reducers (todos reducers
de uma mesma coluna)
S U T
S(s) U(s, t) T(t) ⋈ ⋈
A=3 e B=2
![Page 34: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/34.jpg)
34
Algoritmo de Afrati e Ullman (2010)
Reducer 0 Reducer 1 Reducer 2
Reducer 3 Reducer 4 Reducer 5
Chave Valor
S|3 null
T|8 null
T|10 null
Chave Valor
S|3 null
T|5 null
T|7 null
U|3,7 null
Chave Valor
S|1 null
S|4 null
T|8 null
T|10 null
U|1,8 null
U|4,10 null
Chave Valor
S|1 null
S|4 null
T|5 null
T|7 null
Chave Valor
S|2 null
T|8 null
T|10 null
Chave Valor
S|2 null
T|5 null
T|7 null
U|2,5 null
![Page 35: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/35.jpg)
35
Algoritmo de Afrati e Ullman (2010)
Reducer 0 Reducer 1 Reducer 2
Reducer 3 Reducer 4 Reducer 5
Chave Valor
S|3 null
T|8 null
T|10 null
Chave Valor
S|3 null
T|5 null
T|7 null
U|3,7 null
Chave Valor
S|1 null
S|4 null
T|8 null
T|10 null
U|1,8 null
U|4,10 null
Chave Valor
S|1 null
S|4 null
T|5 null
T|7 null
Chave Valor
S|2 null
T|8 null
T|10 null
Chave Valor
S|2 null
T|5 null
T|7 null
U|2,5 null
![Page 36: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/36.jpg)
36
Algoritmo de Afrati e Ullman (2010)
Reducer 1 Reducer 2
Reducer 5
Chave Valor
S|3 null
T|5 null
T|7 null
U|3,7 null
Chave Valor
S|1 null
S|4 null
T|8 null
T|10 null
U|1,8 null
U|4,10 null
Chave Valor
S|2 null
T|5 null
T|7 null
U|2,5 null
s t
3 7
s t
2 5
s t
1 8
4 10
![Page 37: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/37.jpg)
37
Algoritmo de Afrati e Ullman (2010)
Vantagem
• realiza todas as junções em apenas um job MapReduce
Desvantagem
• Replicação de dados das tabelas de dimensão (S e T no exemplo)
• Caso existam filtros nas tabelas de dimensão, tuplas da tabela de fatos (U no exemplo) são enviadas para os reducers desnecessariamente
![Page 38: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/38.jpg)
38
Referências
Han, H.; Jung, H.; Eom, H.; Yeom, H. Y. Scatter-gather-merge: An efficient star-join query processing algorithm for data-parallel frameworks. Cluster Computing, v. 14, n. 2, p. 183–197, 2011.
Afrati, F. N.; Ullman, J. D. Optimizing joins in a map-reduce environment. In: Proceedings of the 13th International Conference on Extending Database Technology (EDBT 2010), 2010. p. 99–110.
Tao, Y., Zhou, M., Shi, L., Wei, L., Cao, Y.: Optimizing multi-join in cloud environment. In: Proceedings of the IEEE International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing. pp. 956–963 (2013).
Thusoo, A., Sarma, J.S., Jain, N., Shao, Z., Chakka, P., Zhang, N., Anthony, S., Liu, H., Murthy, R.: Hive - a petabyte scale data warehouse using hadoop. In: ICDE. pp. 996–1005 (2010)5.
Zhang, C., Wu, L., Li, J.: Efficient processing distributed joins with bloomfilter using mapreduce. Int J Grid Ditrib Comput 6(3), 45-58 (2013).
![Page 39: Algoritmos de Junção Estrela em MapReducewiki.icmc.usp.br/images/9/97/SCC0542012015EstrelaMap... · 2018. 9. 25. · HDFS - Hadoop Distributed File System DataNode 1 DataNode 2](https://reader033.vdocuments.net/reader033/viewer/2022060809/608e1141031f2e51d3611795/html5/thumbnails/39.jpg)
39
Obrigada