Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem...

27
Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado por Jhean M Lanski e Rodrigo A Araujo Column-Stores vs. Row-Stores: How Different Are They Really?

Transcript of Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem...

Page 1: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Daniel J. Abadi – Yale - New Haven, USASamuel R. Madden – MIT – Cambrigde, USA

Nabil Hachem – Avantgarde Consulting – Shrewbury, USASIGMOD '08

Apresentado por Jhean M Lanski e Rodrigo A Araujo

Column-Stores vs. Row-Stores: How Different Are They Really?

Page 2: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Introdução Motivação Proposta/Objetivo Star Schema Benchmark Modificações no Row-Oriented Resultados: Row-Oriented Modificações no Column-Oriented Resultados: Column-Oriented Conclusões

Agenda

Page 3: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Introdução

Column-StoreAtributos ao invés de Tuplas.

Orientado a leitura.

Escritas podem demandar vários acessos.

Data Warehouse, Decision Support, Business Intelligence.

Page 4: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Introdução

Page 5: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Motivação

Column-Store vs Row-Store?Depende do cenário,

Não é uma comparação que faz sentido.

Primeira Questão:É possível obter o desempenho de um Column-Oriented em um Row-Oriented usando um design físico mais orientado a coluna?

Page 6: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Proposta/Objetivo

1) Simular um sistema Column-Oriented usando um sistema Row-Oriented.

2) Analisar as funcionalidades exclusivas de um Column-Oriented explorando o aumento na performance que cada funcionalidade proporciona.

Page 7: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Proposta/Objetivo

Primeiro Objetivo:

Modificar o design físico do sistema RO de modo que este pareça com um CO;

Testar o sistema no Star Schema Benchmark;

Avaliar se um sistema orientado a linha pode ter o desempenho de um sistema orientado a coluna.

Page 8: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Star Schema Benchmark

Benchmark feito para Data Warehouse, baseado no TPC-H.

É formado de uma tabela de fatos, e tabelas de dimensão ligadas a ela.

13 queries, separadas em 4 blocos chamados de “flights”.

queries compostas de 2-4 junções e 1-2 agregações.

Page 9: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Star Schema Benchmark

**ScaleFactor usado nos testes 10

Page 10: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Row-Oriented

Para simular um sistema orientado a coluna em um orientado a linha foram analisadas 3 abordagens:

Particionamento Vertical

Índice apenas nos planos

Visões Materializadas

Page 11: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Row-Oriented

Particionamento Vertical

Divide as relações em tabelas de dupla entrada (key, attribute)

Inserções e Junções feitas por Hash

Existe overhead por tupla, devido ao acréscimo de chaves

Page 12: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Row-Oriented

Índice apenas nos planos

Atribui índices a cada coluna de cada tabela

Os índices são estruturados em uma árvore B

É eficaz em consultas com intervalo definido

Page 13: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Row-Oriented

Visões Materializadas

Foram criadas visões “ótimas” das querys a serem usadas nos testes.

O sistema acessa apenas as colunas necessárias para realizar a query.

Ótimo, porém necessita de conhecimento prévio das querys.

Page 14: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Resultados: Row-Oriented

Legenda:T: Tradicional Row-OrientedT(B): Traditional with Bitmap enabledMV: Materialized ViewsVP: Vertical PartitionatingAI: All-Index

Houve perda no desempenho:

-Overhead nas tuplas-Junções na construção das tupla

Page 15: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Resultados: Row-Oriented

• C-Store tem melhor desempenho do que a versão ótima do sistema orientado a linha.

• Segunda Questão: Quais as funcionalidades específicas do CO que são responsáveis pelo alto desempenho?

Page 16: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Proposta/Objetivo

1) Simular um sistema Column-Oriented usando um sistema Row-Oriented.

2) Analisar as funcionalidades exclusivas de um Column-Oriented explorando o aumento na performance que cada funcionalidade proporciona.

Page 17: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Proposta/Objetivo

Segundo Objetivo:

Retirar as funcionalidades específicas do CO, uma a uma;

Testar o sistema no Star Schema Benchmark;

Avaliar o impacto de cada funcionalidade na performance do sistema orientado a coluna.

Page 18: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Para verificar o desempenho do CO, foram retiradas, uma a uma, as seguintes funcionalidades:

Compressão

Processamento por Bloco

Materialização Tardia

Junção Invisível

Page 19: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Compressão

Dados do mesmo tipo contíguos em disco

Run-Lenght Enconding

Permite acesso sem descompressar

Page 20: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Processamento por Bloco

Blocos de dados são enviados uma única vez para o operador

Reduz Overhead de processamento

Se a largura da coluna for fixa, os dados no bloco podem ser acessados como um array -> permite processamento paralelo

Page 21: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Materialização Tardia

Realiza, preferencialmente, todas as operações antes de construir a tupla

Não necessita descompressar os dados tão cedo

Permite os benefícios de operar por bloco

Page 22: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Materialização Tardia - exemplo

Where Where

ANDQuery:

Select custID, SUM(price)From tableWhere (prodID = 4) AND

(storeID =1)Group By custID

Construção da Tupla

Page 23: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Junção Invisível

Junção feita especialmente para CO executando um Star Schema;

Rescreve junções na tabela de fatos em predicados, e os processa em paralelo;

Cria uma tabela hash para cada tabela de dimensão, processa os índices com a tabela de fatos, e cria entradas de 0 e 1 para cada tupla, indicando quais satisfazem os predicados;

Faz um bit AND entre as tabelas, e só então une os atributos das tabelas de dimensão com a de fatos.

Page 24: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Junção Invisível – Exemplo (Passo 1)

Page 25: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Modificações no Column-Oriented

Junção Invisível – Exemplo (Passo 2)

Page 26: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Resultados: Column-Oriented

Legenda:t: Processamento por BlocoT: Processamento por Tuplai: Sem Junção InvisívelI: Com Junção Invisívelc: Sem CompressãoC: Com Compressãol: Materialização CedoL: Materialização Tardia

Constatações:-Materialização Tardia-Compressão-Junção Invisível vs. Denormalização

Page 27: Daniel J. Abadi – Yale - New Haven, USA Samuel R. Madden – MIT – Cambrigde, USA Nabil Hachem – Avantgarde Consulting – Shrewbury, USA SIGMOD '08 Apresentado.

Conclusões

• Existem diferenças entre um sistema CO e um RO a

nível de execução de querys, além das óbvias

diferenças a nível de armazenamento.

• As variações no RO para atingir o desempenho de um

CO não obtiveram bons resultados, principalmente

pelo overhead na construção das tuplas.

• Os testes nas funcionalidades do CO mostraram que os

principais responsáveis pelo alto desempenho são a

Materialização Tardia e a Compressão.