¿Es necesario aprender big data antes del análisis de datos?

No, pero si tiene algún conocimiento sobre algoritmos de minería de datos. Eso será beneficioso en el aprendizaje de análisis de datos.

Data Analytics es un campo que exige una variedad de habilidades. Tener conocimiento de Hadoop es uno de ellos. Las tareas principales de un análisis de datos incluyen:

  1. Recopilación de datos de diferentes recursos.
  2. Limpieza y preprocesamiento de los datos.
  3. Estudio de propiedades estadísticas de los datos.
  4. Usando técnicas de Machine Learning para hacer pronósticos y obtener información de los datos.
  5. Comunicar los resultados a los tomadores de decisiones de una manera fácil de entender.

Fuera de los puntos anteriores, el conocimiento de Hadoop es útil para los puntos 1, 2 y 3, pero también debe tener una sólida base matemática / estadística y un fuerte conocimiento de las técnicas computacionales para trabajar en el campo de la ciencia de datos. Además, Hadoop no es el único marco que se utiliza en Data Science. El ecosistema de Big Data tiene una variedad de marcos, cada uno específico para un caso de uso particular. Este artículo ofrece material introductorio sobre los principales marcos de Big Data que podrían usarse en análisis:

Conexión entre Big Data y Analytics

Analytics se ocupa principalmente de encontrar información a partir de datos y hacer predicciones. Las ideas son principalmente patrones en los datos que brindan información sobre el negocio que de otro modo no estaría disponible directamente. Utilizando estos patrones, se podrían calcular los resultados futuros del proceso. Machine Learning es la herramienta principal que ayuda a calcular patrones invisibles a partir de los datos. El aprendizaje automático y la inteligencia artificial son dominios muy importantes y existieron mucho antes de la aparición de Big Data. Sin embargo, estos dominios estaban limitados a la investigación académica ya que estas tecnologías requerían una gran cantidad de recursos. Además, para que estas tecnologías funcionen, necesitan una gran cantidad de datos. Antes de las tecnologías de Big Data, era difícil manejar una cantidad tan grande de datos. Por lo tanto, Analytics no era de mucha utilidad. Pero con la reducción en el costo de cómputo y la aparición de tecnologías de Big Data, Analytics está ganando impulso y tiende a convertirse en una práctica convencional.

Marcos de Big Data que todo programador debería saber

El dominio de Big Data cubre una amplia gama de marcos que van desde el aprendizaje automático hasta el sistema de archivos y las bases de datos. En este artículo discutiremos los principales marcos de Big Data que un programador debe saber para mejorar sus habilidades. En este tutorial solo nos centraremos en una breve introducción y casos de uso de cada marco. Discutiremos estos marcos bajo el siguiente criterio:
1. Introducción sobre el marco.
2. Características del marco.
3. Casos de uso de framework.

A continuación se mencionan los marcos de Big Data que todo programador debería conocer. Esta no es una lista exhaustiva. Este artículo solo se enfoca en dar una breve introducción a los principales marcos de big data.

1. Hadoop

Hadoop es el proyecto principal del ecosistema de Big Data. Hadoop ayuda a realizar computación distribuida en un grupo de computadoras de consumo (que tienen un costo normal). La idea principal detrás de hadoop es la computación distribuida escalable. Por escalable queremos decir que podríamos agregar / eliminar nodos adicionales al clúster a medida que la cantidad de datos aumenta o disminuye, respectivamente.

Hadoop tiene dos componentes principales:
1. HDFS: HDFS conocido como Hadoop Distributed File System es el sistema de archivos utilizado por Hadoop. HDFS ofrece una vista de la estructura de un solo directorio al usuario, mientras que bajo el capó el sistema de archivos se distribuye en la naturaleza.

2. Map-Reduce: es el entorno de programación distribuida proporcionado por Hadoop. Map-Reduce se usa para implementar la lógica de la aplicación que utilizará los datos almacenados en HDFS para producir resultados. Map-Reduce se basa en la computación paralela. El programa normal que usted como programador escribe para el sistema convencional no funcionará en Map-Reduce. Para Map-Reduce, debe convertir su programa en serie a una versión paralela.

caracteristicas:
a. Hadoop está escrito en Java y, por lo tanto, tiene API disponibles para el lenguaje Java.
si. Para otros idiomas, existe una utilidad conocida como Hadoop Streaming a través de la cual otros idiomas podrían comunicarse con Hadoop.
C. Hadoop funciona principalmente en la plataforma Linux, sin embargo, recientemente también se agregó soporte para Windows.

Casos de uso:
1. Hadoop se usa principalmente donde se necesita procesamiento por lotes. No es excelente para el procesamiento en tiempo real.
2. La construcción de un modelo de Machine Learning lleva una cantidad de tiempo considerable. Entonces Hadoop podría usarse para la construcción de modelos. Además, estos modelos podrían utilizarse con otros marcos en tiempo real.

2. chispa

