SlideShare uma empresa Scribd logo
1© Cloudera, Inc. All rights reserved.
Apache Kudu
Fast Analytics on Fast Data
Alan Silva acs@cloudera.com
Claudio Takamiya ct@cloudera.com
2© Cloudera, Inc. All rights reserved.
Alan Silva
Ficha criminal
• Cumpriu a primeira pena finalizando o seu
Bacharelado em Matemática;
• Reincidente, concluiu seu mestrado na UFSCar;
• Trabalhou com arquitetura e desenvolvimento em
algumas empresas de segurança da informação e
telecomunicações;
• Com o intuito de reduzir a pena, participou de
forma voluntária em alguns projetos opensource;
• Hoje atua como cúmplice direto na adoção de
projetos com Big Data em grandes organizações;
Silva
Alan
Senior Solutions Architect
3© Cloudera, Inc. All rights reserved.
Claudio Seidi Takamiya
Ficha criminal
• Cumpriu pena na Universidade de São Paulo -
Bacharelado em Ciência da Computação
• Solto por bom comportamento depois de 4 anos;
• Fez parte do grupo de Arquitetura da Telefonica –
Vivo.
• Realiza PoC nas empresas;
• Não coloca comentários em seu código;
Takamiya
Claudio
Senior Systems Engineer
4© Cloudera, Inc. All rights reserved.
5© Cloudera, Inc. All rights reserved.
Vendor Integration
BI/Analytics ETL Database OS/Cloud/
System
Management
Hardware
6© Cloudera, Inc. All rights reserved.
”Para quem só sabe usar
martelo, todo problema é
um prego”
(Abraham Maslow)
7© Cloudera, Inc. All rights reserved.
Apache Kudu
• Projeto licenciado e governado pela Apache Foundation (open source)
• Utiliza modelo estruturado de dados
• Baseado em tabelas
• Suas tabelas são divididas em tablets (que é o equivalente a partições)
• Sua arquitetura suporta uma distribuição dos dados de forma geografica, sistema
ativo/ativo
8© Cloudera, Inc. All rights reserved.
O que o Apache Kudu é?
STORAGE SYSTEM
for
TABLES
of
STRUCTURED DATA
Não é um SQL engine, nem um query
planner, nem um optimizer.
Sistema de armazenamento que
permite que você consiga recuperar
seus dados rapidamente de forma
randômica ou através de full scan e
altamente escalável.
A lógica de dados é apresentada ao
cliente como linhas e um conjunto
finito de colunas.
Armazenado em formato colunar, as
tabelas são particionadas sobre os
tablets que são gerenciados pelos
servidores de tablets. Os tablets são
replicados e gerenciados através do
conceito de consenso Raft.
As colunas são altamente tipadas
Numero finito de colunas
Remover e adicionar colunas apenas
por ALTER TABLE
9© Cloudera, Inc. All rights reserved.
Storage para Dados Analíticos Atualizáveis
Analítico simples em real-time e atualizações com Apache Kudu
Kudu: Storage para análises rápidas em “dados rápidos”
• Simplifica arquitetura para construir aplicações analíticas
real-time
• Projetada para a próxima geração de hardware para um
desempenho analítico superior através dos frameworks
• Engine de Armazenamento nativo para o Ecossistema
Hadoop
Flexibilidade da ferramenta adequada para cada caso de
uso em uma única plataforma
• Base de Dados analítco: Kudu + Impala
• Aplicações real-time simples com Kudu + Spark
Casos de Uso
• Dados de Séries Temporais
• Analítico de Dados de Maquinas (IoT)
• Relatórios Online (Online reporting)
FILESYSTEM
HDFS
NoSQL
HBASE
INGEST – SQOOP, FLUME, KAFKA
DATA INTEGRATION & STORAGE
SECURITY – SENTRY
RESOURCE MANAGEMENT – YARN
UNIFIED DATA SERVICES
BATCH STREAM SQL SEARCH MODEL ONLINE
DATA ENGINEERING DATA DISCOVERY & ANALYTICS DATA APPS
SPARK,
HIVE, PIG
SPARK IMPALA SOLR SPARK HBASE
COLUMNAR STORE
KUDU
10© Cloudera, Inc. All rights reserved.
O que o Kudu não é
• Não é uma interface SQL
• Somente a camada de armazenamento
• “BYOSQL” – Bring-your-own SQL
• Não é um sistema de arquivos
• Os dados devem ter estrutura tabular
• Não é uma aplicação que roda sobre o HDFS
• Não é um substituto do HDFS ou do HBase
• Sempre é necessário escolher qual a melhor forma de armazenamento para cada caso
• Cloudera continuará investindo nos três
11© Cloudera, Inc. All rights reserved.
Interfaces do Kudu
• APIs NoSQL-style
• Insert(), Update(), Upsert(), Update-Ignore(), Delete(), Scan()
• Java, C++, limited Python
• Integrações com MapReduce, Spark e Impala
• Sem acesso direto aos arquivos de tablet do Kudu
• Possui suporte a autenticação, autorização e encriptação
12© Cloudera, Inc. All rights reserved.
Características de Performance
Aproveita a CPU ao máximo
• Escrito em C++, utiliza instruções SIMD e possui compilação JIT com LLVM
A latência depende da capacidade do hardware
• Esperado respostas em milisegundos com SSDs e tecnologias futuras
Não possui garbage collection permitindo o gerenciamento de grandes
footprints de memória sem pausas
Bloom filters reduzindo a necessidade de vários acessos ao disco
13© Cloudera, Inc. All rights reserved.
HDFS
Fast Scans, Analítico
e Processamento de
Dados Armazenados
Atualizações
rápidas on-line
& Serviço de
dados
Armazenamento
(Active Archive)
Análises Rápidas
(em dados que mudam
muito rapidamente ou
atualizados
frequentemente)
Onde o Kudu se encaixa
Casos de uso que ficam entre HDFS e HBase são difíceis de gerenciar
Estático
Mudanças Rápidas
Atualizações
Frequentes
HBase
Append-Only
Real-Time
Arquitetura
Híbrida Complexa
Gap
Analítico
Rítmo das Análises
RítmodosDados
14© Cloudera, Inc. All rights reserved.
HDFS
Fast Scans, Analítico
e Processamento de
Dados Armazenados
Atualizações
rápidas on-line
& Serviço de
dados
Armazenamento
(Active Archive)
Análises Rápidas
(em dados que mudam
muito rapidamente ou
atualizados
frequentemente)
Onde o Kudu se encaixa
Casos de uso que ficam entre HDFS e HBase são difíceis de gerenciar
Estático
Mudanças Rápidas
Atualizações
Frequentes
HBase
Append-Only
Real-Time
Gap
Analítico
Rítmo das Análises
RítmodosDados
Cobertura
Aplicações Analíticas
Modernas geralmente
requerem fluxo
complexo de dados &
dificuldade de integrar
Hbase & HDFS
15© Cloudera, Inc. All rights reserved.
Em que situações o Kudu é indicado?
Uma combinação simultânea de leituras e escritas sequencias e randômicas
Consegue inserir dados de séries
temporais em real time? Quanto
demora a preparação da análise?
Os resultados saem em tempo hábil
para tomar alguma ação?
Consegue lidar com grandes
volumes de dados gerados por
máquinas? Tem ferramentas para
identificar ameaças? Seu sistema
consegue fazer machine learning?
Quão rápido você adiciona os seus
dados para seu banco de dados?
Você está enfrentando um tradeoff
entre a capacidade de realizar
análises amplas e a capacidade de
fazer atualizações? Você omite
dados?
Dados de Séries Temporais Analítico em Dados de Máquinas Online Reporting
16© Cloudera, Inc. All rights reserved.
Melhor forma de usar
Kudu se beneficia com a Integração com o ecossistema Hadoop
Spark – Stream Processing para Kudu
• Padrão aberto para processamento em stream;
• Eficaz em automação de processo de decisão e Machine
Learning;
• Casos de Usos: Dados de Séries Temporais & Machine Data
Analytics
Impala – High-Performance BI & SQL para Kudu
• Padrão aberto para queries SQL interativas;
• Capacidade de carga de trabalho de banco de dados analítico
com flexibilidade, escalabilidade e arquitetura aberta
• Casos de uso incluso: Online Reporting
18© Cloudera, Inc. All rights reserved.
”Hoje não vou dar, vou é
distribuir”
(Filme :Bruna Surfistinha, 2011)
19© Cloudera, Inc. All rights reserved.
Arquitetura do Kudu
Principais componentes
Kudu
• É um engine de armazenamento standalone
• Armazena dados ”tipados” em modelo tabular para
acessos rápidos
• Tabelas Kudu são tipicamente de terabytes ou petabytes
de tamanho
• O design do Kudu é para acesso randômico e queries
analíticas em dados estruturados:
✓ É possível realizar varreduras (scans), pesquisas
randômicas, e atualizações nos dados em tabelas.
• Os dados armazenados no Kudu são organizados em
tabelas:
✓ As tabelas são particionadas em pedaços menores
chamados de tablets
✓ Os tablets são armazenados nos servidores Kudu
Tablet
20© Cloudera, Inc. All rights reserved.
Arquitetura do Kudu
Formato colunar e Tipos Explícitos
Kudu
• Os tipos de dados em Kudu são explicitos:
✓ Diferente do estilo NoSQL ”tudo é byte”
✓ Possibilita o uso de codificações específicas por tipos
de colunas, ex: bit-packing para inteiros;
• Tipos explícitos facilita a disponibilização de metadados no
estilo SQL para outras ferramentas usadas em BI ou
ferramentas de exploração de dados
A B C
A1 B1 C1
A2 B2 C2
A3 B3 C3 A1 A2 A3 B1 B2 B3 C1 C2 C3
A1 B2 C1 A2 B2 C2 A3 B3 C3
Kudu: armazenamento baseado em colunas
Banco de dados relacional: armazenamento
baseado em linha
21© Cloudera, Inc. All rights reserved.
Arquitetura do Kudu
Acesso e Ingestão de Dados
• O Kudu possui conectores que suportam diversos engines
SQL:
✓ Apache Impala
✓ Spark SQL
• Junto com o Kudu é empacotado um componente Sink
para o Apache Flume
• Um conector Apache Sqoop para Kudu já está disponível
com um patch
Apache Impala
Conectores SQL
Sink
22© Cloudera, Inc. All rights reserved.
Modelando tabelas para Kudu
Critérios de um bom design
Critérios:
• Os dados devem ser distribuídos de forma que a leitura e a gravação
sejam espalhadas uniformemente entre os tablet servers
(Particionamento);
• Os tablets devem ter um crescimento a uma taxa uniforme e a carga
deve ser uniforme entre os tablets (Particionamento);
• Os ”scans” devem ler o mínimo de dados necessários para atender uma
query (Desenho da chave primária);
23© Cloudera, Inc. All rights reserved.
Seleção de Chave Primária
• Exemplo – Série Temporal:
• ”time” - timestamp
• ”series” - {region, server, metric}
(us-east.appserver01.loadavg, 2016-05-09T15:14:00Z)
(us-east.appserver01.loadavg, 2016-05-09T15:15:00Z)
(us-west.dbserver03.rss, 2016-05-09T15:14:30Z)
(us-west.dbserver03.rss, 2016-05-09T15:14:30Z)
(2016-05-09T15:14:00Z, us-east.appserver01.loadavg)
(2016-05-09T15:14:30Z, us-west.dbserver03.rss)
(2016-05-09T15:15:00Z, us-east.appserver01.loadavg)
(2016-05-09T15:14:30Z, us-west.dbserver03.rss)
(series, time) (time, series)
SELECT * WHERE series = ‘us-east.appserver01.loadavg’;
24© Cloudera, Inc. All rights reserved.
Particionamento — Por Range de Tempo (inserts)
Todas as inserções vão para a última partição
Big scans (entre um intervalo grande)
Podem ser paralelizados entre várias partições
25© Cloudera, Inc. All rights reserved.
Particionamento — Por Range de Séries
Inserções são distribuídas entre as partições
Scans ocorrem sobre uma única partição
26© Cloudera, Inc. All rights reserved.
Partições podem ser tornar desbalanceadas,
Resultando em hot spotting
Particionamento — Por Range de Séries
27© Cloudera, Inc. All rights reserved.
Particionamento — Por Hash de Séries (inserts)
Inserções são distribuídas entre as partições
O scan é sobre uma única partição
28© Cloudera, Inc. All rights reserved.
Particionamento — Por Hash de Séries
Com o tempo as partições crescem com
o tempo, e eventualmente serão
grandes demais para em um único
servidor.
29© Cloudera, Inc. All rights reserved.
Particionamento— Por Hash de Séries + Range de Tempo
Inserções podem ser distribuídas entre todas
as partições no último range de tempo.
Big scans (entre um intervalo grande de tempo)
pode ser paralelizado entre as partições
30© Cloudera, Inc. All rights reserved.
Beneficios do Kudu
Benefícios:
• Simplifica bastante a arquitetura da solução. Na Arquitetura Lambda a
ingestão dos dados é simplificada, pois não é necessária a materialização
de várias views;
• O acoplamento da aplicação Web é muito menor. Não é necessário a
criação de nenhuma tabela para uma nova visão (query) e pode usar o
SQL para realizar as consultas. Com o Hbase seria necessário usar a API
Java ou Thrift;
• O Kudu já está preparado para a próxima geração de Hardware, tirando
melhor proveito de SSD e Persistent Memory (3D Xpoint);
31© Cloudera, Inc. All rights reserved.
PRODUCER
KAFKA
Tópico Evento 1
Tópico Evento 2
Regra de Negócio
(Streaming)
Broker de
mensagens
Armazenamento Engine MPP
Exemplo: Caso de uso ideal para Kudu
Arquitetura sem Kudu – Analítico: Relatório Online
JDBC
Dashboard
Web
É Possível,
também...
32© Cloudera, Inc. All rights reserved.
Exemplo: Caso de uso ideal para Kudu
Arquitetura antes do Kudu – Analítico: Relatório Online
PRODUCER
KAFKA
Tópico Evento 1
Tópico Evento 2
Regra de Negócio
(Streaming)
Broker de
mensagens
Armazenamento Engine MPP
Dashboard
Web
JDBC
Batch Layer
Serving Layer
Speed Layer
Stream de
dados
Spark Stream
Processo
Stream
Incrementa as
viewsAdição de novos dados
View
1
View
2
View
3
Hbase (Real Time)
View
1
View
1
View
1
Impala (Parquet)
HDFS
Job Batch
(Spark - Transformação em
formato Parquet)
Processamento
Batch recorrente
merge
Spark
Query
Arquitetura
33© Cloudera, Inc. All rights reserved.
Exemplo: Caso de uso ideal para Kudu
Qual o desafio?
Complexidade:
• Vários componentes para
equilibrar;
• Forte acoplamento da
aplicação;
• Difícil manutenção.
34© Cloudera, Inc. All rights reserved.
Entendendo a complexidade
HBase
Alguns princípios para modelagem Hbase:
• Desenho da solução por caso de uso:
• Leitura, Gravação ou Ambos;
• Design de Schema é a combinação de:
• Design de chaves (linha e coluna);
• Segregação de dados em ”column families”;
• Escolha de compressão e tamanho de blocos;
• ”Denormalization, Duplication, and Intelligent Keys” - DDI
35© Cloudera, Inc. All rights reserved.
Entendendo a complexidade
HBase
Chave-Valor
Ignora Linhas
Ignora Store Files
Filtro
Chave
Desempenho
Aumenta a Cardinalidade
36© Cloudera, Inc. All rights reserved.
Entendendo a complexidade
HBase
ID CLIENTE
1 José
2 Luis
3 Hugo
Tabela: Clientes
ID LIVRO
1 Guerra dos Tronos: As crônicas do Fogo e Gelo
2 Senhor dos Anéis: A sociedade do Anel
3 O Hobbit
4 Harry Potter e a Câmara Sec..
Tabela: Livros
id Id_cli Id_livro data
1 1 2 15/07/2015
2 1 3 11/10/2016
3 2 1 22/03/2016
4 3 1 13/06/2017
5 3 4 11/09/2016
Tabela: Compras
key Id_cli Dt_livro:1 Dt_livro:2 Dt_livro:3 Dt_livro:4
1 1 15/07/2015 11/10/2016
2 2 22/03/2016
3 3 13/06/2017 11/09/2016
CF:f1
37© Cloudera, Inc. All rights reserved.
Entendendo a complexidade
HBase
Complicações:
• Dificuldade de criar um modelo que atenda todas as visões para o
relatório online;
• Para oferecer uma leitura rápida para aplicações Webs, ou análise dados
online, podemos usar jobs MapReduce para criar tabelas otimizadas
para leitura (dados desnormalizados);
• Novas visões podem exigir mudanças nos Jobs MapReduce;
• A aplicação Web (Relatório Online) está fortemente acoplado ao modelo
das tabelas do HBase.
38© Cloudera, Inc. All rights reserved.
Onde o Kudu se aplica?
Financeiro/Seguros
• Stream market data
• Detecção e Prevenção
de Fraude em tempo
Real
• Monitoração de Risco
Varejo
• Ofertas em Real Time
• Indicação de Ofertas
baseadas em localização
Setor Público
• Monitoração Geo-
espacial
• Detecção de Riscos e
Ameaças em Tempo Real
• Monitoração de Saúde
PúblicaServiços
• Monitoração Real-time
de consumo/ofertas
• Grid health monitoring
IoT & Indústrias
• Correlação e
Monitoração de sensores
em Tempo Real
• Manutenção Preditiva
• Garantia de Qualidade
na Manufatura
39© Cloudera, Inc. All rights reserved.
”You must unlearn what you
have learned”
(Filme: Start Wars – Episódio V, 1980-
Mestre Yoda)
40© Cloudera, Inc. All rights reserved.
PRODUCER
KAFKA
Tópico Evento 1
Tópico Evento 2
Regra de Negócio
(Streaming)
Broker de
mensagens
Armazenamento Engine MPP
Utilização do Kudu para Workload Analítico
Relatório Online
JDBC
Dashboard
Web
41© Cloudera, Inc. All rights reserved.
Por onde começar?
Usuários
Baixar o Kudu / VM de teste:
getkudu.io
Lista de discussão:
kudu-user@googlegroups.com
Artigo que mostra a
motivação do Kudu:
getkudu.io/kudu.pdf
Desenvolvedores
Contribuíndo com o Kudu:
github.com/cloudera/kudu (commits)
gerrit.cloudera.org (reviews)
issues.cloudera.org (KUDU JIRA)
Lista de desenvolvimento do
Kudu:
kudu-dev@googlegroups.com
Contribuições e Participações são sempre bem-vindas!
42© Cloudera, Inc. All rights reserved.
Obrigado!

