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 suelen utilizar para permitir el análisis posterior y la ciencia de datos ; que a menudo implica aprendizaje automático . [1] [2] Hacer que los datos sean utilizables generalmente implica computación y almacenamiento sustanciales , así como procesamiento de datos .
Alrededor de las décadas de 1970 y 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 basándose 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 estratégica de negocios y los sistemas de información. Uno de los primeros contribuyentes clave (a menudo llamado el "padre" de la metodología de la 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 con James Martin. [5] [6] [7] Durante los siguientes años, Finkelstein continuó trabajando en una dirección más impulsada por los negocios, cuyo objetivo era abordar un entorno empresarial que cambia rápidamente; Martin continuó trabajando en una dirección más orientada al 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 de 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 utilizaron datos para su trabajo (por ejemplo, informes) y, por lo general, hubo poca superposición en el conjunto de habilidades de datos entre estas partes del negocio.
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 llevó al término big data para describir los datos en sí, y las empresas de tecnología basadas en datos como Facebook y Airbnb comenzaron a utilizar la frase datos. ingeniero . [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 almacenamiento y ETL . Comenzaron a crear la ingeniería de datos , un tipo de ingeniería de software centrada en los datos, y en particular en infraestructura , almacenamiento , protección de datos , ciberseguridad , minería , modelado , procesamiento y 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 del negocio, como ventas y marketing , y no solo por TI. [8]
La informática de alto rendimiento es fundamental para el procesamiento y análisis de datos. Un enfoque particularmente extendido de la informática para la 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 aprendizaje profundo . [9] [10] [11] Implementaciones más recientes, como Differential/Timely Dataflow, han utilizado computación incremental para un procesamiento de datos mucho más eficiente. [9] [12] [13]
Los datos se almacenan de diversas formas, uno de los factores decisivos clave es cómo se utilizarán los datos. Los ingenieros de datos optimizan los sistemas de procesamiento y almacenamiento de datos para reducir 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 sólidas 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 escalaban horizontalmente más fácilmente que las bases de datos relacionales al renunciar a las garantías de transacción ACID, además de reducir el desajuste de impedancia relacional entre objetos . [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 procesamiento analítico en línea (pero no procesamiento de transacciones en línea), entonces los almacenes de datos son la opción principal. [20] Permiten el análisis de datos, la minería y la inteligencia artificial a 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 hacia los almacenes de datos. [21] Los analistas de negocios , ingenieros de datos y 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 depósito 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 . Se puede crear un lago de datos localmente 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 simplemente se almacenan como archivos . Hay varias opciones:
La cantidad y variedad de diferentes procesos de datos y ubicaciones de almacenamiento pueden resultar abrumadoras para los usuarios. Esto inspiró el uso de un sistema de gestión de flujo de trabajo (por ejemplo, Airflow ) para permitir especificar, crear y monitorear las tareas de datos. [24] Las tareas a menudo se especifican como un gráfico acíclico dirigido (DAG) . [24]
Los objetivos de negocio que los ejecutivos fijan para el futuro se caracterizan en los planes de negocio clave, siendo más notable su definición en los planes de negocio tácticos y su implementación en los planes de negocio operativos. Hoy en día, la mayoría de las empresas reconocen la necesidad fundamental de desarrollar un plan de negocios que siga esta estrategia. A menudo resulta difícil implementar estos planes debido a la falta de transparencia a nivel 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 a la mala interpretación del plan de negocios.
El diseño de sistemas de datos implica 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 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 grandes cantidades de datos y traducirlos en conocimientos . [28] Se centran en la preparación para la producción de datos y aspectos como formatos, resiliencia, escalamiento y seguridad. Los ingenieros de datos generalmente provienen de ingeniería de software y dominan lenguajes de programación como Java , Python , Scala y Rust . [29] [3] Estarán más familiarizados con las bases de datos, la arquitectura, la computación en la nube y el 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 , la estadística y el aprendizaje automático . [3] [30]
{{cite journal}}
: Citar diario requiere |journal=
( ayuda )