Spark es otro marco de Big Data. Spark admite el procesamiento en memoria. Hadoop lee y escribe datos directamente desde el disco, perdiendo así una cantidad significativa de tiempo en la E / S del disco. Para abordar este escenario, Spark almacena resultados intermedios en la memoria, lo que reduce la E / S del disco y aumenta la velocidad de procesamiento. Según las estadísticas que se muestran en la página de inicio de Spark, podría ejecutar un programa hasta 100 veces más rápido en comparación con Hadoop.

caracteristicas:
1. Spark está escrito en lenguaje de programación Scala.
2. Puede escribir programas en Java, Scala y Python para trabajar directamente con Spark ya que Spark tiene API separadas para los 3 lenguajes de programación. En futuras versiones también se supone que hay integración para R.
3. Spark podría ejecutarse con su propia administración de clúster, con MESOS o con HDFS proporcionado por Hadoop.
4. Soporte de procesamiento en memoria.

Casos de uso:
1. Podría usarse donde se necesitan resultados rápidos tareas especialmente iterativas.
2. Funciona extremadamente bien para las tareas de Machine Learning, ya que son de naturaleza iterativa.
3. Spark podría usarse en todos los escenarios donde Hadoop podría usarse. Sin embargo, Spark proporciona una mejor velocidad en comparación con Hadoop. Además, no es un reemplazo de Hadoop, sino que podría ejecutarse junto a Hadoop.

Marcos del ecosistema Spark:

Spark viene con una colección de marcos de utilidad enumerados a continuación:
1. Spark SQL: le ayuda a ejecutar consultas SQL en datos distribuidos. Usted como programador no necesita preocuparse por hacer que la consulta sea distribuida. Solo necesita escribir la consulta y Sparks maneja todos los detalles de la distribución de la consulta y la combinación de los resultados. Spark SQL también podría usarse con JDBC y ODBC.

2. Spark Streaming: es una API de transmisión. En escenarios como cuando tienes que procesar transmisiones en vivo de Facebook o Twitter, puedes usar Spark Streaming.

3. MLlib: es una API de Machine Learning proporcionada por Spark. Tiene varios algoritmos para tareas como: Clasificación, Regresión, Agrupación, Extracción de características, etc. MLlib podría usarse para crear aplicaciones inteligentes para análisis y pronósticos. Los algoritmos principales proporcionados por MLlib son:

  • Estadísticas básicas: estadísticas resumidas, correlaciones, muestreo estratificado, pruebas de hipótesis, generación de datos aleatorios.
  • Clasificación y regresión : modelos lineales (SVM, regresión logística, regresión lineal), Bayes ingenuos, árboles de decisión, conjuntos de árboles (bosques aleatorios y árboles impulsados ​​por gradientes), regresión isotónica.
  • Filtrado colaborativo: mínimos cuadrados alternos (ALS)
  • Agrupación: k-means, mezcla gaussiana, power iteration clustering (PIC), asignación de Dirichlet latente (LDA), streaming k-means,
  • Reducción de dimensionalidad: descomposición de valores singulares (SVD), análisis de componentes principales (PCA)
  • Extracción y transformación de características
  • Minería de patrones frecuentes: crecimiento de FP
  • Optimización: descenso de gradiente estocástico, BFGS de memoria limitada (L-BFGS)

4. GraphX: es una biblioteca de análisis gráfico. GraphX ​​podría usarse para análisis de gráficos como en el análisis de redes sociales o en dominios de computación cognitiva.

3. Mahout

Mahout es un marco de Machine Learning. Inicialmente, Mahout se basó en Hadoop Map-Reduce, pero en abril de 2015 se transfirió a Spark. Mahout tiene un conjunto muy rico de algoritmos de aprendizaje automático:
1. Filtrado colaborativo: Filtrado colaborativo basado en el usuario, Filtrado colaborativo basado en elementos, Factorización matricial con ALS, Factorización matricial con ALS sobre retroalimentación implícita, Factorización matricial ponderada, SVD ++.
2. Clasificación: Regresión logística: entrenado a través de SGD, Bayes ingenuos / Bayes ingenuos complementarios, Bosque aleatorio, Modelos ocultos de Markov, Perceptrón multicapa.
3. Agrupación: agrupación de dosel, agrupación de k-medias, k-medias difusas, transmisión de k-medias, agrupación espectral.
4. Reducción de la dimensionalidad: descomposición del valor singular, algoritmo de Lanczos, SVD estocástica, PCA (a través de SVD estocástica), descomposición QR.
5. Modelos de tema: asignación de Dirichlet latente
6. Varios: RowSimilarityJob, ConcatMatrices, Collocations, Sparse TF-IDF Vectors from Text, XML Parsing, Email Archive Parsing, Lucene Integration, Evolutionary Processes.

Característica:
1. Mahout podría usarse con Hadoop o Spark.
2. Los principales lenguajes de programación son Scala y Java.

Casos de uso:
1. Utilizado principalmente para tareas de análisis de Machine Learning como: sistemas de recomendación, sistemas de clustering, sistemas de clasificación, etc.

4. HBase

