Qual é o tamanho do big data?

86

Muitas pessoas usam o termo big data de maneira bastante comercial , como um meio de indicar que grandes conjuntos de dados estão envolvidos na computação e, portanto, as soluções em potencial devem ter um bom desempenho. Obviamente, o big data sempre carrega termos associados, como escalabilidade e eficiência, mas o que exatamente define um problema como um problema de big data ?

O cálculo precisa estar relacionado a algum conjunto de finalidades específicas, como mineração de dados / recuperação de informações, ou um algoritmo para problemas gerais de gráfico pode ser rotulado como big data se o conjunto de dados for grande o suficiente ? Além disso, quão grande é grande o suficiente (se é possível definir isso)?

Rubens
fonte
7
Um bom artigo sobre quando os dados começa a ser muito grande para chrisstucchio.com/blog/2013/hadoop_hatred.html normais de uso
Johnny000
18
"Qualquer coisa grande demais para carregar no Excel" é a piada.
Spacedman
1
Isso depende se está apenas sendo jogado como um chavão.
John Robertson
É precisamente 1 GB. Esse é o limite no livro de regras. Não há espaço para ambiguidade.
Hack-R
Esta é uma excelente pergunta. Como indicado pela variedade de resposta, a definição é ... indefinido
Manu H

Respostas:

86

Para mim (vindo de um fundo de banco de dados relacional), "Big Data" não se refere principalmente ao tamanho dos dados (que é a maior parte do que as outras respostas estão até agora).

"Big Data" e "Bad Data" estão intimamente relacionados. Bancos de dados relacionais requerem 'dados primitivos'. Se os dados estiverem no banco de dados, são precisos, limpos e 100% confiáveis. Os bancos de dados relacionais exigem "ótimos dados" e uma quantidade enorme de tempo, dinheiro e responsabilidade são aplicados para garantir que os dados estejam bem preparados antes de carregá-los no banco de dados. Se os dados estão no banco de dados, é 'evangelho' e define o entendimento da realidade do sistema.

O "Big Data" aborda esse problema de outra direção. Os dados são mal definidos, muitos deles podem ser imprecisos e muitos deles podem estar ausentes. A estrutura e o layout dos dados são lineares, e não relacionais.

O Big Data precisa ter volume suficiente para que a quantidade de dados incorretos ou ausentes se torne estatisticamente insignificante. Quando os erros nos seus dados são comuns o suficiente para serem cancelados, quando os dados ausentes são proporcionalmente pequenos o suficiente para serem insignificantes e quando os requisitos e algoritmos de acesso a dados estão funcionais, mesmo com dados incompletos e imprecisos, você tem "Big Data" .

"Big Data" não é realmente sobre o volume, é sobre as características dos dados.

rolfl
fonte
6
+1 Aprecio muito o estresse dos big data por não ser sobre o tamanho , e sim sobre o conteúdo (características de) .
Rubens
4
Essa é uma perspectiva muito refrescante. Eu nunca ouvi isso antes, mas é muito verdade. Isso sugere que as tecnologias SQL e NoSQL não são competitivas, mas complementares.
Jay Godse
7
Você está falando de dados não estruturados, não de big data. Dados não estruturados geralmente levam a soluções NoSQL e big data no aplicativo, mas ainda são diferentes.
TheGrimmScientist
Eu acho que essa é uma boa perspectiva comercial do que é big data, mas não responde à pergunta específica que é bem apontada "qual é o tamanho de big data?"
Wabbit
33

Como você observa com razão, hoje em dia "big data" é algo que todos querem dizer que têm, o que implica uma certa folga na maneira como as pessoas definem o termo. Geralmente, porém, eu diria que você certamente está lidando com big data se a escala é tal que não é mais possível gerenciar com tecnologias mais tradicionais, como RDBMS, pelo menos sem complementá-las com tecnologias de big data, como o Hadoop.

Qual é o tamanho dos seus dados para realmente ser esse o caso é discutível. Aqui está um post (um tanto provocador) que afirma que não é realmente o caso de menos de 5 TB de dados. (Para deixar claro, ele não afirma "Menos de 5 TB não é grande volume de dados", mas apenas "Menos de 5 TB não é grande o suficiente para que você precise do Hadoop".)

