Está en la página 1de 10

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


LICENCIATURA EN INGENIERÍA DE SOFTWARE
SISTEMAS DE INFORMACIÓN
GESTIÓN DE LA INFORMACIÓN

Resumen del Data Engineering Cookbook

Integrante:
Sebastián Jurado 20-70-4776

Profesor:
Ing. Carmen Ortega

SEMESTRE 1, 2022

1
El Data Engineering Cookbook pretende ser un punto de partida para aprender sobre la
ciencia de los datos, así como identificar los temas a investigar y convertir a personas
que lean este libro en ingenieros de datos. Diversos temas son tratados en este libro,
pero la información primordial es que es lo más importante para ser un ingeniero de
datos.

Ingeniero de Datos vs Científico de Datos

El ingeniero de datos es el enlace entre la estrategia de datos de la gestión y los


científicos de datos, estos construyen las plataformas que hace que los científicos de
datos realicen su función.

Las plataformas realizadas por los ingenieros se suelen utilizar de estas maneras:

• La creación de algoritmos por parte de científicos de datos


• Ingesta y almacenamiento de grandes cantidades de datos
• Automatización de modelos y algoritmos de aprendizaje automático
• Visualización de datos para empleados y clientes

Para crear estas plataformas, el ingeniero debe poseer un conocimiento en tecnologías


de big data, tales como Hadoop, Spark, Hbase, Cassandra, etc. Así como también
tener la experiencia de especificar, configurar y mantener estas tecnologías, igualmente
experiencia de implementar sistemas en infraestructuras en la nube o hardware local.

Mientras que el científico de datos es el que realiza el análisis predictivo y algoritmos


de machine learning a la hora de realizar pruebas de datos en una empresa

Ahora bien ¿Qué es Machine Learning?


Es un algoritmo alimentado con datos de medición que genera un modelo y lo optimiza
en función de los datos con los que se alimentó, Representa un patrón de cómo son
visualizados los datos. Se pueden mostrar nuevos datos al modelo y dirá si estos aun
representan los datos con los que ha sido entrenado. Esta técnica también es utilizada
para predecir fallas en maquinarias por adelantado.

2
El trabajo del científico de datos es descubrir cómo preparar los datos que alimentan
estos algoritmos, y para entrenar un algoritmo son necesarios datos útiles

El proceso de aprendizaje automático muestra que comienza con una fase de


capacitación. Una fase en la que básicamente está entrenando los algoritmos para
crear el resultado correcto, está teniendo los parámetros de entrada. Básicamente la
configuración del modelo.

Mientras es puesto el algoritmo a entrenar, este modifica los parámetros de


entrenamiento y los datos para obtener una salida.

Una vez se está satisfecho con el resultado se pone en producción, donde el algoritmo
se alimenta con datos en vivo, luego se monitorea la salida, si los resultados tienen
sentido es que el modelo se encuentra en funcionamiento, mientras que, si la salida del
modelo cambia y dura más de lo esperado, significa que el modelo ya no es funcional.
En este caso sería necesario desencadenar un reentrenamiento del modelo y
reemplazar al que ya está en producción.

3
La parte de ingeniería del modelo hace que estos datos se encuentren disponibles,
tanto para el científico de datos y el proceso de aprendizaje de datos. Entonces esta
parte del modelo se empieza con la configuración de hiperparámetro, y se debe
almacenar y administrar estas configuraciones construyendo canalizaciones de como
ingresan los datos y como la plataforma es conectada a otros sistemas

Una vez que los datos y los sistemas están disponibles, es hora de la parte del
aprendizaje automático, Está listo para procesar. Básicamente listo para el científico de
datos. Una vez que se realiza el análisis, el ingeniero de datos necesita construir
canalizaciones para que sea accesible nuevamente. Por ejemplo, para otros procesos
analíticos, para API, para front-end, etc.

Otro plan de datos es el de plataforma de ciencia de datos, que implica en conectar las
APIs y las apps de flujo de datos para dar inicio a la fase de ingestión y enviar datos a
un almacenamiento temporal que permite a otras etapas realizar un acceso más simple
y rápido a los datos entrantes. Luego en la fase de búfer se implementan herramientas
que pretenden tener un sistema intermedio para datos entrantes y tiene sistema de
publicación y suscripción tales como Apache Kafka, Redis u otras herramientas de las

4
nubes como Google pub/sub o AWS Kinesis. Si no se tiene un búfer, se puede tener
problemas a escribir en directamente en una base de almacenamiento o al procesar los
datos directamente. Siempre se puede tener picos de datos entrantes que detengan los
sistemas. Ya en la fase del framework de procesos es donde se realiza el análisis
real en forma de flujo y procesamiento por lotes ya que los datos de transmisión se
toman de la ingesta y se introducen en el análisis, plataformas como Stream analiza los
datos en vivo generando así resultados rápidos. Luego en la fase de almacenamiento
es donde simplemente es almacenado todos los datos y permite analizar el panorama
general, la mayoría de los datos pueden parecer inútiles, pero es importante que todos
los tipos de datos estén almacenados en cualquier sistema de almacenamiento de big
data o almacenamiento en la nube o también sistemas SQL y/o NoSQL. Ya para
finalizar en la fase de visualización se busca que los usuarios comerciales tomen
decisiones basadas en los datos, es importante tener una buena presentación visual de
los datos y dar acceso directo a estos en el clúster de big data que permitirá a los
desarrolladores utilizar los resultados de los análisis, así como datos sin procesar para
crear la aplicación más optimas.

Habilidades básicas de ingeniería de datos

Lo primordial para el ingeniero de datos es, como de costumbre, aprender a programar.