HBase es una base de datos distribuida, orientada a columnas. Se relaciona estrechamente con el concepto de BigTable de Google. Es una de las populares bases de datos NoSQL. Se incluye en la categoría orientada a columnas, ya que todas las filas de una tabla no necesitan tener las mismas columnas (como en las Bases de datos relacionales). En una fila podría almacenar una fila con 3 columnas y en la siguiente fila podría almacenar una fila con 30 columnas. Entonces, en cierto sentido, tiene un esquema flexible. Puede escribir programas Map-Reduce y usar HBase como su back-end. HBase tiene propiedades de escalabilidad, es decir, si el tamaño de la tabla aumenta, la tabla se divide en partes y estas partes de la tabla se almacenan en diferentes nodos del clúster.

caracteristicas:
1. Es bueno para leer datos en lugar de escribir / actualizar datos.
2. No es compatible con SQL. Aunque es una base de datos, todavía tiene su lenguaje específico de dominio y no es compatible con SQL nativo.
3. Tiene un rico conjunto de API para lenguaje de programación Java.

Casos de uso:
1. Podría usarse donde no tiene un esquema predefinido.
2. Podría usarse donde las columnas de la tabla se agregan / eliminan dinámicamente.
3. Podría usarse donde tiene una gran cantidad de datos que no pueden ser manejados por un solo nodo.

5. Colmena

Hive es un almacén de datos distribuido. Hive se utiliza para proporcionar una estructura parcial a datos no estructurados. No es compatible con SQL, pero tiene un lenguaje similar a SQL conocido como HiveQL. Bajo el capó cuando escribe una consulta HiveQL y la ejecuta, se convierte en un conjunto de tareas Map-Reduce, luego los resultados de estas tareas Map-Reduce se fusionan para dar una vista transparente al usuario final.

caracteristicas:
1. Proporciona API de Java.
2. Utilizó HDFS como back-end, por lo tanto limitado por la velocidad de HDFS.
3. Utiliza Map-Reduce para el procesamiento de datos.

Casos de uso:
1. Podría usarse donde necesita un almacén de datos distribuido.
2. Las consultas no se pueden ejecutar en tiempo real, por lo que se pueden usar con aplicaciones que no tienen límites de tiempo estrictos.

6. cerdo

Pig es otra plataforma de análisis de datos para grandes conjuntos de datos. Tiene su lenguaje específico de dominio llamado Pig Latin para consultar los datos. Se usa con Hadoop y funciona con HDFS.

caracteristicas:
1. Convierte las declaraciones de Pig Latin en Map-Reduce debajo del capó.
2. Permite funciones definidas por el usuario. Por lo tanto, podría escribir sus funciones personalizadas y usarlas mientras realiza consultas con Pig Latin.
3. Fácil de usar. Requiere muy menos líneas de código en comparación con Map-Reduce para la misma tarea.
4. Trabajos ETL principalmente adecuados.
5. Utiliza una evaluación perezosa. Significa que parte del código solo se ejecuta cuando es necesario.
6. Admite la creación de tuberías de datos en forma de gráficos acíclicos dirigidos.

Casos de uso:
1. Podría usarse para datos ETL (Extract Transform Load) con muy pocas líneas de código.

7. Logstash

Logstash es un marco de procesamiento de registros. Los eventos y registros, como los registros del servidor y los registros de utilización del sistema, se pueden procesar fácilmente con Logstash. Podría aceptar entradas de una amplia variedad de entradas como: collectd, eventlog, ganglia, log4j, rabbitmq, rackspace, redis, tcp, udp, twitter, etc. También podría usarse como un nivel intermedio que acepta registros no estructurados de una fuente. Luego, trátelos y agregue estructura a estos datos no estructurados. Luego pase estos datos a alguna fuente de salida como: elasticsearch, correo electrónico, archivo, http, mongodb, nagios, rabbitmq, solr, etc.

caracteristicas:
1. Gran herramienta para el procesamiento de datos y registros no estructurados.
2. Soporta API de Java.
3. Utiliza JSON para pasar mensajes.

Casos de uso:
1. Utilizado en el procesamiento de datos de registro.

Gracias por A2A,

La analítica se puede hacer sin big data (después de todas las técnicas estadísticas, el primer paso más popular en los enfoques analíticos ha existido antes de big data). Entonces debería ser al revés. Pero de cualquier manera, no veo que una habilidad sea precursora necesaria de la otra. Las habilidades de Big Data estarían más orientadas al manejo (recuperación, almacenamiento y procesamiento de grandes datos); más aspectos de ingeniería para la gestión de datos, técnicas analíticas (estadísticas, ML, econometría) proporcionan un marco para la inferencia útil.

En realidad, no solo depende de qué tipo de datos debe manejar. Por lo general, los datos son de dos tipos de datos estructurados y datos no estructurados. Los datos estructurados son fáciles de analizar, pero esto no es lo mismo con Unstructure. Los datos no estructurados son una línea continua de texto, números, caracteres especiales, etc. Analizar esto es tedioso porque si recién está comenzando, no será necesario que analice los datos no estructurados. Entonces, una vez que esté bien en el dominio, puede combinar su conjunto de habilidades y aprender las técnicas avanzadas. Todo lo mejor.

¡Espero que esto ayude!