Mas, mesmo em conjuntos de dados menores, as tecnologias de big data como o Hadoop podem ter outras vantagens, incluindo adequar-se a operações em lote, jogar bem com dados não estruturados (além de dados cuja estrutura não é conhecida antecipadamente ou pode mudar), escalabilidade horizontal ( escalando adicionando mais nós em vez de aumentar seus servidores existentes) e (como um dos comentadores das notas postadas acima) a capacidade de integrar seu processamento de dados a conjuntos de dados externos (pense em um mapa-reduzir onde o mapeador faz uma chamada para outro servidor). Outras tecnologias associadas ao big data, como os bancos de dados NoSql, enfatizam o desempenho rápido e a disponibilidade consistente ao lidar com grandes conjuntos de dados, além de serem capazes de lidar com dados semiestruturados e fazer a escala horizontal.

Obviamente, os RDBMS tradicionais têm suas próprias vantagens, incluindo garantias ACID (Atomicidade, Consistência, Isolamento, Durabilidade) e melhor desempenho para determinadas operações, além de serem mais padronizados, mais maduros e (para muitos usuários) mais familiares. Portanto, mesmo para dados indiscutivelmente "grandes", pode fazer sentido carregar pelo menos uma parte de seus dados em um banco de dados SQL tradicional e usá-lo em conjunto com as tecnologias de big data.

Portanto, uma definição mais generosa seria a de que você possui big data, desde que seja grande o suficiente para que as tecnologias de big data ofereçam algum valor agregado. Mas, como você pode ver, isso pode depender não apenas do tamanho dos seus dados, mas também de como você deseja trabalhar com eles e que tipo de requisitos você possui em termos de flexibilidade, consistência e desempenho. Como você está usando seus dados é mais relevante para a questão do que o que você está usando-o para (por exemplo, mineração de dados). Dito isto, usos como mineração de dados e aprendizado de máquina são mais propensos a produzir resultados úteis se você tiver um conjunto de dados grande o suficiente para trabalhar.

Tim Goodman
fonte
Esse comentário tem quase 5 anos e, embora algumas partes ainda sejam verdadeiras, o limite de 5 TB do blog que citei certamente não é mais verdadeiro. Por exemplo, a Microsoft oferece DBs SQL em "hiperescala" de até 100 TB: docs.microsoft.com/en-us/azure/sql-database/… Obviamente, pode-se supor que muitas organizações com grandes bancos de dados SQL também tenham, digamos, um cluster Spark para suportar diferentes cargas de trabalho. Não há regra para escolher um ou outro.
Tim Goodman
21

Quantidade total de dados no mundo: 2,8 zetabytes em 2012, estimados em 8 zetabytes até 2015 ( fonte ) e com um tempo de duplicação de 40 meses. Não pode ficar maior que isso :)

Como exemplo de uma única organização grande, o Facebook atrai 500 terabytes por dia para um armazém de 100 petabytes e executa 70 mil consultas por dia a partir de 2012 ( fonte ) O armazém atual deles é de> 300 petabytes.

O big data é provavelmente algo que é uma boa fração dos números do Facebook (1/100 provavelmente sim, 1/10000 provavelmente não: é um espectro, não um número único).

Além do tamanho, alguns dos recursos que o tornam "grande" são:

  • ele é analisado ativamente, não apenas armazenado (aspas "Se você não está tirando proveito do big data, não tem big data, apenas uma pilha de dados" Jay Parikh @ Facebook)

  • construir e executar um data warehouse é um grande projeto de infraestrutura

  • está crescendo a uma taxa significativa

  • não está estruturado ou possui estrutura irregular

Definição do Gartner: "Big data são ativos de informações de alto volume, alta velocidade e / ou alta variedade que requerem novas formas de processamento" (os 3Vs). Portanto, eles também pensam que "grandeza" não é inteiramente do tamanho do conjunto de dados, mas também sobre a velocidade e estrutura e o tipo de ferramentas necessárias.

Alex I
fonte
2
Se a quantidade total de dados no mundo dobrar a cada 40 meses, certamente poderá ser maior que isso. ; p
Air
2
Outros descrevem 4Vs de big data IBM ou até 5Vs DAVE BEULKE 2011
nmtoken 18/06/2015
2
Os 3 V originais foram estabelecidos em 2001 por Doug Laney 3D Data Management: Controlando volume de dados, velocidade e variedade .
NMTOKEN
13

Para mim, o Big Data é principalmente sobre as ferramentas (afinal, foi aí que começou); um conjunto de dados "grande" é grande demais para ser manipulado com ferramentas convencionais - em particular, grande o suficiente para exigir armazenamento e processamento em um cluster em vez de em uma única máquina. Isso exclui um RDBMS convencional e exige novas técnicas de processamento; em particular, várias estruturas do tipo Hadoop facilitam a distribuição de uma computação em um cluster, com o custo de restringir a forma dessa computação. Vou colocar a referência em http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html; As técnicas de big data são o último recurso para conjuntos de dados que são simplesmente grandes demais para serem manipulados de qualquer outra maneira. Eu diria que qualquer conjunto de dados para qualquer finalidade poderia se qualificar se fosse grande o suficiente - embora se a forma do problema seja tal que as ferramentas de "big data" existentes não sejam apropriadas, provavelmente seria melhor criar um novo nome.

