O fim do Big Data (2023)
(motherduck.com)- Com base na experiência inicial de engenharia no BigQuery, o gargalo em muitas organizações estava mais na forma de usar os dados e na estrutura de custos do que no tamanho dos dados
- Pelo feedback de clientes do BigQuery e do setor, a maioria dos data warehouses tinha menos de 1 TB, e mesmo entre os clientes mais ativos a mediana era bem menor que 100 GB
- A separação entre armazenamento e computação na nuvem aumentou muito o volume armazenado, mas a demanda de computação analítica não cresceu na mesma proporção, porque se concentra em dados recentes e agregações
- No BigQuery, 90% das consultas de clientes que gastavam mais de US$ 1.000 por ano processavam menos de 100 MB, e mesmo clientes com datasets enormes não executavam consultas grandes com frequência
- Dados antigos podem se tornar passivo por causa de regulação, litígios, perda de significado e lógica de tratamento especial, então vale revisar se agregar, apagar ou resumir não é melhor do que guardar tudo bruto
A diferença entre o medo do Big Data e os gargalos reais
- Há mais de 10 anos se repete a mensagem de que é difícil obter insights acionáveis dos dados por causa do tamanho dos dados
- Em seguida vinha a receita de que comprar uma nova tecnologia capaz de escalar resolveria o problema, mas mesmo após adquirir novas ferramentas e migrar sistemas legados, muitas organizações continuaram tendo dificuldade para entender seus dados
- Em 2023, a situação é diferente de quando os alertas sobre Big Data começaram
- O grande cataclismo de dados previsto não aconteceu
- O volume de dados cresceu um pouco, mas o hardware evoluiu ainda mais rápido
- Os fornecedores continuam vendendo escalabilidade, mas os profissionais começaram a questionar como isso se conecta aos problemas reais
O tamanho dos dados dos clientes visto pela experiência no BigQuery
- O autor, engenheiro fundador do Google BigQuery, demonstrava a capacidade de processar dados em grande escala executando consultas de 1 PB em apresentações públicas
- Depois disso, depurou problemas de clientes do BigQuery, coescreveu 2 livros e, desde 2018, atuou como gerente de produto, conduzindo conversas com clientes e analisando métricas do produto
- A observação mais surpreendente foi que a maioria dos usuários do “BigQuery” na prática não tinha Big Data
- Mesmo clientes com muitos dados tinham muitos workloads que usavam apenas uma pequena parte do dataset completo
- Quando o BigQuery foi lançado, a velocidade de processamento parecia ficção científica, mas depois abordagens mais tradicionais também alcançaram esse nível
- Os gráficos do texto são esboços de memória, não números exatos, e o importante não é o valor preciso, mas o formato da distribuição
- A base vem de logs de consultas, análises pós-transação, resultados de benchmarks, tickets de suporte, conversas com clientes, logs de serviço, posts públicos de blog e intuição
A maioria das organizações não tem tantos dados assim
- Os slides de vendas dizendo que o “Big Data está chegando” transmitiam a mensagem de que em breve todos seriam soterrados por dados, mas mesmo 10 anos depois esse futuro não se concretizou
- Olhando o porte dos clientes do BigQuery, a maior parte deles armazenava menos de 1 TB no total
- Havia clientes com centenas de PB, mas o tamanho seguia uma distribuição de lei de potência que caía rapidamente
- Havia milhares de clientes pagando menos de US$ 10 por mês em armazenamento, o que equivale a cerca de 0,5 TB
- Mesmo entre os clientes que mais usavam o serviço, a mediana de armazenamento era bem menor que 100 GB
- Em conversas com analistas do setor como Gartner e Forrester, o feedback também era de que a maioria dos data warehouses corporativos era menor que 1 TB
- Pela percepção do mercado, um tamanho adequado para um data warehouse era algo em torno de 100 GB
- A equipe do BigQuery fez desse porte um foco principal de seus esforços de benchmark
- Um investidor que pesquisou empresas do seu portfólio descobriu que, mesmo em empresas de tecnologia, onde o volume de dados tende a ser relativamente maior, a maior empresa B2B tinha cerca de 1 TB, a maior B2C cerca de 10 TB, e a maioria era bem menor
- Mesmo em exemplos de negócios de porte médio, os dados não crescem tão facilmente a ponto de virar algo gigantesco
- Mesmo que 1.000 clientes gerem 1 pedido por dia com 100 itens de linha, isso representa menos de 1 MB por dia e, após 3 anos, cerca de 1 GB
- Mesmo que um banco de marketing tenha 1 milhão de leads e dezenas de campanhas, a tabela de leads teria menos de 1 GB e o rastreamento de campanhas provavelmente ficaria em alguns GB
- Mesmo quando a SingleStore era um unicórnio em Series E crescendo rapidamente entre 2020 e 2022, somando warehouse financeiro, dados de clientes, rastreamento de campanhas de marketing e logs de serviço, o total era de apenas alguns GB
A ilusão criada pela separação entre armazenamento e computação
- Todas as plataformas modernas de dados em nuvem adotam a separação entre armazenamento e computação, para que o cliente não fique preso a um único form factor
- Essa mudança pode ter sido mais importante para a arquitetura de dados dos últimos 20 anos do que o próprio scale-out
- Em vez da estrutura shared-nothing, difícil de gerenciar, a arquitetura shared disk permite expandir armazenamento e computação de forma independente
- Armazenamentos de objetos escaláveis e suficientemente rápidos, como S3 e GCS, aliviam restrições de projeto em bancos de dados
- Na prática, o tamanho dos dados cresce muito mais rápido do que o tamanho da computação
- Os dados são gerados ao longo do tempo e, mesmo em negócios estáticos, o volume armazenado cresce linearmente com o tempo
- Como a análise costuma se concentrar em dados recentes, a demanda de computação não precisa crescer como o armazenamento
- Como dados antigos não mudam, continuar escaneando-os o tempo todo é quase desperdício, e muitas respostas importantes podem ser produzidas por agregações
- Clientes que migraram de on-premise para nuvem com separação de armazenamento e computação muitas vezes aumentaram muito o volume armazenado sem grande mudança na demanda de computação
- Um grande cliente de varejo do BigQuery tinha um data warehouse on-premise de cerca de 100 TB, mas após a migração para a nuvem ele cresceu para 30 PB
- O armazenamento aumentou 300 vezes, mas o custo de computação não cresceu na mesma proporção, e a empresa não passou a gastar bilhões de dólares com análise
- Essa estrutura mostra que, com um object store escalável, pode bastar muito menos computação do que se imagina, e talvez processamento distribuído nem seja necessário
Os workloads reais de consulta são muito menores que o volume total de dados
- O volume de dados processado por workloads analíticos pode ser menor do que a intuição sugere
- Dashboards costumam ser construídos sobre dados agregados
- Usuários normalmente consultam a última hora, o último dia ou a última semana
- Tabelas pequenas são consultadas com mais frequência, enquanto tabelas gigantes são consultadas de forma mais seletiva
- Ao analisar consultas de clientes do BigQuery que gastavam mais de US$ 1.000 por ano, 90% das consultas processavam menos de 100 MB
- A análise foi segmentada de várias formas para evitar que o volume de consultas de um único cliente distorcesse os resultados
- Consultas apenas de metadados, que não leem dados, foram excluídas
- Consultas na faixa de GB só apareciam em percentis mais altos, e consultas na faixa de TB eram muito raras
- Mesmo clientes com volumes enormes de dados quase nunca consultavam volumes enormes
- Quando executavam consultas grandes, em geral era para gerar relatórios, e desempenho não era a prioridade
- Uma grande empresa de mídia social executava consultas muito grandes no fim de semana para relatórios executivos de segunda-feira, mas isso era uma parte ínfima entre centenas de milhares de consultas feitas durante a semana
- Bancos analíticos modernos usam várias técnicas para reduzir o volume realmente lido
- Projeção de colunas para ler apenas os campos necessários
- Partition pruning para ler apenas intervalos curtos de data
- Eliminação de segmentos por clustering ou micro-particionamento automático para explorar localidade dos dados
- Cálculo sobre dados comprimidos, projeção e predicate pushdown também reduzem I/O no momento da consulta
- Reduzir I/O também reduz a computação necessária, além de baixar custos e latência
- Material relacionado: reduzir custos de data warehouse em nuvem
- Material relacionado: diagnosticar gargalos de desempenho em data warehouses
O custo do processamento pressiona por consultas menores
- O fato de ser possível processar rapidamente com scale-out não significa que esse processamento seja barato
- Se forem necessários 1.000 nós para obter um resultado, o custo pode ser muito alto
- A consulta de 1 PB executada nas demos do BigQuery custava US$ 5.000 pelo preço de tabela
- Esse tipo de ineficiência faz parte do big data tax para equipes que não operam realmente em escala de PB
- O incentivo financeiro para reduzir o volume processado vale mesmo fora do modelo de cobrança por bytes escaneados
- Seja pelo custo de scan do BigQuery ou pelo custo ocioso de uma instância Snowflake, os principais data warehouses em nuvem podem inflar sua fatura
- Se a consulta for menor, dá para usar instâncias menores, a consulta roda mais rápido e é possível ter mais execuções simultâneas
A maior parte dos dados quase nunca é consultada
- Uma grande proporção dos dados processados é composta por dados recentes com menos de 24 horas
- Depois de cerca de 1 semana, a chance de um dado ser consultado fica aproximadamente 20 vezes menor do que a dos dados do último dia
- Depois de 1 mês, os dados em geral continuam lá, mas só são consultados em execuções raras de relatórios
- A distribuição de idade dos dados armazenados é muito mais suave do que o padrão de acesso
- Muitos dados são descartados rapidamente, mas muitos também seguem sendo anexados ao fim da tabela
- Mesmo que os dados do último ano representem só 30% do total, eles podem responder por 99% dos acessos
- Mesmo que os dados do último mês representem só 5% do total, eles podem responder por 80% dos acessos
- Quando os dados “esfriam” com o tempo, o working set real fica em um tamanho mais administrável do que se imagina
- Mesmo que exista uma tabela de 1 PB com 10 anos de histórico, o que é acessado com frequência pode ser só o dado do dia
- Os dados do dia podem ter menos de 50 GB já comprimidos
O limite de uma única máquina continua avançando
- Se Big Data for definido como “aquilo que não cabe em uma única máquina”, o número de workloads que se encaixam nisso vem diminuindo a cada ano
- Quando o artigo do Google MapReduce foi escrito, em 2004, era comum que workloads típicos de dados não coubessem em uma única máquina de uso geral
- Quando a AWS lançou o EC2 em 2006, as instâncias oferecidas tinham apenas um núcleo e 2 GB de RAM, e muitos workloads não cabiam nessa máquina
- Hoje, uma instância padrão da AWS usa 64 núcleos e 256 GB de RAM por servidor físico
- Isso representa um aumento de RAM de várias ordens de magnitude em relação às instâncias iniciais do EC2 em 2006
- Pagando mais por instâncias otimizadas para memória, a RAM pode crescer ainda mais, em múltiplas ordens de magnitude
- Isso leva à pergunta: quantos workloads realmente precisam de mais de 24 TB de RAM ou 445 núcleos de CPU?
- Na nuvem, o custo de VMs grandes cresce quase linearmente com a capacidade de computação
- Uma VM que usa o servidor inteiro custa apenas 8 vezes mais do que uma VM que usa 1/8 do servidor
- A avaliação é de que hoje é possível obter, em um único nó, desempenho próximo ao benchmark de 3.000 nós paralelos do artigo original do Dremel
Dados podem virar passivo, não ativo
- Outra definição de Big Data seria um estado em que “o custo de decidir o que descartar é maior do que o custo de continuar guardando os dados”
- Em muitas organizações, o data lake é mais um grande pântano que cresceu não por necessidade, mas porque ninguém apagou nada
- Ninguém sabe exatamente o que há lá dentro
- Ninguém sabe se é seguro fazer uma limpeza
- O custo de retenção de dados é maior do que o custo físico de armazenar bytes
- Regulamentações como GDPR e CCPA exigem rastrear o uso de certos dados
- Alguns dados precisam ser apagados dentro de determinados prazos
- Se números de telefone ficarem tempo demais em arquivos parquet do data lake, isso pode violar exigências legais
- Dados antigos também podem ser usados contra a organização em litígios
- Assim como muitas organizações limitam a retenção de e-mails para reduzir responsabilidade potencial, os dados do data warehouse também podem virar evidência desfavorável
- Se logs de 5 anos atrás mostrarem um bug de segurança no código ou descumprimento de SLA, manter esses dados por mais tempo pode prolongar a exposição jurídica
- Dados também podem perder significado com o tempo, como o bit rot no código
- As pessoas podem esquecer o significado exato de campos especiais
- Bugs antigos nos dados podem sair da memória
- Por exemplo, pode ter havido um curto período em que todos os
customer idforam definidos como null, ou uma grande transação fraudulenta pode ter feito os resultados do 3º trimestre de 2017 parecerem melhores do que realmente foram - A lógica de negócio para consultar períodos antigos pode ficar cada vez mais complexa, como “antes de 2019 é
revenue, de 2019 a 2021 érevenue_usd, e a partir de 2022 érevenue_usd_audited”
Verificando se você está no 1% do Big Data
- Big Data existe de fato, mas talvez a maioria das pessoas não precise se preocupar com isso
- Para avaliar se você faz parte do 1% do Big Data, vale fazer as seguintes perguntas
- Você realmente gera um volume imenso de dados?
- Se sim, você realmente precisa usar um volume imenso de dados de uma vez só?
- Se sim, isso realmente é grande demais para caber em uma única máquina?
- Se sim, você não é apenas alguém acumulando dados?
- Se sim, resumir esses dados não seria melhor?
- Se a resposta a qualquer uma dessas perguntas for “não”, você pode ser candidato a uma nova geração de ferramentas de dados ajustadas ao tamanho real dos seus dados
- Como exemplo relacionado, é citada uma alternativa moderna ao BigQuery
- Em vez de ter medo do tamanho dos dados que talvez um dia venha a existir, as organizações deveriam escolher ferramentas e políticas de retenção com base no tamanho real dos dados que possuem e nos padrões reais de consulta
1 comentários
Opiniões do Hacker News
Em um emprego anterior, quando contratávamos cientistas de dados, uma pergunta-armadilha que gostávamos de usar era: “se o requisito diz que há no máximo 6 TiB de dados, que stack/arquitetura você criaria?”
Ao ouvir respostas grandiosas como BigQuery e Hadoop e perguntar também sobre custos de hardware/software/licenças, as estimativas costumavam chegar a dezenas de milhares de dólares por ano
No fim, quem passava era quem entendia que 6 TiB é uma quantidade que as 6 pessoas na sala poderiam distribuir entre seus smartphones, que um HDD empresarial de US$ 199 — ou três, para redundância — bastaria, e que os dados poderiam até ser carregados várias vezes na memória em CSV e processados com scripts
awkEu também sou propenso ao erro de, quando aprendo a usar um martelo, ver tudo como prego, mas em contratação não ter noção de escala do que é “big data de verdade” era motivo para reprovação
Em vez de concluir, só por esse tipo de resposta, que a pessoa projeta tudo de forma excessiva, é mais correto ver isso como alguém caindo em uma pergunta-armadilha numa situação artificial em que o entrevistador está em posição de vantagem
Recentemente fiz uma entrevista técnica com um entrevistador de senioridade e experiência parecidas com as minhas e respondi mal; o entrevistador foi julgador em relação à minha resposta ruim. Se os papéis estivessem invertidos, eu poderia tê-lo deixado igualmente em apuros com um tema que eu conheço melhor
Como entrevistador, é preciso ter cuidado especial para não abusar da posição de superioridade. Isso é contraproducente para a empresa e também não é bom para a pessoa à sua frente
“Serviço de consultoria: você me traz seu problema de big data, eu digo ‘seu dataset cabe na RAM’, e você me paga US$ 10 mil por eu ter poupado US$ 500 mil para você”
Alguns anos atrás, um diretor me mostrou um sistema criado pela TI com Hadoop, API gateway, vários desenvolvedores e custo anual de centenas de milhares de dólares; quando eu disse que, considerando a escala atual e a escala previsível no futuro, aquilo poderia rodar perfeitamente com um drive USB conectado ao notebook dele e alguns scripts Python, ele ficou muito irritado, e depois disso nunca mais pude me envolver naquele projeto
Vejo isso como parte de um ciclo de ostentação disseminado na empresa. É uma estrutura em que não se pode admitir que “estamos fazendo uma coisa simples”
awke, mesmo que queiram, varrer 6 TB em uma única CPU a cada consulta, sem particionamento nem armazenamento orientado a colunas, sempre será lentoPara esse tipo de uso, em geral o BigQuery funcionava bem. A interface de console é suficiente para análises ad hoc, e muitas ferramentas como Metabase e Tableau também conseguem se conectar
Se o particionamento for feito corretamente, o custo não é excessivo; se virar um problema, basta adicionar tabelas de rollup
.parquetsão completamente subestimados, e ainda há muita gente que não conhece esse formatoAo contrário de CSV, eles preservam tipos de dados, são 10 vezes menores que CSV — então 6 TB viram 600 GB — e a leitura é 50 vezes mais rápida. Também são um padrão aberto da Apache Foundation
Não dá para inspecionar tão facilmente quanto CSV, mas esse compromisso vale a pena. Gostaria que todo lugar que oferece CSV para download também oferecesse
.parquetNo geral, concordo com boa parte do texto, mas há algumas ressalvas. Primeiro, MongoDB é um ponto de referência inadequado. Nunca vi algo que o MongoDB faça que o PostgreSQL não faça melhor, e soluções de big data normalmente não são NoSQL/MongoDB, e sim bancos de dados orientados a colunas, MapReduce, Cassandra e coisas do tipo
Segundo, é preciso planejar para o sucesso. 95% das empresas não viram unicórnios, mas, se você mira nos outros 5%, não chegará lá sem se preparar. O motivo para projetar pensando em escalabilidade quando você tem 5 clientes é conseguir segurar o momento em que o crescimento exponencial chegar
Ainda assim, a lição central está correta. A maior parte dos dados não é grande, e até dados sobre todas as pessoas do mundo podem caber em um Chromebook de US$ 100. A maioria dos dados é consultada raramente, as consultas também são pequenas, e o primeiro passo em trabalhos de big data muitas vezes é reduzir terabytes para os GB, MB e, às vezes, KB que realmente são necessários. Por causa de regulações, o custo dos dados também está aumentando
As pessoas não apenas planejam; normalmente acabam implementando também. Planejar os próximos 3 meses pode tornar você muito mais ágil e produtivo. Se você não consegue executar, não vai virar um unicórnio
Parece uma combinação de síndrome do segundo sistema com viés de sobrevivência. Pessoas que limparam a bagunça de um bom MVP reclamam “deveríamos ter feito isso antes”, mas as empresas que de fato planejaram e projetaram tudo antecipadamente não sobreviveram, então nem viram alvo dessas reclamações
Concordo com quase todo o restante, mas esse ponto parece errado e eu não consegui deixar passar
A runway de uma startup é limitada, e, se os engenheiros estão gastando dinheiro em algo que só será recompensado daqui a alguns anos, isso aumenta a chance de a empresa fracassar antes de esse momento chegar
Um produto ganhar tração tão forte normalmente vem de um efeito composto gerado pela existência e pelas necessidades da base de usuários. Mesmo que a adição de novos usuários tropece durante o crescimento, é improvável que os usuários existentes voltem ao produto antigo ou vão para outro lugar
No Twitter antigo, ver a fail whale todos os dias fazia parte da rotina, mas a maioria não saiu, e também não houve uma migração em massa para uma alternativa que escalasse melhor. Produtos que passam por esse tipo de crescimento exponencial são raros, e é comum sofrer com escalabilidade e ter pior disponibilidade durante o processo. Fico curioso para saber quais produtos de crescimento exponencial realmente fracassaram por não conseguir escalar
Na época em que “big data” estava na moda, eu era pesquisador no Large Hadron Collider. Para nós, analisar todos os dados era um caso de uso que fazia sentido e, na estatística frequentista, quanto mais dados, melhor.
Mas, mesmo usando uma rede mundial de supercomputadores, descobrimos que um armazenamento local rápido era melhor do que esperar uma tarefa gigantesca terminar. No fim, todos os pós-graduandos reduziram os dados relevantes para exatamente 1 a 5 TB, sem perder muita flexibilidade de análise.
Parece haver algo como uma lei da conveniência, comparável à lei de escalabilidade de Amdahl.
Isso parece mais uma limitação humana do que matemática. Há um teto claro para a flexibilidade de que conseguimos tirar proveito. Isso poderia mudar se surgissem formas de executar novos tipos de análise com mais facilidade, mas imagino que cresça de forma parecida com um logaritmo em relação ao número de coisas que queremos fazer.
As pessoas são muito boas em encontrar maneiras convenientes de melhorar um pouco a cada ano, mas qualquer ideia precisa de um tempo mínimo para ser executada.
Se minha memória não falha, a fila daquele equipamento era tão longa quanto, ou maior que, o tempo necessário para rodar o trabalho em hardware barato, e sistemas de processamento massivamente paralelo como o Beowulf surgiram a partir desses esforços.
Reduzir o tamanho do banco de dados armazenado e o volume de computação é uma ótima forma de minimizar a fatura mensal do cliente.
Pela minha experiência, os dados continuam crescendo exponencialmente, mas a quantidade de informação não cresce assim.
Em finanças, se você quiser, é fácil obter 100 milhões de pontos de dados por dia para uma única série temporal, e também lidar com milhares de séries temporais. Mas essa taxa de amostragem e esse número de séries geralmente são 99,99% redundantes. Isso porque os autovalores caem para quase zero depois de algo como 10 dimensões — às vezes muito antes disso.
Há pouquíssimo motivo para armazenar petabytes de dados de ticks que você nunca vai consultar. Em muitos casos, faz muito mais sentido fazer uma redução de dimensionalidade agressiva e com perdas no momento da coleta, armazenar apenas os primeiros componentes principais e os outliers, e monitorar a estabilidade dos autovalores para ver se algum novo fator antes desprezível passa a ser importante.
Como resultado, o conjunto de dados fica muito menor e mais fácil de lidar e, por ser realmente utilizável, muitas vezes acaba gerando mais insights.
Parece interessante, mas é um tema totalmente novo para mim.
O engraçado do “big data” é que havia incentivos perversos para evitar até as otimizações mais básicas e óbvias no nível de software. Afinal, requisitos de hardware maiores serviam para provar o quão impressionante você era.
Por exemplo, se alguém dissesse: “Chefe, em vez de calcular o conjunto de dados inteiro, podemos ler uma amostra e calcular as médias deste relatório só com um notebook”, o chefe entenderia como: “O que você quer dizer com amostra? O que está insinuando com esse papo de matemático/engenheiro? Não está dizendo que desperdicei milhões de dólares, está?”
Por um tempo, houve muito exagero comercial e ruído em torno de big data, além de uma disputa de ostentação para ver de quem eram os dados grandes o suficiente.
Por muito tempo foi muito difícil obter mais de 64 GB de memória em uma única máquina, e quando existe um limite rígido a complexidade de implementação dispara rapidamente.
Um processo que falha 1 vez em 50 porque os dados cresceram um pouco é extremamente destrutivo. As equipes rodam dezenas desses cron jobs regulares, e se cada um quebra com frequência você acaba ficando de plantão só para recortar pedaços.
Hadoop e MapReduce não eram extremamente eficientes, mas, usados corretamente, eram razoáveis, e rodar de forma confiável era muito mais importante. Eram melhores do que um código C++ otimizado bit a bit em que ninguém confiava nem conseguia manter, e que morria toda quinta-feira com um erro de segmentação bizarro.
Hoje em dia eu simplesmente usaria Snowflake, mas na época eram ferramentas razoáveis.
Este texto não é totalmente preciso. Originalmente, big data era definido em três dimensões: volume, velocidade e variedade
O volume foi, em geral, resolvido; a velocidade também, mas é caro. A variedade ainda não foi resolvida
Hoje, big data não é tanto “falta armazenamento ou computação”, mas algo mais próximo de “falta capacidade cognitiva para integrar e entender isso”
Também recomendo fortemente as palestras relacionadas. A maioria está no YouTube
[1] https://www.youtube.com/watch?v=KRcecxdGxvQ
[2] https://amturing.acm.org/award_winners/stonebraker_1172121.c...
Cada aeronave tem um sistema de radar e, dentro dele, há 8 unidades de armazenamento SSD RAID-0 de 16 drives, com 20 TiB cada. Normalmente não enchemos os RAIDs, então geramos cerca de 176 TiB por dia; com 7 voos em duas semanas, dá 1,2 PiB por campanha, ou cerca de 7,2 PiB por ano
O motivo de precisarmos descansar um dia entre os voos é que temos de baixar os dados por fibra óptica para um servidor de armazenamento enfiado de qualquer jeito num canto do hangar ao lado do pátio. Depois, replicamos em um segundo servidor por segurança e, quando a missão termina, enviamos tudo para a sede para armazenamento e processamento
Esses dados são valiosos, mas não no nível de “bilhões de dólares”. São usados para extração de recursos, cartografia, estudos ambientais e geodésicos, e guardamos cada byte desde 2008. Isso porque, quando surgem novos algoritmos, podemos reprocessar dados antigos segundo os novos padrões
Os arquivos, de 800 GiB a 2 TiB, são transmitidos por streaming para servidores de processamento com GPU e não são compressíveis. A maior parte do que capturamos, a radiação cósmica de fundo em micro-ondas, é bastante aleatória. Houve uma época em que achei, equivocadamente, que gravar em fita reduziria nossa infraestrutura pela metade, mas a capacidade das fitas parecia ser calculada como quando se armazenam arquivos de texto de vários gigabytes compostos só de zeros
As GPUs são lentas, as CPUs são lentas, o barramento PCIe é lento, a RAM é lenta e até minha velocidade de digitação é lenta. Tudo precisa ficar sempre mais rápido
Tudo é lento demais, difícil demais e pequeno demais. Os discos rígidos são pequenos demais, e ajustar o kernel do Linux e configurar uma rede rápida e estável para o cluster de processamento é difícil demais. Mesmo atualizações de kernel/pacotes que são simples mudanças internas quebram nossos sistemas de maneiras que parecem acontecer só conosco
As configurações padrão vivem na ilusão de que RAM é escassa, então economizam memória nas operações de rede. Mas o servidor de arquivos tem 0,5 TB de RAM, então eu queria que ele usasse tudo isso para tornar a rede e o sistema de arquivos rápidos. No fim, preciso passar 6 horas lendo a documentação da pilha de rede e levar a E/S para um nível de bom senso compatível com 2024
Provavelmente conheço
sysctl.confmelhor do que quase qualquer pessoa no planetaArmazenamentos distribuídos de objetos persistentes que se dizem feitos para big data ou desmoronam completamente sob nossa carga de trabalho, ou custam centenas de milhões de dólares. Quando digo que o tamanho dos objetos é de aproximadamente 1 TB, os vendedores de sistemas de arquivos distribuídos param de responder. Um fornecedor leu os requisitos e me encaminhou para o responsável por clientes de agências de inteligência. Eu não sou a NSA, nem tenho o orçamento da NSA
Às vezes aparece um MBA ou PMP que leu uma matéria sobre nuvem na Bloomberg, olha o custo do datacenter on-premises e pergunta sobre migrar para AWS ou Azure; quando mostro os números, tanto em dinheiro quanto em tempo, a pessoa faz cara de quem vai vomitar e muda de assunto
Além disso, todos os fornecedores entraram na onda de AI/cloud e estão descontinuando as linhas de produtos que serviam para nós. Agora precisamos disputar GPUs com hedge funds e startups de IA que querem minerar dados de clientes para exibir anúncios
Faltam armazenamento e computação, e o armazenamento e a computação que temos são lentos demais. DPU/IPU é interessante, mas, quando os objetos ficam maiores do que consultas a bancos de dados SQL ou pedaços de vídeo comprimido em streaming, eles batem no limite imediatamente
Antigamente trabalhei em uma empresa que gerava 20 GB de dados analíticos por dia, e talvez esse tenha sido o maior volume de dados com que vou lidar
Como projeto júnior, escrevi uma tarefa de processamento de dados que fazia agregações em lote e em tempo real, e salvava os resultados em blobs Parquet no Azure
Meu chefe era inteligente o bastante para organizar reuniões regulares com stakeholders para discutir o que manter e o que descartar, e, graças a bons algoritmos, conseguíamos comprimir os dados para cerca de 200 MB por dia
Os últimos 2 meses eram colocados no SQL Server, os últimos 2 anos eram agregados ainda mais e colocados em outro servidor, e a empresa inteira conseguia consultar tudo pelo Excel em um tempo razoável. O big data bruto está apodrecendo em armazenamento em fita, para o caso de um dia ser necessário
Meu chefe era um mau gerente, mas entendia de dados; olhando para trás, ele fez muita coisa certa, e eu também aprendi bastante
Ao longo de vários anos, vi muita engenharia em excesso em ferramentas e pipelines de dados “grandes”. Em muitos casos de uso, data warehouses e data lakes ficam na faixa de GB ou de poucos TB, então dá para simplificar muito, por exemplo rodando DuckDB em uma instância EC2 decente
Pela minha experiência, assim os resultados aparecem antes mesmo de outros sistemas começarem a executar a consulta. Estou falando de você, Athena
Hoje em dia acho que muitas consultas também podem rodar no navegador, então, com a ajuda do DuckDB WASM(https://github.com/duckdb/duckdb-wasm) e do perspective.js(https://github.com/finos/perspective), criei https://sql-workbench.com/
Parece que esse ciclo de hype acabou chegando ao “platô da morte”. Não é um desfecho raro neste setor, que é extremamente movido por modas
IA também usa todos os dados e acopla redes neurais mágicas para descobrir o que eles significam
Pessoalmente, acho que o principal motor do big data foi o ego dos fundadores das empresas. Algo como: “é claro que nossa empresa vai crescer explosivamente e alcançar sucesso em escala planetária, então precisamos projetar tudo para essa escala”
É trágico cometer esse tipo de erro quando um único banco SQLite bastaria até o produto chegar à Series C. Toda a energia deveria estar concentrada no produto, não na escala, que ainda não existe
O Hadoop começou inspirado no que existia no Google e ganhou popularidade entre empresas do mundo todo que queriam lidar com dados de uma forma mais barata e melhor que com a Oracle
O Spark surgiu como uma solução para a complexidade de Hive/Pig etc.; quando as empresas passaram a conseguir criar pipelines de dados confiáveis, tornou-se possível colocar IA em cima deles
Modelos de dados gerados por ações humanas intencionais, como clicar em links, enviar mensagens ou fazer compras, são geralmente pequenos. Isso porque há limites para o número de seres humanos e para a quantidade de eventos intencionais que uma pessoa consegue gerar por segundo
Por outro lado, modelos de dados gerados por máquinas podem ter velocidade e volume algumas ordens de grandeza maiores, e não há um limite claro para o tamanho do modelo de dados. Esses dados muitas vezes estão entre os mais interessantes e subutilizados, porque permitem obter muitos fatos sobre o mundo que não seriam acessíveis por modelos de dados intencionais humanos