Mais conteúdo relacionado

PPTX
FLISOL 2017 - SQL Server no Linux
PPT
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
PDF
AWS Redshift Primer
PPTX
Cloud Server Embratel
PDF
Filesystem distribuído com hadoop!!!
PDF
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
PPTX
Azure SQL DataWarehouse
PDF
TCO e otimização de custos na AWS
FLISOL 2017 - SQL Server no Linux
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...
AWS Redshift Primer
Cloud Server Embratel
Filesystem distribuído com hadoop!!!
Greenplum: O banco de dados open source massivamente paralelo baseado em Post...
Azure SQL DataWarehouse
TCO e otimização de custos na AWS

Mais procurados (20)

PDF
Otimizando e reduzindo custos na Nuvem da AWS
PPTX
Windows Admin Center
PDF
Tecnologias para mineração de dados nas nuvens
PPT
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
PDF
Melhores práticas de workloads Microsoft na AWS
PDF
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
PDF
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
PPTX
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
PDF
Seu primeiro aplicativo de Big Data
PPTX
Sql server 2019 big data cluster
PDF
Explorando o poder do banco de dados com Amazon Aurora
PDF
Construindo um Data Lake na AWS
PDF
Bancos de dados analíticos open source
PPTX
Rodando SAP na AWS
PPTX
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
PPTX
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
PDF
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
PPTX
Exadata - O Todo é maior que a soma das Partes
PDF
Bancos de Dados gerenciados na nuvem AWS
Otimizando e reduzindo custos na Nuvem da AWS
Windows Admin Center
Tecnologias para mineração de dados nas nuvens
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Melhores práticas de workloads Microsoft na AWS
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Seu primeiro aplicativo de Big Data
Sql server 2019 big data cluster
Explorando o poder do banco de dados com Amazon Aurora
Construindo um Data Lake na AWS
Bancos de dados analíticos open source
Rodando SAP na AWS
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
Exadata - O Todo é maior que a soma das Partes
Bancos de Dados gerenciados na nuvem AWS
Anúncio

