Efficient Query Processing in RDF Databases

Documentos relacionados
Seleção e Otimização de Fontes

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Sumário. Definição do Plano de Execução

Linked Data Management. Capítulo 9: Experiences with Virtuoso Cluster RDF Column Store

3 Plano de Execução de Consultas

Processamento e Otimização de Consultas. Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

FedX: Busca otimizada sobre base de dados Federada. Hugo Paulino Bonfim Takiuchi Curitiba

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

Processamento de Consultas. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Processamento de Consultas SPARQL em uma Base Relacional de Entidades

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Administração e Optimização de BDs

OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Introdução a. π LNAME, FNAME (σ SALARY>C (EMPLOYEE))

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Otimização do Mapeamento de Consultas SPARQL para SQL

PROCURA E PLANEAMENTO

Introdução Ferramentas Unix MapReduce Outras Ferramentas. Batch Processing. Fabiola Santore. Universidade Federal do Paraná

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Capítulo 7: SPARQL Processamento de consulta em nuvem

Ambiente de Data Warehouse Para Imagens Médicas Baseado Em Similaridade

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

Escrita ( W ) do Resultado

Administração de. José Antônio da Cunha CEFET-RN

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

CIC 111 Análise e Projeto de Algoritmos II

Busca em Regiões Ortogonais

Compiladores e Computabilidade

Processamento da Consulta. Processamento da Consulta

Livro texto: Capítulo 1

Tecnologias de Bancos de Dados

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador

Bancos de Dados Orientados a Grafos. Mateus Lana e Thiago Santana

Índice Bitmap. Aluno: Carlos Henrique Villa Pinto Orientador: Ricardo Rodrigues Ciferri Colaboradora: Renata Miwa Tsuruda

IMPLEMENTAÇÃO DE BANCO DE DADOS

A Web Semântica: Conceitos e Aplicações. Valéria M. Pequeno Universidade Autónoma de Lisboa

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

Designing Data Intensive Applications

Módulo III Camada de Persistência

PROCURA E PLANEAMENTO

Sumário. Etapas do Processamento de Consultas

Processamento e Otimização de Consultas

Reindexação Automática em SGBDs Relacionais

EA075 Memória virtual

GUIA RÁPIDO DE UTILIZAÇÃO DO APLICATIVO RDB2LOD

Aula 02. Evandro Deliberal

Otimização e Execução de Consultas Caso Centralizado Parse Query

14/03/12. Fragmentação Vertical. Projeto de Bancos de Dados Distribuídos (Parte 02) Complexidade. Objetivo. Complexidade. Abordagens Heurísticas

AED2 - Aula 01 Apresentação, estruturas de dados, tabelas de símbolos e hash tables

Hashing: conceitos. Hashing

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

Linguagens de Domínio Específico

Arquivos invertidos 39

Este capítulo aborda os fundamentos principais aplicados neste trabalho.

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Grafos: árvores geradoras mínimas. Graça Nunes

Sistema de arquivos. Adriano J. Holanda 24/5/2016

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Rápida revisão do Modelo Relacional

Análise e otimização de queries no MySQL. Jeronimo Fagundes da Silva

Árvore Geradora Mínima

Visões Arquiteturais. Visões Arquiteturais

Estruturas de Dados em Python

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Banco de Dados e Aplicações em Negócios: Introdução.

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

Organização de Computadores I

A quantidade de informação existente no mundo é grande e cresce a uma taxa exponencial a cada ano. Aplicações como engenhos de busca web, por

MySql. Introdução a MySQL. Andréa Garcia Trindade

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

BANCO DE DADOS GERENCIAL 1 A U L A 2

Algoritmos e Estruturas de Dados II. Trabalho Prático 4

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Processamento de Consultas SPARQL em uma Base Relacional de Entidades

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

SGBDs NoSQL Modelos e Sistemas de Colunas e Grafos. Aluno: Jorge Dias Disciplina: IN940

Sistemas de Arquivos. (Aula 23)

Compiladores Análise Semântica

Transcrição:

Efficient Query Processing in RDF Databases AUTORES: Andrey Gubichev Munich, Germany Thomas Neumann Munich, Germany José Ramalho Apresentação capítulo 5 Curitiba, 10 de novembro de 2016

Introdução Itens Abordados: Análise das consultas SPARQL. Tipos de indexação de dados RDF. Formas de armazenamento. Exemplos de sistemas RDF.

Introdução Considerações Iniciais: Aumento expressivo na web nos últimos anos do Linked Data. Existência de diversos conjuntos de dados contendo milhões de triplas: biomedicina (Uniprot, PubMed), bases de conhecimento (DBpedia, YAGO), governo (Data.gov), entretenimento (MusicBrainz), etc.

De acordo com Linked Open Data existem mais de 31 bilhões de triplas publicadas online

Introdução Motivação: Números expressivos de recursos RDF indicando a necessidade da busca por uma indexação eficiente. Preocupação com o processamento de consultas SPARQL. Dificuldades identificadas no RDF: armazenamento, indexação e consulta.

Desafios Como indexar os diversos conjuntos de dados RDF publicados na Web? A ausência de um esquema global e a diversidade de recursos torna esta tarefa desafiadora.

Desafios Como encontrar o plano de execução ideal para consultas SPARQL? Uma vez que o modelo de dados consiste essencialmente de triplas, a extração de dados algumas vezes necessita de um grande número de junções.

Desafios Como otimizar consultas com estimativas precisas de resultados? Isso normalmente requer estruturas de dados específicas que manipulam as estimativas de seletividade e cardinalidade para dados RDF.

Desafios Como executar com eficiência as junções e os caminhos a percorrer? Mesmo depois de encontrar o plano de execução ideal, diversas junções precisam ser executadas. Os caminho percorrido também tornar-se um desafio em grandes conjuntos de dados, uma vez que acessam diversas informações.

Armazenamento de dados RDF Duas possíveis abordagens de acordo com os autores: Baseada no Modelo Relacional Baseado em Grafos

Armazenamento de dados RDF Abordagem baseada no modelo relacional A maioria dos sistemas mapeiam o conjunto de dados RDF para tabelas relacionais e utilizam três possíveis estratégias: Triple Stores, Tabelas de Propriedades e Tabelas de Propriedades Clusterizadas.

Armazenamento de dados RDF Estratégia 1: Triple Stores As triplas são salvas em grandes tabelas cotendo sujeito, predicado e objeto. Em alguns sistemas é criada uma coluna adicional para salvar o nome do grafo que contém a tripla.

Indexação Exemplos Árvores B+

Indexação Baseado no modelo relacional Cinco estratégias de índices usando B+ tree: Índices separados para o S, P e O; Índice agrupado com o S e P; Índice agrupado com o S e P e o índice do O separado; Índice agrupado com o P e O; Íncide agrupado com o S, P e O S: Sujeito P : Predicado O: Objeto

Indexação Baseado no modelo relacional Experiências com consultas simples ou consultas com poucas junções mostraram que a primeira estratégia obteve melhor desempenho, no caso, índices separados para o S, P e O; S: Sujeito P : Predicado O: Objeto

Indexação Estratégia 1: Triple Stores Umas das primeiras propostas para melhorar o desempenho das consultas foi usar índices não clusterizados com diversas combinações de Sujeito, Predicato e Objeto salvos em triples table.

Indexação No modelo relacional Quando uma consulta tiver uma complexidade maior, índices clusterizados são indicados pois possuem uma performance melhor.

Indexação Criação de novos índices Indexação Excessiva Espaço em Disco

Indexação Compressão de Dados em Banco de Dados Para manter os requisitos de espaço em disco devido a indexação em larga escala, os sistemas normalmente usam a Compressão de Dados por Dicionário.

