¿Cómo manejan los ingenieros los grandes datos de, por ejemplo, el monitoreo continuo de la salud?

No estoy exactamente claro sobre el enfoque de su pregunta. Por “tratar con” quiere decir “¿cómo almacenan los datos?”, O “¿cómo analizan los datos?”, O ambos, o algo más? Además, ¿le interesan principalmente los datos numéricos (como los de un sensor), o también le interesan los datos estructurados y no estructurados (como los que se pueden encontrar en las notas de una enfermera y un médico o en el informe de diagnóstico)? Por ahora, intentaré proporcionar respuestas de alto nivel a algunos de los problemas técnicos relacionados con los datos numéricos de los sensores digitales en una aplicación médica.

Primero, dado que está hablando de monitoreo, supongo que se refiere a datos de sensores en tiempo real, como datos de frecuencia cardíaca, presión y nivel de oxigenación de un monitor cardíaco, o datos de actividad cerebral de un EEG extendido. En ambos casos, las frecuencias de muestreo suelen ser superiores a 200 a 300 por segundo, por lo que un electrocardiograma de 24 horas con 256 electrodos producirá más de 4 mil millones de muestras.

Existen bases de datos especializadas para almacenar esta cantidad de datos. Referidos como una Base de Datos de Series de Tiempo (TSDB), no son relacionales, sino que han sido optimizados para almacenar y recuperar valores numéricos de series de tiempo. Los registros se indexan por clave, por valor (o rango de valores) y por marca de tiempo. La mayoría también incluye funciones para comprimir los datos. Una técnica común es almacenar un valor inicial y una marca de tiempo, pero luego no almacenar valores posteriores a menos que el nuevo valor se desvíe del valor anterior en más de una cierta cantidad. Dependiendo de la naturaleza de los datos, esto puede reducir sustancialmente el número de registros, pero con pérdida de fidelidad. Antes de tomar una decisión sobre qué (si es que hay alguna) compresión usar, asegúrese de comprender cómo se usarán los datos y cuán sensibles son los análisis para valorar las fluctuaciones.

Al igual que con casi cualquier producto de software, puede encontrar bases de datos de series de tiempo comerciales y de código abierto (TSDB). Una búsqueda rápida en la web mostró esta bonita publicación de blog sobre opciones de código abierto: las 10 mejores bases de datos de series temporales. También hay productos comerciales, como el sistema OSISoft Pi.

Otro desafío cuando se trata de miles de millones de registros es cómo analizar los datos. En términos generales, agrupo los problemas de análisis en dos categorías principales: inmediata (en tiempo real a medida que se recopilan los datos) y todo lo demás.

El análisis inmediato con mayor frecuencia consiste en pruebas y acciones bastante simples. ¿La lectura más reciente queda fuera de un rango aceptable? ¿Ha cambiado el valor más o menos rápido de lo esperado? ¿Fallamos en recibir un valor? Las aplicaciones pueden configurar una alarma, a través de un mensaje de texto automatizado, un correo electrónico o un panel web cuando se observan este tipo de eventos.

Sin embargo, cuando las cosas se ponen realmente interesantes es cuando tienes la oportunidad de preocuparte realmente por los datos y no estás limitado a mirar solo unas pocas muestras o a responder rápidamente. Los ingenieros pueden usar estadísticas, regresión, redes neuronales y otros algoritmos para estudiar estos conjuntos de datos. Muchos lenguajes, plataformas y herramientas están especializados para manejarlos. Hay lenguajes como R que se desarrollaron para realizar análisis estadísticos de grandes conjuntos de datos. Mathematica es otro buen entorno para visualizar, manipular y estudiar grandes conjuntos de datos. Existen bibliotecas especializadas, como Sci-Kit for Python, que proporcionan algoritmos de alto rendimiento (y complicados) que simplifican enormemente los esfuerzos de desarrollo.

Espero que esta respuesta sea útil, sea cual sea su aplicación.

El monitoreo continuo de la salud ahora se realiza a través de varios dispositivos médicos portátiles, que no es más que un dispositivo sensor. Continuamente generan un montón de datos. ¡Ahora, esta gran cantidad de datos es la idea principal con la que lidiar! Hay ciertos algos escalables que procesan los datos de este sensor y resultan en patrones útiles. Además, hay ciertos marcos que se han creado para analizar estos voluminosos conjuntos de datos. Hadoop es la mejor opción hasta el momento, que hace uso de MapReduce.