La ingeniería de datos se refiere a la construcción de sistemas que permitan la recopilación y el uso de datos . Estos datos se utilizan generalmente para permitir el análisis posterior y la ciencia de datos , que a menudo implica el aprendizaje automático . [1] [2] Hacer que los datos sean utilizables generalmente implica un gran volumen de procesamiento y almacenamiento , así como procesamiento de datos .
Alrededor de los años 1970/1980, se creó el término metodología de ingeniería de la información (IEM) para describir el diseño de bases de datos y el uso de software para el análisis y procesamiento de datos. [3] [4] Estas técnicas estaban destinadas a ser utilizadas por administradores de bases de datos (DBA) y analistas de sistemas basados en una comprensión de las necesidades de procesamiento operativo de las organizaciones para la década de 1980. En particular, estas técnicas estaban destinadas a ayudar a cerrar la brecha entre la planificación empresarial estratégica y los sistemas de información. Un colaborador temprano clave (a menudo llamado el "padre" de la metodología de ingeniería de la información) fue el australiano Clive Finkelstein , quien escribió varios artículos sobre ella entre 1976 y 1980, y también fue coautor de un influyente informe del Savant Institute sobre ella con James Martin. [5] [6] [7] Durante los siguientes años, Finkelstein continuó trabajando en una dirección más impulsada por los negocios, que tenía la intención de abordar un entorno empresarial que cambiaba rápidamente; Martin continuó trabajando en una dirección más impulsada por el procesamiento de datos. De 1983 a 1987, Charles M. Richter, guiado por Clive Finkelstein, desempeñó un papel importante en la renovación de IEM y ayudó a diseñar el producto de software IEM (datos del usuario), lo que ayudó a automatizar IEM.
A principios de la década de 2000, los datos y las herramientas de datos generalmente estaban en manos de los equipos de tecnología de la información (TI) en la mayoría de las empresas. [8] Luego, otros equipos usaban datos para su trabajo (por ejemplo, informes) y, por lo general, había poca superposición en el conjunto de habilidades de datos entre estas partes de la empresa.
A principios de la década de 2010, con el auge de Internet , el aumento masivo de los volúmenes, la velocidad y la variedad de datos condujo al término big data para describir los datos en sí, y las empresas de tecnología impulsadas por datos como Facebook y Airbnb comenzaron a usar la frase ingeniero de datos . [3] [8] Debido a la nueva escala de los datos, grandes empresas como Google , Facebook, Amazon , Apple , Microsoft y Netflix comenzaron a alejarse de las técnicas tradicionales de ETL y almacenamiento. Comenzaron a crear ingeniería de datos , un tipo de ingeniería de software centrada en los datos y, en particular , en la infraestructura , el almacenamiento , la protección de datos , la ciberseguridad , la minería , el modelado , el procesamiento y la gestión de metadatos . [3] [8] Este cambio de enfoque se centró particularmente en la computación en la nube . [8] Los datos comenzaron a ser manejados y utilizados por muchas partes de la empresa, como ventas y marketing , y no solo TI. [8]
La computación de alto rendimiento es fundamental para el procesamiento y análisis de datos. Un enfoque particularmente extendido para la computación en ingeniería de datos es la programación de flujo de datos , en la que el cálculo se representa como un gráfico dirigido (gráfico de flujo de datos); los nodos son las operaciones y los bordes representan el flujo de datos. [9] Las implementaciones populares incluyen Apache Spark y TensorFlow , específico para el aprendizaje profundo . [9] [10] [11] Las implementaciones más recientes, como Differential/Timely Dataflow, han utilizado la computación incremental para un procesamiento de datos mucho más eficiente. [9] [12] [13]
Los datos se almacenan de diversas formas, y uno de los factores decisivos es cómo se utilizarán. Los ingenieros de datos optimizan los sistemas de almacenamiento y procesamiento de datos para reducir los costos. Utilizan compresión, partición y archivo de datos.
Si los datos están estructurados y se requiere alguna forma de procesamiento de transacciones en línea , generalmente se utilizan bases de datos . [14] Originalmente , se utilizaban principalmente bases de datos relacionales , con fuertes garantías de corrección de transacciones ACID ; la mayoría de las bases de datos relacionales utilizan SQL para sus consultas. Sin embargo, con el crecimiento de los datos en la década de 2010, las bases de datos NoSQL también se han vuelto populares, ya que se escalan horizontalmente más fácilmente que las bases de datos relacionales al renunciar a las garantías de transacción ACID, así como al reducir el desajuste de impedancia objeto-relacional . [15] Más recientemente, las bases de datos NewSQL , que intentan permitir el escalamiento horizontal manteniendo las garantías ACID, se han vuelto populares. [16] [17] [18] [19]
Si los datos están estructurados y se requiere un procesamiento analítico en línea (pero no procesamiento de transacciones en línea), entonces los almacenes de datos son una opción principal. [20] Permiten el análisis de datos, la minería y la inteligencia artificial en una escala mucho mayor que la que pueden permitir las bases de datos, [20] y, de hecho, los datos a menudo fluyen desde las bases de datos a los almacenes de datos. [21] Los analistas de negocios , los ingenieros de datos y los científicos de datos pueden acceder a los almacenes de datos utilizando herramientas como SQL o software de inteligencia empresarial . [21]
Un lago de datos es un repositorio centralizado para almacenar, procesar y proteger grandes volúmenes de datos. Un lago de datos puede contener datos estructurados de bases de datos relacionales , datos semiestructurados , datos no estructurados y datos binarios . Un lago de datos se puede crear en las instalaciones o en un entorno basado en la nube utilizando los servicios de proveedores de nube pública como Amazon , Microsoft o Google .
Si los datos están menos estructurados, a menudo se almacenan simplemente como archivos . Existen varias opciones:
La cantidad y variedad de diferentes procesos de datos y ubicaciones de almacenamiento pueden llegar a ser abrumadoras para los usuarios. Esto inspiró el uso de un sistema de gestión de flujo de trabajo (por ejemplo, Airflow ) para permitir que las tareas de datos se especifiquen, creen y supervisen. [24] Las tareas se especifican a menudo como un gráfico acíclico dirigido (DAG) . [24]
Los objetivos empresariales que los ejecutivos establecen para el futuro se caracterizan en planes empresariales clave, con su definición más destacada en planes empresariales tácticos y su implementación en planes empresariales operativos. La mayoría de las empresas reconocen hoy la necesidad fundamental de desarrollar un plan empresarial que siga esta estrategia. A menudo resulta difícil implementar estos planes debido a la falta de transparencia en los niveles táctico y operativo de las organizaciones. Este tipo de planificación requiere retroalimentación para permitir la corrección temprana de los problemas que se deben a la falta de comunicación y la mala interpretación del plan empresarial.
El diseño de sistemas de datos involucra varios componentes, como la arquitectura de plataformas de datos y el diseño de almacenes de datos. [25] [26]
Este es el proceso de producir un modelo de datos , un modelo abstracto para describir los datos y las relaciones entre las diferentes partes de los datos. [27]
Un ingeniero de datos es un tipo de ingeniero de software que crea canales ETL de big data para gestionar el flujo de datos a través de la organización. Esto hace posible tomar enormes cantidades de datos y traducirlos en conocimientos . [28] Se centran en la preparación de la producción de datos y en aspectos como los formatos, la resiliencia, la escalabilidad y la seguridad. Los ingenieros de datos suelen tener experiencia en ingeniería de software y son competentes en lenguajes de programación como Java , Python , Scala y Rust . [29] [3] Estarán más familiarizados con bases de datos, arquitectura, computación en la nube y desarrollo de software ágil . [3]
Los científicos de datos están más centrados en el análisis de los datos, estarán más familiarizados con las matemáticas , los algoritmos , las estadísticas y el aprendizaje automático . [3] [30]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )