Slide 1: Apache Drill

Cárlisson Galdino < bardo@carlissongaldinoSEMSPAM.com.br>

Slide 2: Conteúdo

  • Apache Drill
  • Slide 1: Apache Drill
  • Slide 2: Conteúdo
  • Slide 3: O que diz a Wikipedia
  • Slide 4: Tipo assim…
  • Slide 5: O que diz o Marketing
  • Slide 6: E o que é o Drill?
  • Slide 7: O Fluxo da Consulta
  • Slide 8: Raio-X do DrillBit
  • Slide 9: Detalhes da Flexibilidade
  • Slide 10: Detalhes do Desempenho
  • Slide 11: SQLLine
  • Slide 12: Referências Web
  • * O que diz o Marketing

Slide 3: O que diz a Wikipedia

  • Apache Drill é um framework de código aberto que suporta aplicações distribuídas de dados intensivos para análise interativa de grandes conjuntos de dados.

Slide 4: Tipo assim...

Slide 5: O que diz o Marketing

  • Arquitetura Flexível e Extensível
  • Consulta Interativa em Escala
  • Velocidade é a Chave
  • Libera Dados Aninhados
  • Flexibilidade

Slide 6: E o que é o Drill?

  • Engenho de consulta para Hadoop
  • Mantido pela Apache Foundation (incubado)
  • Funciona em Linux e Mac OS X
  • Roda em Java (versão mínima: JavaSE Runtime 7 Oracle)

Slide 7: O Fluxo da Consulta

  • JDBC, ODBC ou linha de comando.
  • Todos aceitam consultas. Sem conceito de mestre-escravo.
  • Drillbit consultado vira o motorista
  • Zookeeper mantém lista de nós ativos

Slide 8: Raio-X do DrillBit

  • RPC (+ camada de API em C++)
  • SQL Parser utiliza Optiq
  • Otimização baseada em regras, custo, localidade, dentre outras
    • A saída da otimização são (sub)consultas distribuídas
  • Lidando com Hadoop, Drill provê storage plugins para arquivos e HBase/M7
  • Cache utiliza a ferramenta Hazelcast
    • fragmentos de plano de consulta
    • estado intermediário da execução da consulta
    • estatísticas

Slide 9: Detalhes da Flexibilidade

  • Sem esquema - Drill começa a processar os dados em unidades chamadas “record batches” e descobre os esquemas enquanto processa a busca.
  • Dados aninhados - Drill trata dados complexos e semiestruturados como nativos em todas as camadas do produto.
  • Metadados - Drill NÃO está preso a um único repositório Hive. Não exige definição de metadados, mas permite sua criação, se necessário, em SQL DDL.
  • Extensibilidade - para todas as camadas, incluindo plugin de armazenamento, camada de consulta, camada de otimização/execução, e APIs.

Slide 10: Detalhes do Desempenho

  • Execução Colunar - otimiza armazenamento colunar e execução com modelo de dados na memória, tanto hierárquico quanto colunar.
    • Em formato colunar, Drill evita acesso a colunas não envolvidas na consulta.
    • Expande o modelo colunar, com uma camada de execução que processa SQL diretamente sem materialização de tuplas e sem desaninhar dados.
  • Vetorização - Record Batches são vetores de valores de muitos registros diferentes.
    • Técnica: modern chip technology com deep-pipelined CPU designs
  • Execução de consulta otimista e em “pipeline” - Drill assume que falhas não são frequentes
    • Se a consulta falha em um nó, é executada novamente
    • Diferente do MapReduce, Drill não persiste no disco
    • Usa prioritariamente a memória, só usando o disco se a memória acabar

Slide 11: SQLLine

  • Console em Java para consulta. Já inicia um Drillbit automaticamente

*0: jdbc:drill:zk=local>* SELECT * FROM cp.`employee.json`;

employee_id full_name first_name last_name position_id position_
1101 Steve Eurich Steve Eurich 16 Store T
1102 Mary Pierson Mary Pierson 16 Store T
1103 Leo Jones Leo Jones 16 Store Tem
1104 Nancy Beatty Nancy Beatty 16 Store T
1105 Clara McNight Clara McNight 16 Store
1106 Marcella Isaacs Marcella Isaacs 17 Stor
1107 Charlotte Yonce Charlotte Yonce 17 Stor

1,155 rows selected (0.762 seconds) *0: jdbc:drill:zk=local>*

Slide 12: Referências Web

  • Projetos
    • Apache Drill
    • Apache ZooKeeper
    • Optiq
    • Hazelcast
  • Outros
    • Apache Drill - Interactive AdHoc Analysis at Scale - Artigo
    • Apache Drill - Slides

* A criatura do primeiro slide é um Beedrill, personagem da GameFreak/Nintendo.

O que diz o Marketing

  • Arquitetura Flexível e Extensível - APIs e interfaces bem documentadas permitem rápidas adições de novas fontes de dados e formatos de arquivo. Novos operadores e linguagens de consulta também são fáceis de adicionar ao Drill.
  • Consulta Interativa em Escala - Apache Drill fornece consultas de baixa latência de várias fontes de dados diferentes, incluindo dados aninhados. Inspirado pelo Dremel da Google, Drill se destina a escala de 10.000 servidores e consultar petabytes de dados em segundos.
  • Velocidade é a Chave - Utilizando um formato eficiente de armazenamento colunar, um mecanismo de execução otimista e um layout de memória cache-consciente, Apache Drill é rápido pra caramba. Coordenação, planejamento de consulta, otimização, agendamento e execução são todos distribuídos ao longo de nós em um sistema para maximizar a paralelização.bro
  • Libera Dados Aninhados - Realiza análise interativa em todos os seus dados, incluindo aninhados e schema-less. Drill suporta consulta por muitas fontes de dados schema-less diferentes incluindo HBase, Cassandra e MongoDB. Naturalmente, registros planos estão incluídos como um caso especial de dados aninhados.
  • Flexibilidade - Níveis e APIs fortemente definidos para integração direta com um vasto leque de tecnologias.

– CarlissonGaldino - 30 Jun 2014

slides/apache_drill.txt · Última modificação: 28/11/2014 05:48 por Carlisson Galdino
CC Attribution-Noncommercial-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5