Claro que há alguma sobreposição; quando eu (brevemente) trabalhei no last.fm, trabalhamos no mesmo conjunto de dados de 50 TB usando o Hadoop e também em um banco de dados SQL em um servidor bastante ridículo (lembro-me que ele tinha 1 TB de RAM, e isso ocorre há alguns anos). Em certo sentido, isso significava que era e não era um grande volume de dados, dependendo do trabalho em que você estava trabalhando. Mas acho que é uma caracterização precisa; as pessoas que trabalharam nos trabalhos do Hadoop acharam útil ir para conferências e sites de Big Data, enquanto as pessoas que trabalharam nos trabalhos do SQL não.

lmm
fonte
10

Os dados se tornam "grandes" quando um único computador comum não pode mais lidar com a quantidade de dados que você possui. Indica o ponto em que você precisa começar a pensar em construir supercomputadores ou usar clusters para processar seus dados.

TheGrimmScientist
fonte
7

Big Data é definido pelo volume de dados, isso mesmo, mas não apenas. A particularidade do big data é que você precisa armazenar muitos materiais variados e às vezes não estruturados o tempo todo e de vários sensores , geralmente por anos ou década .

Além disso, você precisa de algo escalável, para que não demore meio ano para encontrar os dados de volta.

Então aqui está o Big Data, onde o método tradicional não funciona mais. SQL não é escalável. E o SQL trabalha com dados muito estruturados e vinculados (com toda essa bagunça de chave primária e externa, junção interna, solicitação imbricada ...).

Basicamente, como o armazenamento se torna cada vez mais barato e os dados se tornam cada vez mais valiosos, o grande gerente solicita ao engenheiro que registre tudo. Adicione a essa tonelada de novos sensores todas essas redes sociais móveis, coisas incorporadas ... etc. Portanto, como os métodos clássicos não funcionam, eles precisam encontrar novas tecnologias (armazenando tudo em arquivos, no formato json, com grande índice, o que chamamos de noSQL).

Portanto, o Big Data pode ser muito grande, mas pode não ser tão grande, mas não estruturado, complexo ou vários dados que precisam ser armazenados rapidamente e em execução em um formato bruto. Nós nos concentramos e armazenamos no início, e depois analisamos como vincular tudo.

tanou
fonte
6

Vou compartilhar como é o Big Data na genômica, em particular na montagem de-novo.

Quando sequenciamos seu genoma (por exemplo: detectar novos genes), fazemos bilhões de leituras curtas da próxima geração. Veja a imagem abaixo, onde tentamos montar algumas leituras.

insira a descrição da imagem aqui

Isso parece simples? Mas e se você tiver bilhões dessas leituras? E se essas leituras contiverem erros de sequência? E se a sua RAM não tiver memória suficiente para manter as leituras? E as regiões repetitivas do DNA, como o elemento Alu, muito comum ?

A montagem de novo é feita através da construção de um gráfico de De-Bruijn :

insira a descrição da imagem aqui

O gráfico é uma estrutura de dados minada inteligente para representar leituras sobrepostas. Não é perfeito, mas é melhor do que gerar todas as sobreposições possíveis e armazená-las em uma matriz.

O processo de montagem pode levar dias para ser concluído, porque há vários caminhos que um montador precisaria percorrer e recolher.

Em genômica, você tem um grande volume de dados quando:

  • Você não pode força bruta em todas as combinações
  • Seu computador não possui memória física suficiente para armazenar os dados
  • Você precisa reduzir as dimensões (por exemplo: recolhendo caminhos de gráficos redundantes)
  • Você fica chateado porque você teria que esperar dias para fazer qualquer coisa
  • Você precisa de uma estrutura de dados especial para representar os dados
  • Você precisa filtrar seu conjunto de dados para erros (por exemplo: erros de sequência)

https://en.wikipedia.org/wiki/De_Bruijn_graph

SmallChess
fonte
5

Há algo especial em representar graficamente os algoritmos, suas perguntas originais, o que torna especial, que é a capacidade de particionar os dados essencialmente.

Para algumas coisas, como classificar números em uma matriz, não é muito difícil particionar o problema na estrutura de dados em partes disjuntivas menores, por exemplo : Aqui: Parallel in place place merge

NPhard

