queries em big data: o poder dos bancos de dados baseados ... · queries em big data: o poder dos...

35
Queries em Big Data: o poder dos bancos de dados baseados em GPU Tiago Vinícius [email protected] linkedin.com/in/viniremigio/

Upload: vutruc

Post on 09-Dec-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

Queries em Big Data: o poder dos

bancos de dados baseados em

GPU

Tiago Vinícius

[email protected]

linkedin.com/in/viniremigio/

• Recife-PE

• Bacharel em Ciência da Computação

pelo CIn-UFPE

• MBA em Big Data pela FIAP

• Atualmente: Data Engineer no Serasa

Experian DataLab

• Anterior: elo7, UOL

Tiago Vinícius (Vini)

Agenda

• Características das GPU accelerated databases

• Quais os principais players

• Exemplos com MapD

• Tradeoffs e considerações finais

Graphics Processing Units

• Alta capacidade de paralelismo

• CPUs: ~ 32 – 40 cores

• GPUs: ~ 5000 cores

• GPU processa workloads até 100x mais rápido comparado com

CPUs

• Redução na quantidade requerida de servidores

• “Brute force horizontal scaling”

• Disponível nos principais Cloud Providers (AWS, GCP,

Azure…)

Nvidia Tesla V100

Comparação GPU vs CPU - Teraflops

Fonte: Introduction to GPU for Data Analytics

Veículos autônomos

GPU: Aplicações

Computação gráfica

Deep learning

Realidade virtual

Bancos de dados e Analytics Workload

Mineração criptomoedas

GPU Accelerated Databases• Otimizadas para utilizar o paralelismo das GPUs para processar

queries

• JOIN, WHERE, GROUP BY,...

• Projetadas com foco em Analytics

• Alta performance na ingestão de dados

• Capacidade de renderização e visualização em tempo real

• Complemento ao ecossistema Hadoop

• Data Science: Analise exploratória, feature engineering e interações em

tempo real

• Escalabilidade horizontal (adicionando máquinas)

• Escalabilidade vertical (adicionando GPUs)

GPU Accelerated Databases: Cenários

• Interações emredes sociais

• Logs de sensores e outros dispositivosmóveis (IoT + Big Data)

• Dados geolocalizados

• Telecom

• Finanças

• Mobilidade urbana

• Retail

• Energia

Principais GPU Databases

MapD – Massive parallel Database

• “In-memory, column store, relational database”• Carrega a maior quantidade de registros possível na memória da GPU

• Performático com bilhões de registros• (Bases de 5TB – 10TB)

• Processam queries em poucos milissegundos

• Possui engine de renderização e ferramenta de visualização própria (MapD Immerse)

• Diferentes formas de ingestão: Sqoop, Kafka, Spark

• Aplicações: analytics, geolocalização e análise exploratória em big data

MapD

• Queries com SQL (JDBC Client)

• MapD Core: Single node ou Multi node

• Single node suporta 8 GPUs NVIDIA Tesla P40 • 192GB of GPU RAM

• Ingestão de dados padrão• Criação de tabela e ingestão sem fases de pré-processamento

• Ideal para cenários de streaming

• Operações como WHERE, GROUP BY e JOIN sãootimizadas para executar nativamente na GPU

• MapD Core Open source: github.com/mapd

https://www.mapd.com/platform/

MapD: Componentes

MapD Whitepaper: http://go3.mapd.com/resources/whitepapers/mapd/lp

Demo: NYC Taxi Drives

Ingestão de dados

sqoop-export\--table sptrans\--export-dir hdfs:///data/example\--fields-terminated-by ";"\--connect "jdbc:mapd:data.example.com:9091:mapd"\--driver com.mapd.jdbc.MapDDriver\--direct\--batch

# Producercat example.csv | bin/kafka-console-producer.sh --broker-list localhost:9097--topic example_topic

# Consumer./bin/kafka-simple-consumer-shell.sh --broker-listlocalhost:9097 --topic example_topic--from-beginning | /home/mapd2/build/bin/StreamInsert --port 9091 -pHyperInteractive --database mapd --table example --user mapd --batch 1

(Stream Insert)

df = spark.read.option("header", "true").csv(args.input)