Semelhante a TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico (20)

PDF
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
PDF
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
PPTX
IntroduçãO Ao Desenvolvimento Web 2
PDF
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
PDF
Melhores práticas para Arquitetura em Cloud Computing
PPTX
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
PDF
3a Web Aula - Gestão de Tecnologia da Informação.pdf
PPT
Tesi Dados Final
PPTX
Streaming architecture with big data clusters
PDF
Construindo Datalakes Agnósticos de Baixo Custo com Hadoop e Outras Tecnologias
PDF
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
PDF
[DTC21] André Marques - Jornada do Engenheiro de Dados
PDF
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
PDF
Keynote nuvem estaleiro_ics
PDF
Azure Fundamentals (Intensivão Azure)
PPTX
Trabalho de sgbd
PDF
Aws for Developers
PPT
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
PDF
O Livro Completo da Engenharia de Dados.pdf
PPTX
Ruby on Rails for beginners 2.0
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
IntroduçãO Ao Desenvolvimento Web 2
Stream de dados e Data Lake com Debezium, Delta Lake e EMR
Melhores práticas para Arquitetura em Cloud Computing
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
3a Web Aula - Gestão de Tecnologia da Informação.pdf
Tesi Dados Final
Streaming architecture with big data clusters
Construindo Datalakes Agnósticos de Baixo Custo com Hadoop e Outras Tecnologias
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
[DTC21] André Marques - Jornada do Engenheiro de Dados
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Keynote nuvem estaleiro_ics
Azure Fundamentals (Intensivão Azure)
Trabalho de sgbd
Aws for Developers
Planejamento e Gerenciamento de Capacidade para Sistemas Distribuídos
O Livro Completo da Engenharia de Dados.pdf
Ruby on Rails for beginners 2.0
Anúncio