Portanto, embora 10 GB de números a serem classificados possa ser um problema muito acessível em um PC normal (você pode acessar via programação dinâmica e ter uma previsão muito boa sobre o fluxo do programa), trabalhar com uma estrutura de dados gráficos de 10 GB já pode ser um desafio.

Existem várias estruturas especializadas, como o GraphX, usando métodos e paradigmas especiais de computação para contornar um pouco os desafios inerentes aos gráficos.

Portanto, para responder brevemente à sua pergunta: Como mencionado anteriormente por outras pessoas, quando seus dados não se encaixam na memória principal de um PC normal, mas você precisa de tudo para responder ao seu problema, é uma boa dica de que seus dados já são um pouco grandes. A rotulagem exata, porém, depende, penso um pouco da estrutura de dados e da pergunta.

hlaubisch
fonte
4

Eu acho que o big data começa no ponto em que o tamanho impede que você faça o que deseja. Na maioria dos cenários, há um limite no tempo de execução considerado viável. Em alguns casos, é de uma hora; em alguns casos, pode demorar algumas semanas. Desde que os dados não sejam grandes o suficiente para que apenas os algoritmos O (n) possam ser executados no período de tempo possível, você não alcançou o big data.

Eu gosto dessa definição, pois é independente de volume, nível de tecnologia e algoritmos específicos. Como não é independente de recursos, um estudante de graduação chegará ao ponto de big data muito antes do Google.

Para poder quantificar o tamanho dos dados, eu gosto de considerar o tempo necessário para fazer backup deles. Desde que a tecnologia avança, os volumes considerados grandes alguns anos atrás agora são moderados. O tempo de backup melhora, assim como a tecnologia, assim como o tempo de execução dos algoritmos de aprendizado. Eu sinto que é mais sensato falar sobre um conjunto de dados que leva X horas para fazer backup e não sobre um conjunto de dados de Y bytes.

PS.

É importante observar que, mesmo que você tenha atingido o ponto de big data e não possa executar algoritmos de complexidade mais do que O (n) de maneira direta, há muito o que fazer para se beneficiar ainda de tais algoritmos.

Por exemplo, a seleção de recursos pode reduzir o número de recursos dos quais muitos algoritmos dependem do tempo de execução. Em muitas distribuições de cauda longa, o foco nos poucos itens da cabeça pode ser benéfico. Você pode usar uma amostra e executar nela os algoritmos mais lentos.

DaL
fonte
O(n)
4

Os dados são "big data" se forem de tal volume que é mais barato analisá-los em dois ou mais computadores comuns do que em um computador de ponta.

Foi assim que o sistema de arquivos "BigFiles" do Google se originou. Page e Brin não tinham dinheiro para comprar um servidor sofisticado da Sun para armazenar e pesquisar em seu índice da web; portanto, conectaram vários computadores comuns

Neil McGuigan
fonte
1

Costumo concordar com o que @Dan Levin já disse. Por fim, como queremos extrair informações úteis dos dados, em vez de apenas armazená-los, é a capacidade de aprender algoritmos / sistemas que deve determinar o que é chamado de "Big data". À medida que os sistemas ML evoluem, o que era Big Data hoje não será mais Big Data amanhã.

Uma maneira de definir Big Data pode ser:

  • Big data : dados nos quais você não pode criar modelos de ML em tempo razoável (1-2 horas) em uma estação de trabalho típica (digamos, 4 GB de RAM)
  • Dados não grandes : complemento dos itens acima

Assumindo essa definição, desde que a memória ocupada por uma linha individual (todas as variáveis ​​para um único ponto de dados) não exceda a RAM da máquina, deveríamos estar no regime Não-big data .

Nota: O Vowpal Wabbit (de longe o sistema ML mais rápido atualmente) pode aprender sobre qualquer conjunto de dados, desde que uma linha individual (ponto de dados) seja <RAM (digamos 4GB). O número de linhas não é uma limitação, pois usa SGD em vários núcleos. Falando por experiência, você pode treinar um modelo com recursos de 10.000 e 10MN de linhas em um laptop em um dia.

wabbit
fonte
1

"Big data" é literalmente apenas muitos dados. Embora seja mais um termo de marketing do que qualquer coisa, a implicação é geralmente que você tem tantos dados que não pode analisar todos os dados de uma só vez, porque a quantidade de memória (RAM) necessária para reter os dados na memória é processar e analisar é maior que a quantidade de memória disponível.

Isso significa que as análises geralmente precisam ser feitas em segmentos aleatórios de dados, o que permite que modelos sejam construídos para comparação com outras partes dos dados.

JacKyou
fonte