Ya que sin codificación no se puede realizar mucho en este campo. Se puede escribir u
obtener datos en una base SQL, pruebas para producir mensajes a un tema de Kafka y
comprender el código fuente en un servicio web de java y lectura de estadísticas de
contador de un almacén de valor de clave Hbase.

También es importante que el ingeniero de datos este familiarizado con Git, ya que es
importante que se tenga un seguimiento de los cambios en la codificación de los
programas. Si el código es colocado en GitHub es de fácil acceso para compañeros del
grupo encontrar códigos y entenderlo a través de documentación y pueden extraerlo,
crear ramas y hacer cambios.

5
Es necesario también poseer como profesional la capacidad de adaptarse rápidamente
a circunstancias cambiantes y realizar trabajos en frameworks que agilicen el trabajo de
datos de manera considerable. Es necesario también los conocimientos básicos de
computación y transmisión de redes de datos, así como también de seguridad y
privacidad de los datos, los usos de Linux y los conceptos básicos de sistemas
operativos. Y por último saber los conceptos básicos y el manejo de contenedores y
microservicios de Docker.

También los ingenieros de datos toman en cuenta la nube, y las plataformas que usan
esta, tales como AWS, Azure, IBM, Google y las nubes hibridas (que son una
combinación de implementación local y en la nube, teniendo como ejemplo a Google
Anthos)

Habilidades avanzadas de Ingeniería de Datos


También es importante una buena plataforma de datos, y conocer la definición de Big
Data en sí, que son conjuntos de datos extremadamente grandes que pueden ser
analizados computacionalmente para revelar patrones, tendencias y asociaciones,
especialmente relacionadas con el comportamiento y las interacciones humanas.

Se dice que Big Data posee cuatro “V’s” que dan una dirección general del proyecto,
las cuales son:

• Volumen
• Velocidad
• Veracidad
• Variedad

Sin embargo, Big Data posee un problema y es que es muy poco confiable. Realmente
un usuario no puede confiar en los datos, en especial cuando se viene del lado de IoT y
no se puede estar 100% seguro de que la medida real es la correcta y el libro en si no
recomienda usar herramientas de Big Data.

6
Otro tema para tratar es el ETL, el cual es un despliegue de plataforma típico de la
plataforma de la vieja escuela, en el cual consiste en los dispositivos que utilizan una
API de datos para cargar datos y almacenarlos en una base de datos SQL. Una
herramienta de análisis externa consulta los datos y carga los resultados a la base de
datos SQL. A continuación, los usuarios utilizan la interfaz de usuario para visualizar los
datos almacenados en la base de datos.

• La base de datos extrae todas las filas necesarias del almacén.


• Los datos extraídos se transforman, por ejemplo, ordenados por marca de
tiempo o algo mucho más complejo.
• Los datos transformados se cargan en el destino (la interfaz de usuario) para la
creación del gráfico.

7
Aunque el libro no recomienda en sí la utilización de Big Data, recomienda el uso de las
plataformas de Hadoop en caso de que utilizar Big Data sea necesario en el desarrollo
del proyecto de software

Hadoop es una plataforma para el almacenamiento distribuido y el análisis de conjuntos


de datos muy grandes. Hadoop tiene cuatro módulos principales: Hadoop común,
HDFS, MapReduce y YARN. La forma en que estos módulos están entrelazados es lo
que hace que Hadoop tenga tanto éxito. Las bibliotecas y funciones comunes de
Hadoop trabajan en segundo plano. Por eso no voy a profundizar en ellas. Están ahí
principalmente para dar soporte a los módulos de Hadoop.

Algo que hace que Hadoop sea tan popular es que su funcionalidad central es el motor
de adopción ya que muchos proyectos y plataformas de Apache utilizan sus funciones
principales, entre estas están:

Siendo Apache Spark, considerado por muchos años como el rival de Hadoop, el
software más eficiente con el que Hadoop puede encajar ya que Spark es un marco de
análisis para los recursos que almacena Hadoop,

Desde la perspectiva de la arquitectura de la plataforma, Hadoop y Spark generalmente


se administran en el mismo clúster. Esto significa que en cada servidor donde se

8
ejecuta un nodo de datos HDFS, también se ejecuta un subproceso de trabajo de
Spark.

En el procesamiento distribuido, la transferencia de red entre máquinas es un gran


cuello de botella. La transferencia de datos dentro de una máquina reduce
significativamente este tráfico. Spark puede determinar en qué nodo de datos se
almacenan los datos necesarios. Esto permite una carga directa de los datos desde el
almacenamiento local a la memoria de la máquina.

Spark puede identificar de forma nativa en qué nodo de datos se almacenan los datos
necesarios. Esto permite que Spark use el trabajador que se ejecuta en la máquina
donde se almacenan los datos para cargar los datos en la memoria

Para finalizar, de mas habilidades que el ingeniero de datos debe tener de manera
avanzada es el manejo de Apache Flink y las Bases de Datos SQL y NoSQL (de estas
se pueden destacar tales como Elasticsearch, MongoDB, Hive y Impala) así como
visualización en Android e IOS y herramientas de inteligencia empresarial tales como
Tableau.

9
Consideración Final: Realizar esta lectura pude comprender como trabajan los
ingenieros y científicos de datos, que les conviene y que no a la hora de realizar
proyectos con datos, y las herramientas y plataformas disponibles para la realización
de estas actividades de análisis e investigación de datos, también se pudo observar las
ventajas y desventajas de usar Big Data, y los procesos realizados a la hora de
implementar Machine Learning, entre muchas cosas más.

10

También podría gustarte