Mais de tdc-globalcode (20)

PDF
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
PDF
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
PDF
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
PDF
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
PDF
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
PDF
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
PDF
TDC2019 Intel Software Day - Inferencia de IA em edge devices
PDF
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
PPT
Trilha .Net - Programacao funcional usando f#
PDF
TDC2018SP | Trilha Go - Case Easylocus
PDF
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
PDF
TDC2018SP | Trilha Go - Clean architecture em Golang
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
PDF
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
PDF
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
PDF
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
PDF
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
PDF
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
PDF
TDC2018SP | Trilha .Net - .NET funcional com F#
PDF
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - Inferencia de IA em edge devices
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha .Net - Programacao funcional usando f#
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core

Último (20)

PDF
A Revolução Francesa de 1789 slides história
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PDF
Cantores.pdf-Deslandes, Tinoco e Zambujo
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PPTX
disciplulado curso preparatorio para novos
PPT
História e Evolução dos Computadores domésticos
PDF
Uma Introdução às Ciências do Alcorão (Islam)
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PPTX
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PPTX
Ciências da Natureza e suas áreas de desenvolvimento
PDF
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
O Romantismo e a identidade brasileira..
PPTX
Revolução Industrial - Aula Expositiva - 3U4.pptx
PPT
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
A Revolução Francesa de 1789 slides história
INDÚSTRIA_ Histórico da industrialização.pptx
Cantores.pdf-Deslandes, Tinoco e Zambujo
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
disciplulado curso preparatorio para novos
História e Evolução dos Computadores domésticos
Uma Introdução às Ciências do Alcorão (Islam)
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
Ciências da Natureza e suas áreas de desenvolvimento
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
Filosofia Ocidental Antiga 2025 - versão atualizada
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
O Romantismo e a identidade brasileira..
Revolução Industrial - Aula Expositiva - 3U4.pptx
HISTOLOGIA VEGETAL - tecidos vegetais.ppt