Indexação Compressão de Dados em Banco de Dados A compressão de dados é o ato de reduzir o espaço ocupado por dados num determinado sistema. Essa operação pode ser realizada através de diversos algoritmos de compressão, reduzindo a quantidade de bytes para representar um dado, podendo esse dado ser um recurso RDF.

Indexação Como funciona a compressão de dados por dicionário? Cada URI de uma tripla é mapeado para um ID exclusivo. Os dados são salvos como triplas de inteiros e não como strings. Duas maneiras de atribuir os IDs: incremental ou através de função hash.

Indexação Como funciona a compressão de dados por dicionário? ID de forma incremental: para cada novo dado que deve ser salvo no BD é requisitado o próximo ID incremental disponível. O mapeamento das strings para os IDs e dos IDs para as strings é salvo em uma estrutura de árvore B+.

Indexação Como funciona a compressão de dados por dicionário? Segunda opção para geração de IDs é através de função hash. Um ID para a String é gerado por um hash. Apenas o mapeamento do ID para a sequência de caracteres precisa ser armazenado.

Indexação Exemplos de implementações Virtuoso: emprega um esquema de indexação parcial, onde apenas dois índices quádruplos (PSOG, POGS) são armazenados. Além disso, três índices duplos são mantidos: SP, OP e GS. S: Sujeito P : Predicado O: Objeto G: Grafo

Indexação Exemplos de implementações Hexastore: emprega seis diferentes índices de árvores B+ agrupados em todas as possíveis permutações de S, P e O: SPO, SOP, PSO, POS, OSP, OPS. S: Sujeito P : Predicado O: Objeto

Indexação Exemplos de implementações RDF-3X: emprega seis diferentes índices de árvores SPO, SOP, PSO, POS, OSP, OPS além dos subconjuntos SP, SO, PS, PO, OS, OP resultando em seis índices adicionais. S: Sujeito P : Predicado O: Objeto

Armazenamento de dados RDF Estratégia 2 e 3: Property e Cluster-property Tables Os autores analisaram o armazenamento de dados RDF em tabelas que são definidas por um ou vários predicados.

Armazenamento de dados RDF Baseado no modelo relacional Estratégia 2: Property Tables As triplas são agrupadas pelo nome do predicado. Todas as triplas com o mesmo predicado são armazenadas em uma tabela separada.

Armazenamento de dados RDF Baseado no modelo relacional Estratégia 3: Cluster-property Tables As triplas são agrupadas em classes com base na similaridade dos predicados. Cada tripla é armazenada em uma tabela que corresponde a sua classe. As classes são normalmente determinadas por um algoritmo de agrupamento.

Armazenamento Property e Cluster-property Tables Abordagem Extrema Usa uma tabela separada para cada (P). Sujeitos são conectados a vários objetos através do mesmo (P) e resultam em múltiplas linhas com o mesmo (S) e diferentes (O) S: Sujeito P : Predicado O: Objeto

Armazenamento Property e Cluster-property Tables Abordagem Extrema A coluna do sujeito é classificada para permitir joins otimizados. Os objetos podem ser indexados através de árvores B+.

Armazenamento Cluster-property Tables Exemplo Implementação da Apache em Java que suporta tabelas de propriedades clusterizadas.

Armazenamento e Indexação Abordagem baseada em grafos Os autores abordam de forma sucinta o assunto. Limitaram em conceituar o G-Store: sistema em que o conjunto de dados RDF é tratado como grafos.

Armazenamento e Indexação G-Store Sistema de gerenciamento de dados RDF. Mantém a estrutura de grafo de acordo com o dado RDF original. O modelo de dados é baseado em grafos com várias arestas onde cada vértice corresponde a um sujeito ou objeto.

Armazenamento e Indexação G-Store Possui um algoritmo que particiona o grafo em subgrafos e organiza os subgrafos no disco. Minimiza a distância no disco entre vértices adjacentes. Implementa um índice chamado VS-Tree que é uma árvore de altura balanceada com técnicas para pesquisa de dados nos subgrafos.

