Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Como en cualquier solución de analítica, para poder explotar los datos, es necesario
primero extraerlos, y luego tener la infraestructura necesaria para su tratamiento. Es
importante entender cuáles son los pasos a seguir para diseñar cualquier solución
de analítica y qué particularidades tienen esos pasos en una solución de wearables o
IoT.
Durante esta unidad revisaremos la secuencia que va desde la ingesta hasta el
almacenamiento y disponibilización de datos, a modo general. En las siguientes
unidades nos enfocaremos, puntualmente, en el diseño de una solución específica
de wearables, para poder comprender todos los aspectos inherentes a la explotación
y minería de datos.
Procesamiento de datos
La ingesta de datos es el proceso mediante el que se introducen datos, de diferentes fuentes, estructura y/o
características dentro de otro sistema de almacenamiento o procesamiento de datos.
Es sin duda, el primer paso que ha de tenerse en cuenta a la hora de diseñar una arquitectura Big Data, para
lo cual, hay que tener muy claro no solamente el tipo y fuente de datos sino también cual es el objetivo final y
que se pretende conseguir con ellos.
Es por esto que se debe realizar un análisis detallado, ya que la ingesta es la base para determinar las
tecnologías que compondrán tu arquitectura Big Data. Para realizar dicho análisis, se deben considerar los
siguientes factores:
A partir de la información recolectada se puede comenzar a analizar las conexiones que será necesario
realizar, la capacidad de procesamiento y almacenamiento necesaria, la escalabilidad necesaria para
soportar el sistema actual y a futuro, y también que tan compleja podría resultar la incorporación de nuevas
fuentes de datos.
Latencia/Disponibilidad
Como ya se mencionó anteriormente, y se verá durante todo el cursado, también es clave tener en cuenta
cómo serán utilizados estos datos. Es vital tener este conocimiento para planificar una estrategia de ingesta
de datos y realizar una selección de infraestructura y herramientas a utilizar, definiendo así, el método de
extracción, ya que no es lo mismo en el caso de que trabajemos con un esquema de procesamiento por
lotes, donde la latencia puede estar en horas o días y será más sencillo realizar los cálculos sobre la
infraestructura necesaria, que en el esquema de procesamiento en tiempo real, donde debemos
anticiparnos a la posibilidad de incrementar la capacidad de infraestructura de acuerdo al volumen de datos
que tengamos en un momento dado, además de la complejidad inherente a tener que procesar, almacenar y
disponibilizar los datos con una latencia que se mide en microsegundos.
Actualizaciones
Es habitual que los datos que han sido ingestados sufran modificaciones en sus fuentes de origen, y
entonces es importante considerar con qué frecuencia se realizan esas modificaciones. Además, es
importante entender que estrategia se debe seguir con la información que ya haya sido ingestada, es decir:
O bien, ¿habría que modificar la información ya almacenada? Y en ese caso, ¿la actualización se realizará
mediante updates, o a través de deletes+insert?
Es importante siempre tener en cuenta qué latencia es necesaria, además de las capacidades que ofrezca
la plataforma final donde se almacenarán los datos.
Transformaciones
En muchos casos es necesario, adicionalmente, realizar transformaciones durante el proceso de ingesta.
Este proceso de transformación puede depender de las diferencias entre las plataformas de origen/destino,
o puede ser por necesidades del negocio. En todos aquellos casos en los que sea posible, es considerado
una mejor práctica el almacenar primero los datos en un formato exactamente igual al de origen y luego
hacer las transformaciones correspondientes. Esto es más correcto desde el punto de vista de trazabilidad
de los datos. Sin embargo, en aquellos casos en los que se decida realizar las transformaciones al vuelo
(suele suceder cuando se necesita trabajar los datos en tiempo real), es importante considerar cómo
incidirá ese procesamiento en la latencia para el uso de los datos.
¿Los datos serán almacenados en una base de datos relacional, en un sistema de archivos, en una
base documental?
¿Cuáles serán los procesos, servicios o usuarios que luego utilicen esos datos?
Las respuestas a estas preguntas ayudarán a decidir cómo realizar el particionamiento y modelado de datos
a partir de la ingesta.
On Premise:
Apache Flume
Apache Kafka
Logstash
Fluentd
Sqoop
Apache NiFi
Apache Spark
Cloud:
IoT Core
IoT GreenGrass
Cloud Pub/Sub
Por un lado, se usarán estándares, por el otro, en este momento de definición y durante
todo el ciclo de desarrollo, toma un papel preponderante la heterogeneidad de capacidades
que tienen los diferentes dispositivos. No poseen los mismos sensores un smartwatch
para natación, que otro enfocado para corredores de maratón; mucho más distante es aún
en el ciclismo, donde el dispositivo tiene gran capacidad computacional. Por dicha
variedad, es que existen diferentes estándares.
Para abordar la diversidad de dispositivos, se hará foco en los dos estándares principales
en la industria, señalados por Dynastream Innovations Inc. (2017).
Estos incluyen el FIT, diseñado para trabajar con wearables de pocos recursos computacionales, y el TCX
que está orientado a dispositivos de mayor capacidad como minicomputadoras.
FIT - Transferencia de datos flexible e interoperable
Este protocolo está diseñado específicamente para el almacenamiento e intercambio de datos que se
originan en los dispositivos de deporte, fitness y salud. El protocolo FIT define un conjunto de plantillas de
almacenamiento de datos (mensajes FIT) que se pueden utilizar para almacenar información, tal como
perfiles de usuario, y los datos de actividad en los ficheros. Está específicamente diseñado para ser
compacto, interoperable y extensible.
ANT-FS proporciona un marco sólido para la transferencia de archivos de forma inalámbrica entre dos
dispositivos. La Figura 1, ilustra el protocolo FIT que se utiliza para transferir información personal de
monitorización adquirida durante el ejercicio, para una base de datos de Internet.
El protocolo FIT define el proceso para que los archivos se transfieran. Normalmente, los datos de difusión
se recogen mediante un dispositivo de visualización. El dispositivo de visualización, entonces, codificaría los
datos en el formato de archivo FIT de acuerdo a su perfil de producto. El archivo FIT se transfiere asimismo a
otro dispositivo, que a continuación decodificaría los archivos recibidos de acuerdo a su propio perfil de
producto.
Los sensores ANT+ recogen parámetros de medida, tales como la frecuencia cardíaca y la velocidad de
carrera. Los datos se transmiten en tiempo real, utilizando formatos de datos interoperables ANT +. Los
eventos de sesión y los datos de la actividad en tiempo real se guardan en un archivo que se muestra en un
dispositivo de visualización.
De la misma forma, el archivo FIT se transfiere a la PC a través de recursos compartidos de archivos ANT
(ANT-FS). Acá la opción de integración más completa es que la transferencia se haga a un smartphone, y
desde el mismo, a un servidor (PC) para ser utilizados por las aplicaciones de internet. El protocolo FIT
ofrece un formato coherente, permitiendo que todos los dispositivos posteriores puedan compartir y utilizar
los datos.
Los registros de datos en el archivo FIT son el contenido principal y el propósito del protocolo FIT.
Mensajes de definición
–
tal como lo indica su nombre, precisa los próximos mensajes de datos; específicamente, definirá un tipo de
mensaje local y lo asociará a un mensaje FIT específico.
Mensaje de datos
–
campos de datos poblados en el formato descrito por el mensaje de definición anterior. El mensaje de
definición y sus mensajes de datos asociados tendrán tipos de mensajes locales coincidentes.
Cuando los datos son utilizados por el dispositivo receptor, se decodifica, para eso se relacionan los
mensajes FIT recibidos con la lista global de mensajes FIT. Los valores decodificados se pasarán entonces
como estructuras u objetos a la aplicación.
Si hay una diferencia en la versión de perfil entre los dos dispositivos, los datos que faltan se establecerán
en valores no válidos o predeterminados como se definen en el protocolo FIT y cualquier mensaje o datos
desconocidos se ignorarán. El archivo FIT se mantiene en su forma original para su transferencia a otros
dispositivos, si lo desea (Dynastream Innovations Inc., 2017a).
Esquema de un TCX
El Esquema XML es un lenguaje de esquema basado en XML utilizado para describir la estructura y las
restricciones de los contenidos de los documentos XML. O sea, un esquema XML es quien verifica si un
mensaje XML entrante o saliente es válido acorde a lo que se espera que tenga su contenido. El esquema
TCX entonces será de gran utilidad y aplicación, para conocer qué datos puede contener cada mensaje TCX,
cuáles de ellos son opciones u obligatorios, cómo se le denomina a cada uno, qué tipo de valores puede
tener, etcétera. En el marco del desarrollo de software, en la fase de análisis y diseño, el esquema XML se
utiliza para definir cómo serán los mensajes XML a intercambiar entre dispositivos. En la fase de
programación, tener el esquema XML definido, otorga gran facilidad para corroborar si los mensajes
recibidos son válidos. En este caso, para corroborar si un mensaje TCX recibido es válido, se lo contrarresta
contra el esquema en cuestión.
Actividades.
Circuito.
Carpetas con deportes múltiples. Indica qué semana, y qué deportes se realizan.
Vuelta de actividad. Incluye tiempo total en segundos, distancia en metros, máxima velocidad,
calorías, intensidad, cadencia, puntos, y notas; como extensión se le agrega la potencia.
Punto. Contiene tiempo, posición (latitud y longitud), altura en metros, distancia en metros,
cadencia.
Procesamiento de datos
Independientemente del origen de los datos, y de las herramientas utilizadas, todas las soluciones de
analítica involucran pasos similares en cuanto al procesamiento, incluyendo limpieza y curación de datos,
transformación e ingeniería de variables, modelado, visualización y disponibilización. En general, cuando
hablamos del procesamiento de los datos, estamos refiriéndonos, principalmente a las etapas de limpieza,
curación, transformación e ingeniería de variables.
Además, la mayoría de estos datos tienen las características de series de tiempo, por lo que su análisis
suele estar vinculado a procesos de agregación y cálculo de distintos indicadores.
El procesamiento de datos a partir de dispositivos IoT y Wearables suele llevarse adelante en tres partes o
capas.
La primera capa consiste en el propio wearable o dispositivo IoT. Si bien la capacidad de procesamiento de
este tipo de dispositivos suele ser relativamente limitada, ha venido creciendo en el tiempo y permite un
procesamiento cada vez mayor «on the edge». En este sentido, estos dispositivos realizan un primer
procesamiento, estabilizando lecturas incongruentes y completando datos faltantes en el propio dispositivo.
Además, es cada vez más frecuente que estos dispositivos cuenten con alguna pantalla o mecanismo para
comunicar los detalles de esa información al usuario final. Recordando que el volumen generado es
considerable, también suelen tener un método de agregación para realizar y visualizar una analítica básica
sobre esos datos. Sin embargo, a la hora de exportar los datos, lo más habitual es obtenerlos de forma cruda
y no agregados, ya que el potencial de los mismos es mucho mayor.
La segunda capa, en la mayoría de los casos, es el dispositivo móvil. El móvil es el elemento concentrador
de los datos de los wearables, ya contando con una mayor capacidad de procesamiento. La capacidad del
dispositivo móvil para utilizar esos datos dependerá del desarrollo de software que haya detrás de la
aplicación utilizada para vincular con el wearable. Esta capa es opcional, ya que existen dispositivos que se
conectan directamente a la nube, pero lo más habitual es que esté presente.
Las tareas de procesamiento realizadas en esta capa suelen involucrar tareas de agregación de datos en
ventanas temporales más allá de las soportadas por el dispositivo wearable, y cálculos más avanzados. Se
suelen involucrar, además, tareas adicionales de integración con información provenientes de otras fuentes,
como mapas, redes sociales y otros. Esta integración permite explotar el verdadero potencial de los
dispositivos wearables sin necesidad, en algunos casos, de tener que vincularse a un servidor centralizado
de datos.
La tercera capa es aquella a la que llamamos «la nube». Consiste en un conjunto de recursos de
infraestructura gestionados, generalmente, por la empresa fabricante del dispositivo wearable. Los datos
procesados en esta capa ya no son individuales, en el sentido de que no se analiza sólo el dato del
dispositivo, sino la relación de ese dispositivo con toda la población existente. Estos datos suelen ser
trabajados con bastante discreción por parte de estas compañías ya que son, por un lado, datos privados y
sensibles. Por otro lado, esos datos son, además, el activo más importante de la empresa, que permite
hacer el diferencial contra los competidores. En esta capa se brindan soluciones más complejas, como
algoritmos de machine learning para realizar análisis predictivos y de segmentación de clientes.
Página 4 de 4
On Premise:
Cassandra
MongoDB
Redis
On Cloud:
DynamoDB (AWS)
DocumentDB (AWS)
BigQuery (GCP)
Cosmos DB (Azure)
La utilización de estas bases de datos suele requerir un modelado de datos cuidadoso y una arquitectura
diseñada ad hoc. Son uno de los puntos más costosos de la infraestructura cuando hablamos de procesos
en realtime, por eso es importante diseñar la estrategia con cuidado. Estas capas de almacenamiento sólo
deberían usarse para los datos que deben mantenerse en caliente, es decir, que deben ser almacenados y
consultados con una latencia de un dígito de milisegundos.
En aquellos casos en los que no sea necesaria una consulta inmediata, y pueda manejarse un esquema de
espera o colas para consultar los datos, es más recomendable utilizar otros tipos de almacenamiento como
ser el HDFS. Particularmente los servicios cloud de almacenamiento HDFS tienen muy buenos tiempos de
respuesta y pueden ser utilizados para el almacenamiento de data a consultar en frío, y también datos a
archivar, a muy bajo costo.
Las soluciones de HDFS en la nube más conocidas son Simple Storage Service (AWS), Google Cloud
Storage y Azure Blob Storage.
Es en este contexto que hay que trabajar con negocio en definir muy claramente cuanto será el tiempo a
mantener los datos en cada zona, con el fin de poder mantener una arquitectura óptima operacionalmente al
menor costo posible.
Casas Roma, J., Nin Guerrero, J. y Julbe López, F. (2019). Big data. ES: Editorial UOC.
Extensión: capítulo 1, páginas 21-60.
Para acceder, ingrese a eBook21. Por dudas o inconvenientes comuníquese a
biblioteca@ues21.edu.ar.
Godfrey, A., Hetherington, V., Shum, H., Bonato, P., Lovell, N.H. y Stuart, S. (2015). From A
to Z: Wearable technology explained. Recuperado de
https://www.sciencedirect.com/science/article/pii/S0378512218302330
Kirby, B. y Mosley, B. (2015). The Architecture of Wearable Technology. Recuperado de
https://www.researchgate.net/publication/278327463_The_Architecture_of_Wearable_Tec
hnology
Verdadero
Falso
SUBMIT
Ingesta y Procesamiento.
Almacenamiento
SUBMIT
XML
FIT
JSON
TCX
No hay estándar
SUBMIT
Algoritmos Predictivos
Verdadero
Falso
SUBMIT