TDC2017 | POA Trilha BigData - Utilizando o Apache Kudu como Workload Analítico

  • 1. 1© Cloudera, Inc. All rights reserved. Apache Kudu Fast Analytics on Fast Data Alan Silva acs@cloudera.com Claudio Takamiya ct@cloudera.com
  • 2. 2© Cloudera, Inc. All rights reserved. Alan Silva Ficha criminal • Cumpriu a primeira pena finalizando o seu Bacharelado em Matemática; • Reincidente, concluiu seu mestrado na UFSCar; • Trabalhou com arquitetura e desenvolvimento em algumas empresas de segurança da informação e telecomunicações; • Com o intuito de reduzir a pena, participou de forma voluntária em alguns projetos opensource; • Hoje atua como cúmplice direto na adoção de projetos com Big Data em grandes organizações; Silva Alan Senior Solutions Architect
  • 3. 3© Cloudera, Inc. All rights reserved. Claudio Seidi Takamiya Ficha criminal • Cumpriu pena na Universidade de São Paulo - Bacharelado em Ciência da Computação • Solto por bom comportamento depois de 4 anos; • Fez parte do grupo de Arquitetura da Telefonica – Vivo. • Realiza PoC nas empresas; • Não coloca comentários em seu código; Takamiya Claudio Senior Systems Engineer
  • 4. 4© Cloudera, Inc. All rights reserved.
  • 5. 5© Cloudera, Inc. All rights reserved. Vendor Integration BI/Analytics ETL Database OS/Cloud/ System Management Hardware
  • 6. 6© Cloudera, Inc. All rights reserved. ”Para quem só sabe usar martelo, todo problema é um prego” (Abraham Maslow)
  • 7. 7© Cloudera, Inc. All rights reserved. Apache Kudu • Projeto licenciado e governado pela Apache Foundation (open source) • Utiliza modelo estruturado de dados • Baseado em tabelas • Suas tabelas são divididas em tablets (que é o equivalente a partições) • Sua arquitetura suporta uma distribuição dos dados de forma geografica, sistema ativo/ativo
  • 8. 8© Cloudera, Inc. All rights reserved. O que o Apache Kudu é? STORAGE SYSTEM for TABLES of STRUCTURED DATA Não é um SQL engine, nem um query planner, nem um optimizer. Sistema de armazenamento que permite que você consiga recuperar seus dados rapidamente de forma randômica ou através de full scan e altamente escalável. A lógica de dados é apresentada ao cliente como linhas e um conjunto finito de colunas. Armazenado em formato colunar, as tabelas são particionadas sobre os tablets que são gerenciados pelos servidores de tablets. Os tablets são replicados e gerenciados através do conceito de consenso Raft. As colunas são altamente tipadas Numero finito de colunas Remover e adicionar colunas apenas por ALTER TABLE
  • 9. 9© Cloudera, Inc. All rights reserved. Storage para Dados Analíticos Atualizáveis Analítico simples em real-time e atualizações com Apache Kudu Kudu: Storage para análises rápidas em “dados rápidos” • Simplifica arquitetura para construir aplicações analíticas real-time • Projetada para a próxima geração de hardware para um desempenho analítico superior através dos frameworks • Engine de Armazenamento nativo para o Ecossistema Hadoop Flexibilidade da ferramenta adequada para cada caso de uso em uma única plataforma • Base de Dados analítco: Kudu + Impala • Aplicações real-time simples com Kudu + Spark Casos de Uso • Dados de Séries Temporais • Analítico de Dados de Maquinas (IoT) • Relatórios Online (Online reporting) FILESYSTEM HDFS NoSQL HBASE INGEST – SQOOP, FLUME, KAFKA DATA INTEGRATION & STORAGE SECURITY – SENTRY RESOURCE MANAGEMENT – YARN UNIFIED DATA SERVICES BATCH STREAM SQL SEARCH MODEL ONLINE DATA ENGINEERING DATA DISCOVERY & ANALYTICS DATA APPS SPARK, HIVE, PIG SPARK IMPALA SOLR SPARK HBASE COLUMNAR STORE KUDU
  • 10. 10© Cloudera, Inc. All rights reserved. O que o Kudu não é • Não é uma interface SQL • Somente a camada de armazenamento • “BYOSQL” – Bring-your-own SQL • Não é um sistema de arquivos • Os dados devem ter estrutura tabular • Não é uma aplicação que roda sobre o HDFS • Não é um substituto do HDFS ou do HBase • Sempre é necessário escolher qual a melhor forma de armazenamento para cada caso • Cloudera continuará investindo nos três
  • 11. 11© Cloudera, Inc. All rights reserved. Interfaces do Kudu • APIs NoSQL-style • Insert(), Update(), Upsert(), Update-Ignore(), Delete(), Scan() • Java, C++, limited Python • Integrações com MapReduce, Spark e Impala • Sem acesso direto aos arquivos de tablet do Kudu • Possui suporte a autenticação, autorização e encriptação
  • 12. 12© Cloudera, Inc. All rights reserved. Características de Performance Aproveita a CPU ao máximo • Escrito em C++, utiliza instruções SIMD e possui compilação JIT com LLVM A latência depende da capacidade do hardware • Esperado respostas em milisegundos com SSDs e tecnologias futuras Não possui garbage collection permitindo o gerenciamento de grandes footprints de memória sem pausas Bloom filters reduzindo a necessidade de vários acessos ao disco
  • 13. 13© Cloudera, Inc. All rights reserved. HDFS Fast Scans, Analítico e Processamento de Dados Armazenados Atualizações rápidas on-line & Serviço de dados Armazenamento (Active Archive) Análises Rápidas (em dados que mudam muito rapidamente ou atualizados frequentemente) Onde o Kudu se encaixa Casos de uso que ficam entre HDFS e HBase são difíceis de gerenciar Estático Mudanças Rápidas Atualizações Frequentes HBase Append-Only Real-Time Arquitetura Híbrida Complexa Gap Analítico Rítmo das Análises RítmodosDados
  • 14. 14© Cloudera, Inc. All rights reserved. HDFS Fast Scans, Analítico e Processamento de Dados Armazenados Atualizações rápidas on-line & Serviço de dados Armazenamento (Active Archive) Análises Rápidas (em dados que mudam muito rapidamente ou atualizados frequentemente) Onde o Kudu se encaixa Casos de uso que ficam entre HDFS e HBase são difíceis de gerenciar Estático Mudanças Rápidas Atualizações Frequentes HBase Append-Only Real-Time Gap Analítico Rítmo das Análises RítmodosDados Cobertura Aplicações Analíticas Modernas geralmente requerem fluxo complexo de dados & dificuldade de integrar Hbase & HDFS
  • 15. 15© Cloudera, Inc. All rights reserved. Em que situações o Kudu é indicado? Uma combinação simultânea de leituras e escritas sequencias e randômicas Consegue inserir dados de séries temporais em real time? Quanto demora a preparação da análise? Os resultados saem em tempo hábil para tomar alguma ação? Consegue lidar com grandes volumes de dados gerados por máquinas? Tem ferramentas para identificar ameaças? Seu sistema consegue fazer machine learning? Quão rápido você adiciona os seus dados para seu banco de dados? Você está enfrentando um tradeoff entre a capacidade de realizar análises amplas e a capacidade de fazer atualizações? Você omite dados? Dados de Séries Temporais Analítico em Dados de Máquinas Online Reporting
  • 16. 16© Cloudera, Inc. All rights reserved. Melhor forma de usar Kudu se beneficia com a Integração com o ecossistema Hadoop Spark – Stream Processing para Kudu • Padrão aberto para processamento em stream; • Eficaz em automação de processo de decisão e Machine Learning; • Casos de Usos: Dados de Séries Temporais & Machine Data Analytics Impala – High-Performance BI & SQL para Kudu • Padrão aberto para queries SQL interativas; • Capacidade de carga de trabalho de banco de dados analítico com flexibilidade, escalabilidade e arquitetura aberta • Casos de uso incluso: Online Reporting
  • 17. 18© Cloudera, Inc. All rights reserved. ”Hoje não vou dar, vou é distribuir” (Filme :Bruna Surfistinha, 2011)
  • 18. 19© Cloudera, Inc. All rights reserved. Arquitetura do Kudu Principais componentes Kudu • É um engine de armazenamento standalone • Armazena dados ”tipados” em modelo tabular para acessos rápidos • Tabelas Kudu são tipicamente de terabytes ou petabytes de tamanho • O design do Kudu é para acesso randômico e queries analíticas em dados estruturados: ✓ É possível realizar varreduras (scans), pesquisas randômicas, e atualizações nos dados em tabelas. • Os dados armazenados no Kudu são organizados em tabelas: ✓ As tabelas são particionadas em pedaços menores chamados de tablets ✓ Os tablets são armazenados nos servidores Kudu Tablet
  • 19. 20© Cloudera, Inc. All rights reserved. Arquitetura do Kudu Formato colunar e Tipos Explícitos Kudu • Os tipos de dados em Kudu são explicitos: ✓ Diferente do estilo NoSQL ”tudo é byte” ✓ Possibilita o uso de codificações específicas por tipos de colunas, ex: bit-packing para inteiros; • Tipos explícitos facilita a disponibilização de metadados no estilo SQL para outras ferramentas usadas em BI ou ferramentas de exploração de dados A B C A1 B1 C1 A2 B2 C2 A3 B3 C3 A1 A2 A3 B1 B2 B3 C1 C2 C3 A1 B2 C1 A2 B2 C2 A3 B3 C3 Kudu: armazenamento baseado em colunas Banco de dados relacional: armazenamento baseado em linha
  • 20. 21© Cloudera, Inc. All rights reserved. Arquitetura do Kudu Acesso e Ingestão de Dados • O Kudu possui conectores que suportam diversos engines SQL: ✓ Apache Impala ✓ Spark SQL • Junto com o Kudu é empacotado um componente Sink para o Apache Flume • Um conector Apache Sqoop para Kudu já está disponível com um patch Apache Impala Conectores SQL Sink
  • 21. 22© Cloudera, Inc. All rights reserved. Modelando tabelas para Kudu Critérios de um bom design Critérios: • Os dados devem ser distribuídos de forma que a leitura e a gravação sejam espalhadas uniformemente entre os tablet servers (Particionamento); • Os tablets devem ter um crescimento a uma taxa uniforme e a carga deve ser uniforme entre os tablets (Particionamento); • Os ”scans” devem ler o mínimo de dados necessários para atender uma query (Desenho da chave primária);
  • 22. 23© Cloudera, Inc. All rights reserved. Seleção de Chave Primária • Exemplo – Série Temporal: • ”time” - timestamp • ”series” - {region, server, metric} (us-east.appserver01.loadavg, 2016-05-09T15:14:00Z) (us-east.appserver01.loadavg, 2016-05-09T15:15:00Z) (us-west.dbserver03.rss, 2016-05-09T15:14:30Z) (us-west.dbserver03.rss, 2016-05-09T15:14:30Z) (2016-05-09T15:14:00Z, us-east.appserver01.loadavg) (2016-05-09T15:14:30Z, us-west.dbserver03.rss) (2016-05-09T15:15:00Z, us-east.appserver01.loadavg) (2016-05-09T15:14:30Z, us-west.dbserver03.rss) (series, time) (time, series) SELECT * WHERE series = ‘us-east.appserver01.loadavg’;
  • 23. 24© Cloudera, Inc. All rights reserved. Particionamento — Por Range de Tempo (inserts) Todas as inserções vão para a última partição Big scans (entre um intervalo grande) Podem ser paralelizados entre várias partições
  • 24. 25© Cloudera, Inc. All rights reserved. Particionamento — Por Range de Séries Inserções são distribuídas entre as partições Scans ocorrem sobre uma única partição
  • 25. 26© Cloudera, Inc. All rights reserved. Partições podem ser tornar desbalanceadas, Resultando em hot spotting Particionamento — Por Range de Séries
  • 26. 27© Cloudera, Inc. All rights reserved. Particionamento — Por Hash de Séries (inserts) Inserções são distribuídas entre as partições O scan é sobre uma única partição
  • 27. 28© Cloudera, Inc. All rights reserved. Particionamento — Por Hash de Séries Com o tempo as partições crescem com o tempo, e eventualmente serão grandes demais para em um único servidor.
  • 28. 29© Cloudera, Inc. All rights reserved. Particionamento— Por Hash de Séries + Range de Tempo Inserções podem ser distribuídas entre todas as partições no último range de tempo. Big scans (entre um intervalo grande de tempo) pode ser paralelizado entre as partições
  • 29. 30© Cloudera, Inc. All rights reserved. Beneficios do Kudu Benefícios: • Simplifica bastante a arquitetura da solução. Na Arquitetura Lambda a ingestão dos dados é simplificada, pois não é necessária a materialização de várias views; • O acoplamento da aplicação Web é muito menor. Não é necessário a criação de nenhuma tabela para uma nova visão (query) e pode usar o SQL para realizar as consultas. Com o Hbase seria necessário usar a API Java ou Thrift; • O Kudu já está preparado para a próxima geração de Hardware, tirando melhor proveito de SSD e Persistent Memory (3D Xpoint);
  • 30. 31© Cloudera, Inc. All rights reserved. PRODUCER KAFKA Tópico Evento 1 Tópico Evento 2 Regra de Negócio (Streaming) Broker de mensagens Armazenamento Engine MPP Exemplo: Caso de uso ideal para Kudu Arquitetura sem Kudu – Analítico: Relatório Online JDBC Dashboard Web É Possível, também...
  • 31. 32© Cloudera, Inc. All rights reserved. Exemplo: Caso de uso ideal para Kudu Arquitetura antes do Kudu – Analítico: Relatório Online PRODUCER KAFKA Tópico Evento 1 Tópico Evento 2 Regra de Negócio (Streaming) Broker de mensagens Armazenamento Engine MPP Dashboard Web JDBC Batch Layer Serving Layer Speed Layer Stream de dados Spark Stream Processo Stream Incrementa as viewsAdição de novos dados View 1 View 2 View 3 Hbase (Real Time) View 1 View 1 View 1 Impala (Parquet) HDFS Job Batch (Spark - Transformação em formato Parquet) Processamento Batch recorrente merge Spark Query Arquitetura
  • 32. 33© Cloudera, Inc. All rights reserved. Exemplo: Caso de uso ideal para Kudu Qual o desafio? Complexidade: • Vários componentes para equilibrar; • Forte acoplamento da aplicação; • Difícil manutenção.
  • 33. 34© Cloudera, Inc. All rights reserved. Entendendo a complexidade HBase Alguns princípios para modelagem Hbase: • Desenho da solução por caso de uso: • Leitura, Gravação ou Ambos; • Design de Schema é a combinação de: • Design de chaves (linha e coluna); • Segregação de dados em ”column families”; • Escolha de compressão e tamanho de blocos; • ”Denormalization, Duplication, and Intelligent Keys” - DDI
  • 34. 35© Cloudera, Inc. All rights reserved. Entendendo a complexidade HBase Chave-Valor Ignora Linhas Ignora Store Files Filtro Chave Desempenho Aumenta a Cardinalidade
  • 35. 36© Cloudera, Inc. All rights reserved. Entendendo a complexidade HBase ID CLIENTE 1 José 2 Luis 3 Hugo Tabela: Clientes ID LIVRO 1 Guerra dos Tronos: As crônicas do Fogo e Gelo 2 Senhor dos Anéis: A sociedade do Anel 3 O Hobbit 4 Harry Potter e a Câmara Sec.. Tabela: Livros id Id_cli Id_livro data 1 1 2 15/07/2015 2 1 3 11/10/2016 3 2 1 22/03/2016 4 3 1 13/06/2017 5 3 4 11/09/2016 Tabela: Compras key Id_cli Dt_livro:1 Dt_livro:2 Dt_livro:3 Dt_livro:4 1 1 15/07/2015 11/10/2016 2 2 22/03/2016 3 3 13/06/2017 11/09/2016 CF:f1
  • 36. 37© Cloudera, Inc. All rights reserved. Entendendo a complexidade HBase Complicações: • Dificuldade de criar um modelo que atenda todas as visões para o relatório online; • Para oferecer uma leitura rápida para aplicações Webs, ou análise dados online, podemos usar jobs MapReduce para criar tabelas otimizadas para leitura (dados desnormalizados); • Novas visões podem exigir mudanças nos Jobs MapReduce; • A aplicação Web (Relatório Online) está fortemente acoplado ao modelo das tabelas do HBase.
  • 37. 38© Cloudera, Inc. All rights reserved. Onde o Kudu se aplica? Financeiro/Seguros • Stream market data • Detecção e Prevenção de Fraude em tempo Real • Monitoração de Risco Varejo • Ofertas em Real Time • Indicação de Ofertas baseadas em localização Setor Público • Monitoração Geo- espacial • Detecção de Riscos e Ameaças em Tempo Real • Monitoração de Saúde PúblicaServiços • Monitoração Real-time de consumo/ofertas • Grid health monitoring IoT & Indústrias • Correlação e Monitoração de sensores em Tempo Real • Manutenção Preditiva • Garantia de Qualidade na Manufatura
  • 38. 39© Cloudera, Inc. All rights reserved. ”You must unlearn what you have learned” (Filme: Start Wars – Episódio V, 1980- Mestre Yoda)
  • 39. 40© Cloudera, Inc. All rights reserved. PRODUCER KAFKA Tópico Evento 1 Tópico Evento 2 Regra de Negócio (Streaming) Broker de mensagens Armazenamento Engine MPP Utilização do Kudu para Workload Analítico Relatório Online JDBC Dashboard Web
  • 40. 41© Cloudera, Inc. All rights reserved. Por onde começar? Usuários Baixar o Kudu / VM de teste: getkudu.io Lista de discussão: kudu-user@googlegroups.com Artigo que mostra a motivação do Kudu: getkudu.io/kudu.pdf Desenvolvedores Contribuíndo com o Kudu: github.com/cloudera/kudu (commits) gerrit.cloudera.org (reviews) issues.cloudera.org (KUDU JIRA) Lista de desenvolvimento do Kudu: kudu-dev@googlegroups.com Contribuições e Participações são sempre bem-vindas!
  • 41. 42© Cloudera, Inc. All rights reserved. Obrigado!