Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Big Query - Escalabilidade Infinita para os seus Dados
1. BIGQUERY
ESCALABILIDADE INFINITA
PARA OS SEUS DADOS
Alvaro Viebrantz
Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz
2. O que vamos ver hoje ?
O que é o
BigQuery ?
Cenários
de Uso
Demos
3.
4. O que é o BigQuery
Resumão
• Banco de dados totalmente gerenciado
• Escala de acordo com sua demanda
• Armazenamento
• Consulta
• Interface SQL
• Preço baseado em uso
• Armazenamento
• Consulta
5. O que é o BigQuery
Resumão
• Dataset
• Conjunto de tabelas
• Tables
• Views
• User Defined Functions - UDF
• Javascript e até WebAssembly
• Consultas Agendadas - Scheduled Query
7. Exemplo de escalabilidade
Benchmark feito em 2016 - Muitas melhorias foram feitas
• Base dados da Wikipedia no BigQuery
• 100 bilhões de linhas
• 7 TB
• https://cloud.google.com/blog/products/gcp/anatomy-of-a-bigquery-query
8. Vamos parar pra pensar
O que é necessário pra isso rodar em 30s ?
• Problema :
• Leitura de ~1TB ( 4TB descomprimido )
• 100 bilhões de expressões regulares
9. Vamos parar pra pensar
O que é necessário pra isso rodar em 30s ?
• Infra estimada
• 330 discos lendo a 100MB/sec para ler 1TB
• Provavelmente esse dados pra distribuído, então precisamos de rede boa pra
transferir isso.
• 3300 núcleos pra descomprimir e processar todas as linhas. Levando em
consideração que cada operação demore 1 micro seg.
• 100 bi / 1useg — 100 mil segs / 30 segs — 3300 nucleos
10. Por baixo dos panos
Como ele funciona ?
• Baseado em vários projetos no
Google.
• Borg - Pai do Kubernetes
• Colossus - Sistema de Arquivos
Distribuidos
• Jupiter - Rede na escala de
Petabytes
• Dremel - Motor de Execução
Evolução do Map Reduce
• 🌟 White Papers disponíveis 🌟
11. Particionamento e Clustering
Importante para varrer uma quantidade menor de dados
• Colunar Store
• Apenas colunas consultadas contam - Não use select *
• Particionamento
• Timestamp - Padrão por dia
• Integer Range ⭐
• Clustering
• Agrupar dados co-relatos
• Vamos ver isso na prática 😉
12. Preço Geral
Sob demanda
• Armazenamento ( Active vs Long Term )
• $0.020 por GB Ativo e $0.010 por GB
• Streaming Insert
• $0.010 por 200MB -> $0.050 por GB -> $51.2 por TB
• Consulta sob Demanda
• $5.00 por TB lido
• Leitura baixo nivel - BigQuery Storage API
• $1.10 por TB
13. Várias coisas são grátis
Dá pra fazer bastante coisa
• Carregar, Copiar e Exportar Dados
• Operações administrativas
• Re-calcular partições e clustering
• Cota Grátis
• 10 GB de Armazenamento Long Term e Active grátis.
• 1TB lido por Mês
• Não precisa de cartão pra começar
15. Throughput vs Latência
Não é voltado para baixa latência e como banco transacional
• Nenhuma operação demora menos de alguns segundos
• Inaceitável para um sistema transacional
• Séries temporais
• Telemetria e Dados históricos
• Data warehouse
• Preferencialmente usar de forma Imutável / Append Only
• Mas também tem suporte para DML - Update/Delete
• Logs distribuido
16. Análise de Dados em Geral
Não precisa pensar em infra para fazer sua analise
• Rodar local pode não ser possível
• Uma base de dados nem tão grande já pode rodar bem lento em um
banco tradicional
• Linguagem SQL permite muitas possibilidades
18. NYC Citi Bike Dataset
Dados de uso/empréstimos de bicicletas em Nova York
• www.citibikenyc.com/system-data
• Dataset até 2017
• 5 GB
• 33 milhões de linhas
• Disponível no BigQuery
19. Carregando os dados
Qual forma mais facil de analisar ?
• Python ? R ? Pandas ?
• Precisa de bastante memória
• ~9GB em memória
• 3 minutos para carregar
20. Carregando os dados
Qual forma mais facil de analisar ?
• PostgreSQL
• 4 minutos para carga
• BigQuery
• 1 minuto para carga
• Ambos aceitáveis na carga
• Vamos as consultas ?
21. O que queremos saber
Quais informações extrair do conjuntos de dados
• Estações com maior saídas de percurso
• Quantas corridas iniciam e terminam na mesma estação
• Corridas iniciam e terminam em estações diferentes, quais as mais frequentes ?
• Que tipos de clientes mais usam por dia, assinantes ou não assinantes ?
22. Resultados
⚡⚡⚡
• Estações com maior saídas de percurso
• BQ (1.4s) vs Postgres (~30s)
• Quantas corridas iniciam e terminam na mesma estação
• BQ (0.8s) vs Postgres (~12s)
• Corridas iniciam e terminam em estações diferentes, quais as mais frequentes ?
• BQ (3.4s) vs Postgres (~4m30s)
• Que tipos de clientes mais usam por dia, assinantes ou não assinantes ?
• BQ (1.5s) vs Postgres (~1m10s)
25. Wiki Data
Dados abertos da Wikipedia mais estruturados
• Big Data ?
• Pageviews em 2019
• 2.3 TB
• 57 bilhões de linhas
• Wikidata
• 1TB
• 63 milhões de linhas
33. BigQuery ML
Machine Learning direto no banco
• Use Machine Learning com SQL !!!
• Alguns modelos básico
• Regressão Linear, Regressão Logistica Binária/Multi classe e KMeans
• Suporta importação de modelos do Tensorflow !!!
• De graça !!!
• A infra no BigQuery é cobrada baseada na consulta e dados
armazenados
35. Dados de Natalidade
Regressão linear para estimar peso de bebe
• Dataset Publico no BigQuery
• 22 GB de Dados
• 100 milhões de linhas
• Vamos estimar peso do bebe baseado em:
• Semanas de gravidez
• Sexo do Bebe
• Idade da mãe
• Raça da mãe
36. Voltando ao exemplo das Bikes
Clusterizar estações de bikes
• Agrupar por estações com o mesmo comportamento
• Baseado em :
• Quantidade de passeios
• Distância do centro
• Média de duração do passeio
• Quais estações tem menos movimento ?
• Quais estações tem mais movimento e com durações menores ?
38. BigQuery Federated Data Sources
Dados externos lidos pelo BigQuery
• Sua escolha para montar seu Data Lake
• Planilhas do Google Sheets
• Arquivos no Google Cloud Storage
• CSV e JSON
• Avro, ORC, Parquet - BigData
• BigTable - HBase gerenciado pelo Google
• De graça
• Cobrança pelo infra usada pelo BigQuery
48. 48
Google Data Studio
Obter insight dos dados armazenados
• Ferramenta para visualização de
dados
• Diversas fontes de dados
• SQL, Google Analytics, BigQuery,
Arquivos CSV, etc
• User friendly
• Gratuito
49. BI Engine
Se livrar do problema da latência
• Consultas in Memory
• Compatível com o Data Studio por enquanto
• Preço por GB alocado
• $0.0416 por GB por hora
• $30.36 por GB por mês
50. Cloud Dataflow
Processamento de dados em Streaming e Batch
• Baseado no projeto Open Source Apache Beam
• Dataflow SQL - Converte uma consulta SQL em pipeline de processamento
Cloud Composer
Escalonamento de recursos e infra em larga escala
• Baseado no projeto Open Source Airflow
Cloud Data Fusion
Monte pipelines de ETL em larga escala usando interface gráfica
• Baseado no projeto Open Source CDAP
51. Cloud Data Loss Prevention
Obfuscação de dados e prevenção de vazamento de informações
• Pode ser adicionado ao seu fluxo de ETL
• Preparar conjunto de dados para que sejam menos invasivos
Cloud Data Prep
Limpeza de conjunto de dados
• Preparar um dataset antes de salvar no banco e ser analisado
• Aplicar transformações de dados
• Preencher falhas
52. AutoML
Machine Learning as a Service
• Treinamento de modelos em diversos formatos
• Auto ML Vision
• Auto ML Language
• Auto ML Tables
53. BigQuery tem suporte a GIS
Consultas geo espaciais
• Tem suporte a funções avançadas de GIS
• Points, Poligons, Multi-Poligons
• WKT, WK8, GeoJSON