Post on 09-Dec-2018
Queries em Big Data: o poder dos
bancos de dados baseados em
GPU
Tiago Vinícius
vinicius.remigio@gmail.com
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…)
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
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
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: 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
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
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