Mucha gente usa el término big data de una manera bastante comercial , como un medio de indicar que grandes conjuntos de datos están involucrados en el cálculo y, por lo tanto, las posibles soluciones deben tener un buen rendimiento. Por supuesto, big data siempre lleva términos asociados, como escalabilidad y eficiencia, pero ¿qué define exactamente un problema como un problema de big data ?
¿El cálculo tiene que estar relacionado con algún conjunto de propósitos específicos, como la minería de datos / recuperación de información, o podría un algoritmo para problemas generales de gráficos ser etiquetado como datos grandes si el conjunto de datos es lo suficientemente grande ? Además, ¿qué tan grande es lo suficientemente grande (si es posible definirlo)?
Respuestas:
Para mí (proveniente de un fondo de base de datos relacional), "Big Data" no se trata principalmente del tamaño de los datos (que es la mayor parte de lo que las otras respuestas son hasta ahora).
"Big Data" y "Bad Data" están estrechamente relacionados. Las bases de datos relacionales requieren 'datos prístinos'. Si los datos están en la base de datos, son precisos, limpios y 100% confiables. Las bases de datos relacionales requieren "Grandes datos" y se dedica una gran cantidad de tiempo, dinero y responsabilidad para garantizar que los datos estén bien preparados antes de cargarlos en la base de datos. Si los datos están en la base de datos, es 'evangelio' y define la comprensión del sistema de la realidad.
"Big Data" aborda este problema desde la otra dirección. Los datos están mal definidos, muchos de ellos pueden ser inexactos y, de hecho, muchos de ellos pueden faltar. La estructura y el diseño de los datos es lineal en lugar de relacional.
Big Data debe tener suficiente volumen para que la cantidad de datos incorrectos o datos faltantes se vuelva estadísticamente insignificante. Cuando los errores en sus datos son lo suficientemente comunes como para cancelarse entre sí, cuando los datos que faltan son proporcionalmente lo suficientemente pequeños como para ser insignificantes y cuando sus requisitos y algoritmos de acceso a datos son funcionales incluso con datos incompletos e inexactos, entonces tiene "Big Data" .
"Big Data" no se trata realmente del volumen, se trata de las características de los datos.
fuente
Como notará correctamente, en estos días "big data" es algo que todos quieren decir que tienen, lo que implica una cierta flexibilidad en la forma en que las personas definen el término. Sin embargo, en general, diría que ciertamente está tratando con Big Data si la escala es tal que ya no es factible administrar con tecnologías más tradicionales como RDBMS, al menos sin complementarlas con tecnologías de Big Data como Hadoop.
El tamaño de sus datos debe ser realmente para que ese sea el caso es discutible. Aquí hay una publicación de blog (algo provocativa) que afirma que no es realmente el caso de menos de 5 TB de datos. (Para ser claros, no dice "Menos de 5 TB no es un gran dato", sino solo "Menos de 5 TB no es lo suficientemente grande como para que necesite Hadoop").
Pero incluso en conjuntos de datos más pequeños, las tecnologías de big data como Hadoop pueden tener otras ventajas, como ser muy adecuadas para operaciones por lotes, jugar bien con datos no estructurados (así como datos cuya estructura no se conoce de antemano o podría cambiar), escalabilidad horizontal ( escalar agregando más nodos en lugar de reforzar sus servidores existentes), y (como uno de los comentaristas en las notas de publicación vinculadas anteriormente) la capacidad de integrar su procesamiento de datos con conjuntos de datos externos (piense en un mapa de reducción donde el mapeador hace una llamada a otro servidor). Otras tecnologías asociadas con big data, como las bases de datos NoSql, enfatizan el rendimiento rápido y la disponibilidad constante al tratar con grandes conjuntos de datos, además de ser capaces de manejar datos semiestructurados y escalar horizontalmente.
Por supuesto, los RDBMS tradicionales tienen sus propias ventajas, incluidas las garantías de ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) y un mejor rendimiento para ciertas operaciones, además de ser más estandarizados, más maduros y (para muchos usuarios) más familiares. Por lo tanto, incluso para datos "grandes" indiscutibles, puede tener sentido cargar al menos una parte de sus datos en una base de datos SQL tradicional y usarlos junto con tecnologías de grandes datos.
Por lo tanto, una definición más generosa sería que tiene grandes datos siempre y cuando sea lo suficientemente grande como para que las tecnologías de grandes datos le brinden algún valor agregado. Pero, como puede ver, eso puede depender no solo del tamaño de sus datos, sino de cómo desea trabajar con ellos y qué tipo de requisitos tiene en términos de flexibilidad, consistencia y rendimiento. ¿Cómo estás usando sus datos es más relevante para la cuestión de lo que lo está utilizando para (por ejemplo, la minería de datos). Dicho esto, los usos como la minería de datos y el aprendizaje automático tienen más probabilidades de producir resultados útiles si tiene un conjunto de datos lo suficientemente grande para trabajar.
fuente
Cantidad total de datos en el mundo: 2,8 zetabytes en 2012, se estima que alcanzará los 8 zetabytes en 2015 ( fuente ) y con un tiempo de duplicación de 40 meses. No puede ser más grande que eso :)
Como ejemplo de una sola organización grande, Facebook obtiene 500 terabytes por día, en un almacén de 100 petabytes, y ejecuta 70k consultas por día a partir de 2012 ( fuente ) Su almacén actual es> 300 petabytes.
Big data es probablemente algo que es una buena fracción de los números de Facebook (1/100 probablemente sí, 1/10000 probablemente no: es un espectro, no un solo número).
Además del tamaño, algunas de las características que lo hacen "grande" son:
se analiza de forma activa, no solo se almacena (cite "Si no está aprovechando los grandes datos, entonces no tiene grandes datos, solo tiene un montón de datos" Jay Parikh @ Facebook)
La construcción y gestión de un almacén de datos es un importante proyecto de infraestructura.
está creciendo a un ritmo significativo
no está estructurado o tiene una estructura irregular
Definición de Gartner: "Los datos grandes son activos de información de gran volumen, alta velocidad y / o gran variedad que requieren nuevas formas de procesamiento" (Los 3V) Por lo tanto, también piensan que la "grandeza" no se trata del tamaño del conjunto de datos, pero También sobre la velocidad y la estructura y el tipo de herramientas necesarias.
fuente
Para mí, Big Data se trata principalmente de las herramientas (después de todo, ahí es donde comenzó); un conjunto de datos "grande" es demasiado grande para ser manejado con herramientas convencionales, en particular, lo suficientemente grande como para exigir almacenamiento y procesamiento en un clúster en lugar de una sola máquina. Esto descarta un RDBMS convencional y exige nuevas técnicas para el procesamiento; en particular, varios marcos similares a Hadoop facilitan la distribución de un cálculo en un clúster, a costa de restringir la forma de este cálculo. Secundaré la referencia a http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html; Las técnicas de Big Data son un último recurso para los conjuntos de datos que simplemente son demasiado grandes para manejarlos de otra manera. Yo diría que cualquier conjunto de datos para cualquier propósito podría calificar si fuera lo suficientemente grande, aunque si la forma del problema es tal que las herramientas existentes de "big data" no son apropiadas, entonces probablemente sería mejor crear un nuevo nombre.
Por supuesto, hay cierta superposición; cuando (brevemente) trabajé en last.fm, trabajamos en el mismo conjunto de datos de 50 TB usando Hadoop y también en una base de datos SQL en un servidor bastante ridículo (recuerdo que tenía 1 TB de RAM, y esto fue hace unos años). Lo que en cierto sentido significaba que ambos eran y no eran grandes datos, dependiendo del trabajo en el que estuviera trabajando. Pero creo que es una caracterización precisa; las personas que trabajaron en los trabajos de Hadoop consideraron útil ir a conferencias y sitios web de Big Data, mientras que las personas que trabajaron en los trabajos de SQL no lo hicieron.
fuente
Los datos se vuelven "grandes" cuando una computadora de una sola mercancía ya no puede manejar la cantidad de datos que tiene. Denota el punto en el que debe comenzar a pensar en construir supercomputadoras o usar clústeres para procesar sus datos.
fuente
Big Data se define por el volumen de datos, es cierto, pero no solo. La particularidad de grandes volúmenes de datos es que se necesita para almacenar una gran cantidad de diferentes ya veces no estructurados para animales todos los tiempos y de un montón de sensores , por lo general durante años o diez años .
Además, necesita algo escalable, para que no le lleve medio año encontrar los datos.
Así que aquí viene Big Data, donde el método tradicional ya no funcionará. SQL no es escalable. Y SQL trabaja con datos muy estructurados y vinculados (con todos esos desorden de clave primaria y externa, unión interna, solicitud imbricada ...).
Básicamente, debido a que el almacenamiento se vuelve cada vez más barato y los datos se vuelven cada vez más valiosos, el gran gerente le pide al ingeniero que registre todo. Agregue a esto toneladas de nuevos sensores con todos esos dispositivos móviles, redes sociales, elementos embebidos ... etc. Entonces, como los métodos clásicos no funcionan, tienen que encontrar nuevas tecnologías (almacenar todo en archivos, en formato json, con gran índice, lo que llamamos noSQL).
Por lo tanto, Big Data puede ser muy grande, pero no puede ser tan grande, sino datos complejos, no estructurados o diversos, que deben almacenarse rápidamente y ejecutarse en un formato sin formato. Primero nos enfocamos y almacenamos, y luego vemos cómo vincular todo.
fuente
Compartiré cómo es Big Data en genómica, en particular el ensamblaje de novo.
Cuando secuenciamos su genoma (por ejemplo: detectar genes nuevos), tomamos miles de millones de lecturas cortas de próxima generación. Mire la imagen a continuación, donde intentamos reunir algunas lecturas.
Esto parece simple? Pero, ¿y si tienes mil millones de esas lecturas? ¿Qué pasa si esas lecturas contienen errores de secuencia? ¿Qué pasa si su RAM no tiene suficiente memoria para mantener las lecturas? ¿Qué pasa con las regiones de ADN repetitivas, como el elemento Alu muy común ?
El ensamblaje de novo se realiza mediante la construcción de un gráfico de De-Bruijn :
El gráfico es una estructura de datos con minas inteligentes para representar lecturas superpuestas. No es perfecto, pero es mejor que generar todas las superposiciones posibles y almacenarlas en una matriz.
El proceso de ensamblaje puede tardar días en completarse, porque hay un buen número de caminos que un ensamblador necesitaría atravesar y colapsar.
En genómica, tienes un gran dato cuando:
https://en.wikipedia.org/wiki/De_Bruijn_graph
fuente
Hay algo especial para graficar algoritmos, preguntas originales que lo hacen especial, que se trata de la capacidad de particionar los datos esencialmente.
Para algunas cosas, como ordenar números en una matriz, no es demasiado difícil dividir el problema en la estructura de datos en piezas disyuntivas más pequeñas, por ejemplo, Aquí: Paralelo en el lugar de fusión
Entonces, aunque 10 GB de números para ordenar podrían ser un problema muy accesible en una PC normal (puede hacerlo a través de la programación dinámica y tener una muy buena previsibilidad sobre el flujo del programa), trabajar con una estructura de datos de gráficos de 10 GB ya puede ser un desafío.
Hay una serie de marcos especializados, como GraphX, que utilizan métodos y paradigmas informáticos especiales para sortear los desafíos inherentes de los gráficos.
Entonces, para responder brevemente a su pregunta: como se mencionó anteriormente por otros, cuando sus datos no caben en la memoria principal en una PC normal pero necesita todo para responder a su problema, es una buena pista de que sus datos ya son algo grandes. Sin embargo, el etiquetado exacto depende, creo un poco en la estructura de datos y la pregunta formulada.
fuente
Creo que los grandes datos comienzan en el punto donde el tamaño le impide hacer lo que quiere. En la mayoría de los escenarios, hay un límite en el tiempo de ejecución que se considera factible. En algunos casos es una hora, en algunos casos puede ser unas pocas semanas. Mientras los datos no sean lo suficientemente grandes como para que solo los algoritmos O (n) puedan ejecutarse en el marco de tiempo factible, no alcanzó los datos grandes.
Me gusta esta definición, ya que es independiente del volumen, el nivel de tecnología y los algoritmos específicos. No es agnóstico a los recursos, por lo que un estudiante graduado alcanzará el punto de big data mucho antes que Google.
Para poder cuantificar qué tan grandes son los datos, me gusta considerar el tiempo necesario para hacer una copia de seguridad. Dado que la tecnología avanza, los volúmenes que se consideraban grandes hace algunos años ahora son moderados. El tiempo de respaldo mejora, a medida que la tecnología mejora, al igual que el tiempo de ejecución de los algoritmos de aprendizaje. Creo que es más sensato hablar sobre un conjunto de datos que lleva X horas hacer una copia de seguridad y no sobre un conjunto de datos de Y bytes.
PD.
Es importante tener en cuenta que incluso si alcanzó el punto de big data y no puede ejecutar algoritmos de complejidad más que O (n) de forma directa, hay muchas cosas que puede hacer para beneficiarse de dichos algoritmos.
Por ejemplo, la selección de características puede reducir la cantidad de características de las que depende el tiempo de ejecución de muchos algoritmos. En muchas distribuciones de cola larga, enfocarse en los pocos elementos en la cabeza puede ser beneficioso. Puede usar una muestra y ejecutar en ella los algoritmos más lentos.
fuente
Los datos son "Big Data" si son de tal volumen que resulta menos costoso analizarlos en dos o más computadoras de consumo, que en una computadora de gama alta.
Esto es esencialmente cómo se originó el sistema de archivos "BigFiles" de Google. Page y Brin no podían permitirse un elegante servidor Sun para almacenar y buscar en su índice web, por lo que conectó varias computadoras básicas
fuente
Tiendo a estar de acuerdo con lo que @Dan Levin ya ha dicho. En última instancia, dado que queremos extraer información útil de los datos en lugar de simplemente almacenarlos, es la capacidad de aprender algoritmos / sistemas lo que debería determinar lo que se llama "Big data". A medida que los sistemas ML evolucionen, lo que hoy era Big Data ya no será Big Data mañana.
Una forma de definir Big data podría ser:
Suponiendo esta definición, siempre que la memoria ocupada por una fila individual (todas las variables para un solo punto de datos) no exceda la RAM de la máquina, deberíamos estar en el régimen de datos no grandes .
Nota: Vowpal Wabbit (por mucho, el sistema de ML más rápido a día de hoy) puede aprender sobre cualquier conjunto de datos siempre que una fila individual (punto de datos) sea <RAM (digamos 4 GB). El número de filas no es una limitación porque usa SGD en múltiples núcleos. Hablando por experiencia, puede entrenar un modelo con 10k características y 10MN filas en una computadora portátil en un día.
fuente
"Big data" es literalmente solo una gran cantidad de datos. Si bien es más un término de marketing que otra cosa, la implicación generalmente es que tiene tantos datos que no puede analizar todos los datos a la vez porque la cantidad de memoria (RAM) que se necesitaría para mantener los datos en la memoria procesarlo y analizarlo es mayor que la cantidad de memoria disponible.
Esto significa que los análisis generalmente tienen que hacerse en segmentos de datos aleatorios, lo que permite construir modelos para compararlos con otras partes de los datos.
fuente