df.createOrReplaceTempView(“smartzones_data")df = spark.sql("""SELECT data, hora, linha, carro, latitude, longitudeFROM smartzones_data""")

df.write.jdbc(url="jdbc:mapd:<HOST>:9091:mapd", table="smartzones_data", mode="append", properties= {"driver":"com.mapd.jdbc.MapDDriver","user":“<USER>",

"password":“<PASSWORD>"})

MapD Immerse:

Exemplos de Visualizações(mapd.com/demos)

Testes com MapD

no DataLab

MapD: Setup e Uso• Motivação: Projeto Polis

• MapD Versão Community

• Container nvidia-docker

• Máquinas com GPU on-premise

• Nvidia K80 (~2500 cores, 12GB RAM)

• Principais usos

• Combinação de dados geolocalizados com bases Serasa

• Análise exploratória / feature engineering de novas bases

• Fluxo:

• Imputação das bases no HDFS

• Criação de tabelas no MapD

• Spark import job: HDFS -> MapD

• Criação de Dashboards

• Para produção: Família p2 AWS ou MapD Cloud

MapD: Limitações

• On-premise• custo inicial é alto

• Ao atualizar kernel, verificar atualização de drivers também

• Pouca documentação (vem melhorando)

• Comunidade e fóruns ainda são pequenos

• Driver JDBC ainda em desenvolvimento

• Não tem DELETE, nem ADD COLUMN!!! (v3.3.0)

• Não é compatível para algumas GPUs

• LDAP, HA apenas na versão EE

Qual GPU database devo

escolher?

https://hackernoon.com/which-gpu-database-is-right-for-me-6ceef6a17505

Database Tipo Cloud Pontos importantes

MapD Colunar

In-memory

AWS Marketplace

MapD Cloud

Azure

Visualização built-in (Immerse)

in-memory

Possui versão community

MapD Core Open Source

SQreamDB Colunar Alibaba

AWS EC2 (beta)

Azure

Visualização com Tableau

Escala para lidar com volumes na

ordem de petabytes

Kinetica Relacional

In-memory

AWS Marketplace

GCP

in-memory

Visualização built-in (Reveal)

BlazingDB Relacional AWS Marketplace

Azure

Possui versão community

Brytlyt Relacional AWS Marketplace Visualização built-in (Spotlyt)

Possui Versão Community

Blazegraph Grafo AWS Neptune* 50bi nodes (única máquina)

RDF/Sparql e Tinkerpop/Gremlim

Versão community (sem GPU)

Considerações finais

• Avaliar se o business necessita da tecnologia

• GPU Databases ainda precisam amadurecer

• Bases trial dificultam a avaliação

• Adoção ainda pequena

• Visualizações: Mapas e Gráficos

• Iterações praticamente sem latência de queries

• Integração com arquitetura de Big Data

• Verificar custos

• On-premise: Aquisição de GPUs

• Cloud: Licenças, reserved instances

Dúvidas?

Contatos

[email protected]

linkedin.com/in/viniremigio/

Referênciashttps://www.nextplatform.com/2016/09/22/pushing-database-scalability-gpus/

https://www.serasaexperian.com.br/p/inovacao-datalab/polis

https://www.nextplatform.com/2016/03/30/mapd-gpu-database-looks-forward-heftier-iron/

https://info.sqream.com/hubfs/pdf/SQream%20DB%20Technical%20Whitepaper.pdf

https://www.zdnet.com/article/gpu-databases-are-coming-of-age/

https://www.kdnuggets.com/2017/08/rise-gpu-databases.html

https://hackernoon.com/which-gpu-database-is-right-for-me-6ceef6a17505

https://wikibon.com/next-kinetica-mapd-sqream-gpu-database-vendors/

https://www.mapd.com/demos

Mizel & Biery. Introduction to GPU for Data Analytics

https://www.nextplatform.com/2016/09/22/pushing-database-scalability-gpus/

https://www.safaribooksonline.com/library/view/strata-data-conference/9781491976326/video316575.html

https://www.blazegraph.com/whitepapers/Blazegraph-gpu_InDetail_BloorResearch.pdf

https://www.youtube.com/watch?v=XkYH5Drj4Iw&t=55s