Processamento e Otimização de Consultas SPARQL Traduzindo consultas SPARQL em grafos de consulta Melhor forma para otimizar consultas Análise de junções e operadores

Traduzindo Consultas SPARQL Para uma consulta SPARQL, o mecanismo RDF (engine) executa os seguintes passos: I. Analisa a consulta e constrói a AST (*); II. Traduz a AST para o grafo de consulta; III. Constrói o plano de consulta otimizado a partir do grafo de consulta; IV. Executa o plano de consulta. (*) Árvore de Sintaxe Abstrata

Traduzindo Consultas SPARQL Após a construção do Grafo de Consulta No momento da execução, essa consulta é transformada em um conjunto de triplas. Cada uma dessas triplas consistem de recursos e literais que foram mapeados de acordo com os IDs no dicionário de dados.

Consulta SPARQL e respectivos grafos

Traduzindo Consultas SPARQL Árvore de Junção De acordo com o grafo criado, o mecanismo de consulta (engine) constrói sua representação algébrica junto com operadores de junções, conhecida como árvore de junção. Pode ser representada por uma árvore binária. Esta árvore junto com os índices e junções serve de base para o plano de execução da consulta.

Traduzindo Consultas SPARQL Exemplos Dataset: YAGO2 System: RDF-3X Algorithm: DP (Dynamic Programming) Não descreveram a configuração de hardware.

Traduzindo Consultas SPARQL Exemplos A execução da consulta levando em consideração: a cardinalidade resultou na árvore de junção (a) plano otimizado resultou na árvore (b).

Traduzindo Consultas SPARQL Exemplos Os tempos de execução resultantes foram de 2100 ms para o plano que levou em consideração a cardinalidade (a) e 700 ms para o plano otimizado (b).

Traduzindo Consultas SPARQL Exemplos Sugestão de implementação do plano de execução: dar preferência para abordagens bottom-up, em vez de abordagens top-down.

Traduzindo Consultas SPARQL Exemplos Artigo: Simpósio Brasileiro de Bancos de Dados - SBBD 2012 Autores: Macedo Sousa Maia, João Carlos Pinheiro, Regis Pires Magalhães, José Maria da Silva Monteiro Filho, Vânia Maria Ponte Vidal Algorithm 1: PHJ (Pipeline Hash-join) Algorithm 2: SBJ (Set-bind-join) Dataset: DrugBank e Dailymed http://www.lbd.dcc.ufmg.br/colecoes/sbbd/2012/0016.pdf

Traduzindo Consultas SPARQL Junções e Caminhos Levando em consideração as junções e os caminhos que devem ser percorridos, mesmo depois que o otimizador encontre o plano ideal para uma consulta, uma execução ainda pode enfrentar dificuldades e demorar. Para executar um simples select, podem ocorrer grandes varreduras e diversos caminhos percorridos nas sub-árvores para retornar os dados desejados.

Traduzindo Consultas SPARQL Restrição Filter na cláusula Where https://www.w3.org/tr/rdf-sparql-query

Conclusão As Triple Stores possuem um melhor desempenho quando utilizados com consultas simples ou consultas com poucas junções. Índices separados para o Sujeito, Predicado e Objeto são mais indicados do que índices agrupados. É importante termos atenção na construção das estruturas em SPARQL e no uso da indexação mais apropriada para o objetivo da pesquisa.

Obrigado! Referências: Hexastore: http://crubier.net/hexastore RDF-3X: http://dl.acm.org/citation.cfm?id=1731354 Virtuoso: https://virtuoso.openlinksw.com G-Store: http://g-store.sourceforge.net Jena: https://jena.apache.org http://www.lbd.dcc.ufmg.br/colecoes/sbbd/2012/0016.pdf

Perguntas 1 2 É correto afirmar que para consultas complexas em SPARQL devemos usar índices não clusterizados? Explique a sua resposta e porque devemos ou não usar esse tipo de índice. Defina seletividade e cardinalidade e porque são importantes esses conceitos no contexto de banco de dados RDF. ramalhoneto@gmail.com