Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Resumen—El siguiente documento presenta los resultados de la implementación del método MapReduce para el análisis de datos de consumo eléctrico de clientes residenciales y pequeños comercios. Se presentan los perfiles de carga mensual y horario promedio mensual por día de la semana de archivos de consumo de energía a partir de datos con integración regular inferior a una hora. Se describe además el proceso llevado a cabo para aplicar esta técnica mediante el uso de código en Python y el uso de Hadoop. Los resultados sirven como insumo para métodos analíticos cuando se busquen respuestas a preguntas planteadas sobre los datos procesados. Abstract—This document presents the results of MapReduce Implementation method for energy consumption data in residential and small commercial clients. Monthly load profiles and monthly average hourly profile by day of the week are shown from regular time data measured in less than an hour. Furthermore, the process used to apply this technique is described through Python code and Hadoop use. Results are useful as inputs for analytical methods in order to look for answers for questions about data analyzed. Keywords— BigData, MapReduce, Smart Meters. I. INTRODUCCIÓN a reciente normatividad referente a la instalación de medidores inteligentes [1] implica una masificación en el almacenamiento de datos provenientes de estos medidores. Cada que cada cliente residencial, comercial e industrial dispondrá de al menos un medidor entregando, entre otros, datos de consumo de energía y otras variables eléctricas. Esta cantidad de datos brinda una oportunidad tanto a las empresas de energía como a los consumidores de, por ejemplo, reducir las pérdidas y hacer más eficiente el consumo y suministro del recurso. El uso de Big data para tratar con esa cantidad de datos se vuelve imperativo por parte los actores del mercado de energía. Evaluar las particularidades de cada aplicación y las tecnologías a implementar buscando aprovechar estos datos debe ser una tarea continua por parte del personal técnico de las empresas de energía y sector académico. Con este propósito en mente, se propone revisar la implementación de la técnica de Big data MapReduce para optimizar la caracterización de los clientes de energía residenciales y de pequeños comercios teniendo como base [2]. II. OBJETIVOS i. Objetivo General Identificar patrones de consumo de energía en clientes residenciales y pequeños comercios utilizando el método MapReduce. ii. Objetivos Específicos a. Diseñar e implementar por medio de Python el método MapReduce para data obtenida por medidores de energía residenciales y comerciales. b. Mostrar el patrón de consumo de energía a partir del resultado de MapReduce de los datos de consumo de diversos clientes. c. Concluir a cerca de la información relacionada con los patrones de consumo obtenidos. III. PLANTEAMIENTO DEL PROBLEMA La masificación de medidores inteligentes de energía demanda la recolección, almacenamiento y transformación de gran cantidad de datos. El aprovechamiento de esta gran cantidad de datos es clave para cumplir objetivos de eficiencia energética, control de pérdidas, facturación y masificación de energías renovables. Incluso pequeños y medianos consumidores pueden hacer uso de los datos para entre otras cosas, reducir el consumo y pago en la factura de energía o aumentar la vida útil de sus activos. Implementación de la técnica de Big Data MapReduce para la caracterización del consumo de energía de clientes residenciales y comerciales. Leonardo Fajardo Osorio, Universidad Distrital Francisco José de Caldas, lfosorio@correo.udistrital.edu.co L 2 Encontrar métodos eficaces para aprovechar esa cantidad de datos y transformarla en información útil para todos los agentes del mercado, se vuelve un tema prioritario de cara a la digitalización del sector eléctrico. IV. ALCANCES Y LIMITACIONES Se realizan dos ejemplos de ejecución de MapReduce utilizando código en Python. Para correr los procesos con archivos Mapper y Reducer escritos en Python, se utiliza la utilidad Hadoop Streaming. Se corren los procesos con datos de uso libre de consumo de energía eléctrica para sector residencial y comercial. Por medio Google Cloud® se corren los procesos de Mapeo y Reducción en un clúster alquilado compuesto de un nodo principal dos nodos trabajadores. V. MARCO TEÓRICO BIG DATA En la actualidad siguen existiendo más de una definición de Big data [3], pero puede definirse como el fenómeno que surge de la rápida aceleración de diversidad, complejidad y velocidad de datos. Relacionado muy a menudo con los conceptos de volumen, velocidad y variedad [4]. El volumen se refiere al tamaño de los datos, velocidad a la cantidad de datos generados y procesados o analizados por unidad de tiempo y variedad a qué tan uniformes o estructurados se encuentran los datos. Esto se conoce como los tres problemas vitales de Big data, a los que se agregan otras siete “V” como por ejemplo la veracidad, la variabilidad y la velocidad de los datos [5]. Big data se refiere a los desafíos de quienes se enfrentan al crecimiento exponencial de datos en términos de los problemas “V”. Hadoop Dentro de las tecnologías Big data, se encuentra Hadoop. Es una implementación de Big data de código abierto y de amplio uso en distintas industrias. Es una plataforma para el almacenamiento y procesado de distintos tipos de datos que permite obtener rápidamente valor de estos [6]. El framework Hadoop es una combinación de distintos componentes como sistemas de archivo, motores de procesamiento, herramientas de ingestión de datos, bases de datos y más [7]. HDFS El sistema distribuido de archivos de Hadoop o HDFS (Hadoop distributed file system) es el componente principal de Hadoop y lo que le da la característica más importante, ser un sistema distribuido. Es lo que permite el almacenamiento de archivos de gran volumen sobre un cluster de computadoras [8]. Al distribuir el o los archivos entre los elementos del clúster, facilita que cada computador o nodo perteneciente a ese clúster pueda realizar el procesamiento de ese segmento de los datos, reduciendo el tiempo utilizado para mover la data del punto de almacenamiento a los puntos de procesamiento. MapReduce Es un modelo computacional utilizado por Hadoop para el procesamiento en paralelo de grandes cantidades de datos [9]. Tiene dos etapas, una de mapeo en la cual se toman los datos en HDFS y se crean pares <llave, valor-1, valor-2, …, valor-n> y otra etapa de reducción que busca disminuir la salida de los datos uniendo los datos de acuerdo con su llave y valor. Existe una etapa intermedia de ordenamiento que es clave según el resultado de salida que se busque. La siguiente imagen ilustra el flujo ejecutado en un proceso MapReduce. Fig. 1. Flujo MapReduce. VI. PROCESO DE DESARROLLO Para iniciar con el desarrollo lo primero es asegurarse de contar con datos masivos de medidores inteligentes. Una vez se tengan estas fuentes de datos, se procede a diseñar las tareas de mapeo y reducción. Se utiliza como primera fuente un conjunto de 100 archivos de consumo de energía en kWh del sector comercial, cada uno con muestras de 12 meses y con un tiempo de integración de 5 minutos. Estos archivos en formato CSV tienen un tamaño de entre 4.5 y 4.7 MB y una única columna de datos de energía consumida. 3 Fuente 1: https://open-enernoc- data.s3.amazonaws.com/anon/index.html. La segunda fuente de archivos corresponde a un único archivo con valores de potencia en kW para 370 con intervalos de 15 minutos entre medidas. Primero se obtienen los valoresde energía antes de utilizar la data para su manipulación. Fuente 2: https://archive.ics.uci.edu/ml/datasets/ElectricityLoadDia grams20112014 Para ejecutar los jobs en Hadoop, se utiliza un cluster del servicio Dataproc de Google Cloud, compuesto de un nodo principal y dos nodos trabajadores. Fig. 2. Captura de Pantalla de la Consola Google Cloud para manejar el cluster rentado. Las tareas Map y Reduce se escriben en Python para cada uno de los casos. Buscando que Hadoop pueda ejecutar estas tareas en Python, se utiliza la utilidad Hadoop-streaming desde el nodo principal del clúster. La siguiente tabla muestra un fragmento de un archivo de la primera fuente: TABLA I FRAGMENTO DE ARCHIVO DE ENTRADA DE LA PRIMERA FUENTE. Timestamp dttm_utc value estimated anomaly 1325376600 2012-01-01 00:10:00 52.1147 0 1325376900 2012-01-01 00:15:00 50.9517 0 1325377200 2012-01-01 00:20:00 49.8164 0 1325377500 2012-01-01 00:25:00 49.1795 0 … … … … … De la tabla anterior se utilizan únicamente las columnas de tiempo “dttm_utc” y de consumo de energía en kWh “value”. Se crea el primer caso para apropiar el manejo de la herramienta utilizando este archivo y teniendo como objetivo encontrar el total del consumo mensual. Para esto se plantean las siguientes tareas Map y Reduce. Map. Llave: Mes y año Valor: Energía. Orden. Ordenado por fecha de manera descendente. Reduce. Suma de los valores que tengan la misma llave. Como resultado se tiene el acumulado de energía mensual para los clientes en un año. Se puede graficar el resultado para un cliente. Fig. 3. Consumo de energía mensual para un cliente comercial durante un año. Esta primera aproximación ya permite ver la utilidad de MapReduce al reducir la cantidad de filas del archivo pasando de 105386 líneas a tener uno de 12 filas con la información requerida. Esta aproximación deja ver además la variación en el consumo mensual de ese cliente. El siguiente paso después de interiorizar la herramienta es abordar un caso más específico. Este corresponde a encontrar el promedio de consumo horario para cada día de la semana discriminando por mes. Para esto las tareas de Map y Reduce deben cumplir lo siguiente: Map. Llave: año, mes, día, día de la semana, hora. Valor: Energía Orden. Ordenado por fecha de manera descendente en el siguiente orden de importancia: año, mes, día de la semana y hora. Reduce. Calcula el promedio de los valores con la misma llave. https://open-enernoc-data.s3.amazonaws.com/anon/index.html https://open-enernoc-data.s3.amazonaws.com/anon/index.html https://archive.ics.uci.edu/ml/datasets/ElectricityLoadDiagrams20112014 https://archive.ics.uci.edu/ml/datasets/ElectricityLoadDiagrams20112014 4 Con este diseño de Map, orden y Reduce se obtiene un archivo de salida de 2016 líneas y 2 columnas, partiendo del mismo archivo del caso anterior. Evidentemente un archivo más ligero, más fácil de graficar y procesar con métodos analíticos. La siguiente tabla contiene una muestra del archivo de salida para el presente caso. La columna 1 tiene las llaves en el orden año-mes-día de la semana-hora. La segunda tiene el consumo de energía promedio horario en kWh para esos días de la semana. El día de la semana se toma en valores desde 1 (lunes) hasta 7 (domingo). TABLA II FRAGMENTO DE ARCHIVO DE SALIDA DEL SEGUNDO CASO MAPREDUCE. Columna 1 Columna 2 2012-01-1-00 407.11536 2012-01-1-01 375.29818 2012-01-1-02 375.29818 2012-01-1-03 372.73392 2012-01-1-04 369.57714 … … El resultado puede graficarse discriminando para cada mes, y en cada mes discriminando para días en semana y días de fin de semana. A continuación, se grafican los resultados para los meses de enero y junio. Fig. 4. Perfil de carga promedio horario por día en semana entresemana para el mes de enero 2012. Fig. 5. Perfil de carga promedio horario por día fin de semana para el mes de enero 2012. Fig. 6. Perfil de carga promedio horario por día en semana entresemana para el mes de junio 2012. Fig. 7. Perfil de carga promedio horario por día fin de semana para el mes de junio 2012. Lo primero que se aprecia al ver las gráficas de este cliente es que presenta mayor actividad comercial en horas de la tarde y noche. Además, entre la noche del domingo y la madrugada y mañana del lunes es cuando tiene presumiblemente actividad mínima según su bajo consumo de energía. El resto de los días de la semana el consumo es similar. Estas curvas de consumo se mantienen similares para todos los meses del año, aunque varían en magnitud de acuerdo con la Figura 3, por lo que también se puede deducir que su actividad económica tiene picos de demanda en enero y agosto. Presumiblemente se trataría de un cliente comercial de actividad nocturna y vespertina. Este tipo de resultado fue bastante más específico y se evidencia como permite analizar y caracterizar el consumo de cada uno de los clientes. También puede ser procesado con MapReduce un único archivo de varios clientes. Este tercer caso similar al anterior debe ahora considerar la segunda fuente de datos. Tanto el Map como el Reduce requieren modificarse para manejar más de una columna en la entrada. Como en esta segunda fuente el consumo está en unidades de potencia, los datos deben antes convertirse en valores de energía dividiendo en 4 los valores de potencia separados por 15 min. Se mantiene la misma llave del segundo caso, sin embargo, ahora el valor de cada llave es un conjunto de tamaño 370. 5 TABLA III FRAGMENTO DE ARCHIVO DE ENTRADA DE LA SEGUNDA FUENTE. MT_ 001 MT_ 002 … MT_ 369 MT_ 370 2011-01-01 00:15:00 0 0 … 0 0 2011-01-01 00:30:00 0 0 … 0 0 2011-01-01 00:45:00 0 0 … 0 0 2011-01-01 01:00:00 0 0 … 0 0 2011-01-01 01:15:00 0 0 … 0 0 … … … … … … Map. Llave: año, mes, día, día de la semana, hora. Valor: Energía1, Energía2,…,Energía370. Orden. Ordenado por fecha de manera descendente en el orden año, mes, día de la semana y hora. Reduce. Calcula el promedio de los valores con la misma llave (múltiples filas). Con este diseño de Map, orden y Reduce para la segunda fuente se obtiene un archivo de salida de 8064 líneas y 371 columnas, del archivo original que tenía 140257 líneas. Aprovechando el resultado con múltiples clientes de este caso, se puede utilizar esta salida del MapReduce para caracterizar de otra manera los distintos clientes. A continuación, se ilustra el archivo de salida, filtrando para obtener los resultados de los días domingo del mes de enero del año 2013. Para facilitar su visualización en la gráfica se restringen los resultados con valores de consumo que estén por encima de 1000 kW Fig. 8. Perfiles de carga resultado de MapReduce para el caso de un archivo con múltiples clientes. Se puede por ejemplo utilizar ese resultado para agrupar perfiles en grupos similares. La siguiente gráfica muestra el resultado de agrupar el archivo de salida por medio del método k-medias. Se siguió el método descrito por [10] a partir de los resultados de este caso de MapReduce. Fueron seleccionados 3 grupos de acuerdo con el resultado de salida de MapReduce. Vemos entonces tres grupos según su perfil de consumo de energía resaltando el valor medio de cada grupo. Fig. 9. Perfiles de carga resultado de MapReduce para el caso de un archivo con múltiples clientes, agrupados utilizando método de k-medias. Quedan entonces tres casos puntuales de aplicación de MapReduce a datos de medidores de energía, y su disposición para, por medio de otras herramientas, extraer valor de los datos. VII. CONCLUSIONES- Se tiene una validación exitosa de la aplicación de MapReduce para abordar cantidades masivas de datos provenientes de sistemas de medición de energía. El uso de Python para escribir el código de mapeo y reducción redujo la complejidad a la hora de programar estas tareas lo que permite a quienes tienen un conocimiento básico en programación acceder a esta tecnología con una rápida curva de aprendizaje. Se debe plantear la pregunta sobre que tanto afecta el rendimiento de tareas MapReduce el uso de Python sobre otros lenguajes más eficientes como Java, y a partir de que punto o qué condiciones las diferencias en rendimiento empiezan a ser considerables. - Si bien se abordaron varios casos de aplicación de MapReduce para data de consumo de energía, cada uno requirió un cambio en el código de las tareas Map y Reduce. Esto debido a la alta dependencia del formato de datos de entrada, no únicamente requiriendo de data estructurada sino también de temas como el signo de puntuación decimal, formatos de fecha y unidades de los valores capturados. Esto le puede restar flexibilidad a la hora de aplicaciones reales. [11] Ya aborda parte del problema. 6 - La simplificación de los datos a partir de un archivo plano de entrada fue evidente. Tener como salida archivos de salida de menor tamaño con la información requerida facilita su posterior uso para tareas de análisis y predicción. Es una herramienta que nutre otras aplicaciones en pro de obtener valor de los datos de consumo de energía de los usuarios. REFERENCIAS [1] G. Ministerio de Minas y Energía. Comisión de Regulación de Energía y Gas. Resolución No 131 de 2020. 25 de Junio de 2020. [2] E. Correa, E. Inga, J. Inga, R. Hincapié. “Patrón de consumo eléctrico basado en el sistema de gestión de datos medidores usando técnicas de Big Data”. 2017, International Conference on Information Systems and Computer Science. [3] AmirGandomi. MurtazaHaider. “Beyond the hype: Big data concepts, methods, and analytics”. [4] Federal Big Data Commission. “Demistyfying big data echAmerica Foundation’s”. [5] Uma N. Dulhare, Khaleel Ahmad, Khairol Amali Bin Ahmad. “Machine Learning and Big Data: Concepts, Algorithms, Tools and Applications”. [6] Michael Minelli, Michele Chambers and Ambiga Dhiraj. “Big Data, Big Analytics: Emerging Business Intelligence and Analytic Trends for Today's Businesses.” [7] Singh, Gurmukh. “Hadoop 2.x Administration Cookbook.” [8] Shrivastava, Anurag, Deshpande, Tanmay. “Hadoop Blueprints”. [9] MapReduce Tutorial, https://hadoop.apache.org/docs/stable/hadoop- mapreduce-client/hadoop-mapreduce-client- core/MapReduceTutorial.html#Purpose. [10] L.G.Viola. “Clustering electricity usage profiles with K-means”. http://lucianogviola.com/ [11] R. Bhardwaj, N. Mishra. “Data Analizyng Using Map-Join Reduce in Cloud Storage”. 2014 International Conference on Parallel, Distributed and Grid Computing. https://www.sciencedirect.com/science/article/pii/S0268401214001066#! https://www.sciencedirect.com/science/article/pii/S0268401214001066#! https://onlinelibrary-wiley-com.ezproxy.unal.edu.co/action/doSearch?ContribAuthorRaw=Dulhare%2C+Uma+N https://onlinelibrary-wiley-com.ezproxy.unal.edu.co/action/doSearch?ContribAuthorRaw=Ahmad%2C+Khaleel https://onlinelibrary-wiley-com.ezproxy.unal.edu.co/action/doSearch?ContribAuthorRaw=Ahmad%2C+Khairol+Amali+Bin https://onlinelibrary-wiley-com.ezproxy.unal.edu.co/doi/book/10.1002/9781119654834 https://onlinelibrary-wiley-com.ezproxy.unal.edu.co/doi/book/10.1002/9781119654834 https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Purpose https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Purpose https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Purpose http://lucianogviola.com/data/energy_clustering/ http://lucianogviola.com/
Compartir